Class QuantumCircuitOptimizer

Class Documentation

class QuantumCircuitOptimizer

量子回路の圧縮を行うクラス

量子回路の圧縮を行う。 与えらえた量子回路を適切なサイズまで圧縮したり、まとめたゲートに変換するなどの処理を行う。

Public Functions

inline QuantumCircuitOptimizer()

コンストラクタ

inline virtual ~QuantumCircuitOptimizer()

デストラクタ

void optimize(QuantumCircuit *circuit, UINT max_block_size = 2)

与えられた量子回路のゲートを指定されたブロックまで纏める。

与えられた量子回路において、若い添え字から任意の二つのゲートを選び、二つが他のゲートに影響を与えず合成可能なら合成を行う。 これを合成可能なペアがなくなるまで繰り返す。 二つのゲートが合成可能であるとは、二つのゲートそれぞれについて隣接するゲートとの交換を繰り返し、二つのゲートが隣接した位置まで移動できることを指す。

パラメータ
  • circuit -- [in] 量子回路のインスタンス

  • max_block_size -- [in] 合成後に許されるブロックの最大サイズ

void optimize_light(QuantumCircuit *circuit)

与えられた量子回路のゲートを指定されたブロックまで纏める。

与えられた量子回路において、若い添え字から任意の二つのゲートを選び、二つが他のゲートに影響を与えず合成可能なら合成を行う。 これを合成可能なペアがなくなるまで繰り返す。 二つのゲートが合成可能であるとは、二つのゲートそれぞれについて隣接するゲートとの交換を繰り返し、二つのゲートが隣接した位置まで移動できることを指す。

パラメータ

circuit -- [in] 量子回路のインスタンス

QuantumGateMatrix *merge_all(const QuantumCircuit *circuit)

量子回路を纏めて一つの巨大な量子ゲートにする

パラメータ

circuit -- [in] 量子回路のインスタンス

戻り値

変換された量子ゲート