Class QuantumCircuitOptimizer¶
Defined in File circuit_optimizer.hpp
Class Documentation¶
-
class QuantumCircuitOptimizer¶
量子回路の圧縮を行うクラス
量子回路の圧縮を行う。 与えらえた量子回路を適切なサイズまで圧縮したり、まとめたゲートに変換するなどの処理を行う。
Public Functions
-
inline QuantumCircuitOptimizer(UINT mpi_size = 0)¶
コンストラクタ
-
inline virtual ~QuantumCircuitOptimizer()¶
デストラクタ
-
void optimize(QuantumCircuit *circuit, UINT max_block_size = 2, UINT swap_level = 0)¶
与えられた量子回路のゲートを指定されたブロックまで纏める。
与えられた量子回路において、若い添え字から任意の二つのゲートを選び、二つが他のゲートに影響を与えず合成可能なら合成を行う。 これを合成可能なペアがなくなるまで繰り返す。 二つのゲートが合成可能であるとは、二つのゲートそれぞれについて隣接するゲートとの交換を繰り返し、二つのゲートが隣接した位置まで移動できることを指す。
- パラメータ:
circuit -- [in] 量子回路のインスタンス
max_block_size -- [in] 合成後に許されるブロックの最大サイズ
swap_level -- [in] SWAP挿入による最適化レベル。0: SWAP追加なし、1: SWAP追加、2: SWAP追加とゲート順序変更。
-
void optimize_light(QuantumCircuit *circuit, UINT swap_level = 0)¶
与えられた量子回路のゲートを指定されたブロックまで纏める。
与えられた量子回路において、若い添え字から任意の二つのゲートを選び、二つが他のゲートに影響を与えず合成可能なら合成を行う。 これを合成可能なペアがなくなるまで繰り返す。 二つのゲートが合成可能であるとは、二つのゲートそれぞれについて隣接するゲートとの交換を繰り返し、二つのゲートが隣接した位置まで移動できることを指す。
- パラメータ:
circuit -- [in] 量子回路のインスタンス
swap_level -- [in] SWAP挿入による最適化レベル。0: SWAP追加なし、1: SWAP追加、2: SWAP追加とゲート順序変更。
-
QuantumGateMatrix *merge_all(const QuantumCircuit *circuit)¶
量子回路を纏めて一つの巨大な量子ゲートにする
- パラメータ:
circuit -- [in] 量子回路のインスタンス
- 戻り値:
変換された量子ゲート
-
inline QuantumCircuitOptimizer(UINT mpi_size = 0)¶