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.
void insert_into_best_solution(const GrayCodeCNOT &gcode_, double minimum_)
Call to store a given solution among the best ones.
Copyright 2021 Budapest Quantum Computing Group.
std::vector< std::pair< GrayCodeCNOT, double > > best_solutions
Class to hash function operator for GrayCode_base keys in unordered maps and unordered sets...
Header file for Gray code hashing.
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...
GrayCodeCNOT draw_gate_structure_from_list(std::vector< GrayCodeCNOT > &gcodes)
Call to sample a gate structure from a list of gate structures to test in the optimization process...
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...
std::vector< GrayCodeCNOT > determine_mutated_structures(const GrayCodeCNOT &gcode)
Call to generate a list of mutated gate structures.
Double-precision complex matrix (float64).
A class responsible for grouping two-qubit (CNOT,CZ,CH) and one-qubit gates into layers.
Single-precision complex matrix (float32).
std::map< std::string, Config_Element > config
config metadata utilized during the optimization
std::unordered_set< GrayCodeCNOT, GrayCodeHashCNOT > 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.
GrayCodeCNOT tabu_search_over_gate_structures()
Perform tabu serach over gate structures.