26 #ifndef N_Qubit_Decomposition_Tabu_Search_H 27 #define N_Qubit_Decomposition_Tabu_Search_H 32 #include <unordered_set> Gates_block * determine_gate_structure(Matrix_real &optimized_parameters_mtx)
Call determine the gate structrue of the decomposing circuit.
GrayCode draw_gate_structure_from_list(std::vector< GrayCode > &gcodes)
Call to sample a gate structure from a list of gate structures to test in the optimization process...
Copyright 2021 Budapest Quantum Computing Group.
std::vector< GrayCode > determine_mutated_structures(const GrayCode &gcode)
Call to generate a list of mutated gate structures.
Header file for Gray code hashing.
std::vector< std::pair< GrayCode, double > > best_solutions
A base class to determine the decomposition of an N-qubit unitary into a sequence of CNOT and U3 gate...
Header file for Grey code container.
N_Qubit_Decomposition_Tabu_Search()
Nullary constructor of the class.
A base class to determine the decomposition of an N-qubit unitary into a sequence of CNOT and U3 gate...
GrayCode tabu_search_over_gate_structures()
Perform tabu serach over gate structures.
int accelerator_num
number of utilized accelerators
virtual ~N_Qubit_Decomposition_Tabu_Search()
Destructor of the class.
Header file for a class implementing the adaptive gate decomposition algorithm of arXiv:2203...
void insert_into_best_solution(const GrayCode &gcode_, double minimum_)
Call to store a given solution among the best ones.
Class to store data of complex arrays and its properties.
A class responsible for grouping two-qubit (CNOT,CZ,CH) and one-qubit gates into layers.
std::map< std::string, Config_Element > config
config metadata utilized during the optimization
std::unordered_set< GrayCode, GrayCodeHash > tested_gate_structures
the set of already examined gate structures (mapped to n-ary Gray codes)
Matrix_real optimized_parameters_mtx
The optimized parameters for the gates.
Class to store data of complex arrays and its properties.