AQC
class qiskit.synthesis.unitary.aqc.AQC(optimizer=None, seed=None)
ベース: object
近似量子コンパイラの汎用実装。 この実装は、近似回路、目的、オプティマイザの基本的な実装に依存しない。 ユーザーは、抽象クラスの対応する実装を渡すことができる:
- オプティマイザーは、
Minimizerプロトコルの実装であり、最適化プロセスを実行するために使用される callable である。 オプティマイザの選択は、全体的な収束性、最適化プロセスに要する時間、達成された目的値に影響を与える可能性があります。 - 近似回路は、最適化したいパラメータをテンプレート化したものだ。 現在、4回転CNOTユニットブロックに基づく実装は1つしかない:
CNOTUnitCircuit. 詳細は論文を参照されたい。 - 近似目的は、近似回路実装と緊密に結合しており、近似回路パラメータに関する目的関数と勾配を計算するための2つの方法を提供する。 この目的はオプティマイザに渡される。 現在、4回転CNOTユニットブロックに基づく2つの実装がある:
DefaultCNOTUnitObjectiveとその高速化バージョンFastCNOTUnitObjective. どちらの実装も、ターゲット行列とその近似行列の間のヒルベルト・シュミット積を最大化するという点では共通している。 前者の実施方法は、ベースラインとして考慮されるべきである。 これは性能の問題に悩まされる可能性があり、少数の量子ビット(最大5または6)に適していることがほとんどである。 - この実装では、潜在的に大きなターゲット行列を作成するだけでなく、ターゲット行列に匹敵するサイズの一時的なメモリバッファを多数割り当てるため、量子ビット数に応じて行列サイズが指数関数的に大きくなることを考慮する必要がある。
パラメーター
- optimizer (Minimizer | None) – 最適な近似回路を探索する最適化手順で使用されるオプティマイザ。 デフォルトでは、
L-BFGS-Bメソッドによる scipy minimizer が使用され、最大反復回数は 1000 に設定されます。 - seed (int | None) – 乱数生成器が使用するシード値。
方法
compile_unitary
compile_unitary(target_matrix, approximate_circuit, approximating_objective, initial_point=None)
approximating_objective で定義された最適化問題を解き、 approximate_circuit を近似回路のテンプレートとして使用することで、ユニタリー行列として表現された回路を近似的にコンパイルします。
パラメーター
- target_matrix (ndarray) – 近似する単位行列
- approximate_circuit (ApproximateCircuit) – 最適化手順で得られたパラメータ値で埋められるテンプレート回路。
- approximating_objective (ApproximatingObjective) – 最適化問題の定義
- initial_point (ndarray | None) – 最適化を開始するための角度/パラメータの初期値。
戻りの型
なし
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。