ElidePermutations
class qiskit.transpiler.passes.ElidePermutations(*args, **kwargs)
ベース: TransformationPass
レイアウト前の回路から順列演算を取り除く
このパスは、トランスパイルパイプラインでレイアウト(仮想量子ビットを物理量子ビットにマッピングする)が設定される前に実行されます。 このパスは DAGCircuit を繰り返し SwapGate または PermutationGate に遭遇すると、回路内の仮想量子ビットを並べ替え、スワップゲートを削除します。 これにより、レイアウトを実行する前に、回路内の SwapGateや PermutationGate が効果的に除去される。 レイアウトが設定された後にこのパスが実行された場合、この最適化は物理的な量子ビットが選択され、遵守すべき接続制約が存在した後では健全ではないため、no-opになります(そして警告が記録されます)。
トラッキングのために、このパスはプロパティセットに3つの値を設定する。 SwapGate または PermutationGate オブジェクトが存在し、パスがノー・オペでなければ、このパスはプロパティ・セットに3つの値をセットします。
-
original_layout:このパスが実行されるLayoutこのパスの入力が実行される -
original_qubit_indices:量子ビット・オブジェクトの状態に対する位置インデックスへのマッピング。このパスの入力として回路の
-
virtual_permutation_layout:Layout入力量子ビットを出力にマッピングするオブジェクト。パーミュテーションを消去した後の状態。
これらの3つのプロパティは、トランスパイラがout QuantumCircuit.layout 属性の順列を追跡するために必要です。 順列の消去は、ルーティングによって設定された final_layout と等価であり、これらの3つの属性はすべて、以下の場合に必要となる
属性
is_analysis_pass
パスが分析パスかどうかをチェックする。
パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。
is_transformation_pass
パスが変形パスかどうかをチェックする。
パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。
方法
execute
execute(passmanager_ir, state, callback=None)
入力Qiskit IRに対して最適化タスクを実行する。
パラメーター
- passmanager_ir (Any) – Qiskit IRを最適化する。
- state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
- callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。
戻り値
Qiskit IRとワークフローの状態を最適化。
戻りの型
タプル [ Any, PassManagerState ]
name
run
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型