FullAncillaAllocation
class qiskit.transpiler.passes.FullAncillaAllocation(*args, **kwargs)
ベース: AnalysisPass
カ ッ プ リ ン グ マ ッ プ ま たは タ ーゲ ッ ト か ら すべてのア イ ド ル ノ ー ド を レ イ ア ウ ト 上のア ン シ ラ と し て割 り 当て る。
すべてのアイドル物理量子ビット(カップリング・マップまたはターゲットには存在するが、ダグ回路には存在しない)をアンシラとして割り当てるためのパス。 また、それらの物理アンシラに対応する新しい仮想量子ビットを選択する。
これは解析パスであり、物理的なアンシラ位置とそれに対応する仮想量子ビットの選択のみを担当する。 別の変換パスで、その仮想量子ビットを回路に追加しなければならない。
FullAncillaAllocation イニシャライザー。
パラメーター
coupling_map (Union[CouplingMap, Target]) – カップリング・マップを表す有向グラフ。
属性
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
run(dag)
ダグに FullAncillaAllocation。
新しい(物理量子ビット、仮想量子ビット)ペアでレイアウトを拡張する。 ダグは、どの仮想量子ビットがすでに回路内にあるかを示す。 このパスでは、衝突が起こらないように(つまりレイアウトの両対称性が保たれるように)新しい仮想量子ビットを割り当てます
coupling_mapとlayoutは、どの物理量子ビットが空いているかを決定する。
パラメーター
dag (DAGCircuit) – 解析する回路
戻り値
は同じダグ回路をそのまま返す
戻りの型
レイズ
TranspilerError – プロパティセットにレイアウトが含まれていない場合、または初期化時に設定されていない場合。
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型
validate_layout
static validate_layout(layout_qubits, dag_qubits)
layout_qregs にあるすべての qreg が dag_qregs にすでに存在するかどうかをチェックする。 そうでなければ、上げる。