PauliEvolutionSynthesisRustiq
class qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq
を合成する。 PauliEvolutionGate Rustiqを使って。
このプラグイン名はPauliEvolution.rustiq 。 HLSConfig オブジェクトのキーとして使用できます。 HighLevelSynthesis.
Rustiq合成アルゴリズムは [1.] で説明されており、Rustベースの量子回路合成ライブラリで実装されている。 https://github.com/smartiel/rustiq-core.
大規模な回路では、プラグインはかなりのランタイムを要するかもしれない。
このプラグインは以下の追加オプションをサポートしています:
-
optimize_count (bool): Trueの場合、合成アルゴリズムは以下の最適化を試みる
もし偽なら、2量子ビットの深さ。
-
preserve_order (bool):ポーリの順番を保持するかどうか。
可換性。
-
upto_clifford (bool): Trueの場合、最後のClifford演算子は合成されない。
-
upto_phase (bool): Trueの場合、返された回路のグローバル位相は、次のようになる。
与えられたパウリネットワークのグローバル位相とは異なる。
-
resynth_clifford_method(int):最終的な合成戦略を記述する。
クリフォード・オペレーター 許可される値は、0(素朴なアプローチ)、1(qiskit greedy synthesis)、2(rustiq isometry synthesis)です。
参考文献
- Timothée Goubault de Brugière and Simon Martiel, Faster and shorter synthesis of Hamiltonian simulation circuits, arXiv:2404.03280 [quant-ph]
方法
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
指定されたOperationに対して合成を実行する。
パラメーター
- high_level_object (Operation) – オブジェクトに合成するオペレーション
DAGCircuitオブジェクトに合成します。 - coupling_map (CouplingMap) – 合成が物理回路上で行われる場合のバックエンドのカップリング・マップ。
- target (Target) – 対象のバックエンドを表すターゲット。
- qubits (list) – 合成が物理回路上で行われる場合に、演算が定義される量子ビットのリスト。
- options - 追加のメソッド固有のオプションの kwargs。
戻り値
オペレーションの量子回路表現
成功した場合は None 。
戻りの型