AddSpectatorMeasures
class AddSpectatorMeasures(*args, **kwargs)
ベース: TransformationPass
観客量子ビットの測定を追加する。
アクティブ量子ビットは、非バリア命令によって回路に作用する量子ビットである。 終端量子ビットとは、最後の動作が測定である量子ビットのことである。 スペクトレーター量子ビットとは、非アクティブな量子ビットであるが、結合写像の下ではアクティブな量子ビットに隣接している量子ビットのことである。 このパスでは、すべての観 測量子ビットに測定値を追加し、オプションとして include_unmeasured、終端量子ビットでないすべてのアクティブ量子ビットに測定値を追加する。
追加された測定値は、各スペクテーター量子ビットにつき1ビットを持つ新しいレジスタに書き込まれ、 spectator_creg_name と名付けられる。
このパスが制御フロー操作に遭遇すると、そのすべてのブロックを繰り返し処理する。 少なくとも1つのブロック内でアクティブな全ての量子ビットを "アクティブ "とし、全てのブロック内でターミネートされた全ての量子ビットを "ターミネート "とする。
パスを初期化する。
パラメーター
- coupling_map - 結合マップ、または隣接する量子ビットのペアを示すタプルのリスト。
- include_unmeasured - アクティブであるが測定で終了していない量子ビットをスペクテータとし て扱うかどうか。
Trueの場合、それぞれに端子測定が追加される。 - spectator_creg_name - spectator量子ビットの測定用に追加された古典レジスタの名前。
- add_barrier - スペクテータ測定の前に、すべてのアクティブ量子ビットとスペクテータ量子ビットに作用するバリア を追加するかどうか。
属性
is_analysis_pass
パスが分析パスかどうかをチェックする。
パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。
is_transformation_pass
パスが変身パスかどうかをチェックする。
パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。
方法
execute
execute(passmanager_ir, state, callback=None)
入力Qiskit IRに対して最適化タスクを実行する。
パラメーター
- passmanager_ir (DAGCircuit) – 最適化対象のQiskit IR。
- state (DAGCircuit) – パスマネージャー自身によるワークフローの実行に関連する状態。
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。
戻り値
Qiskit IRとワークフローの状態を最適化。
戻りの型
name
run
run(dag)
DAGCircuitでパスを実行する。 これはパス開発者によって実装される。
パラメーター
dag (DAGCircuit) – パスが実行されるダグ。
レイズ
NotImplementedError - パスが未実装の場合。
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型