PadDelay
class qiskit.transpiler.passes.PadDelay(*args, **kwargs)
ベース: BasePadding
Delay命令によるアイドル時間の水増し。
連続した遅延は、このパスの出力でマージされる。
from qiskit import QuantumCircuit
from qiskit.transpiler import InstructionDurations
durations = InstructionDurations([("x", None, 160), ("cx", None, 800)])
qc = QuantumCircuit(2)
qc.delay(100, 0)
qc.x(1)
qc.cx(0, 1)ASAPスケジュール回路出力は、次のようになる可能性がある
┌────────────────┐
q_0: ┤ Delay(160[dt]) ├──■──
└─────┬───┬──────┘┌─┴─┐
q_1: ──────┤ X ├───────┤ X ├
└───┘ └───┘100dt (q_0) の Delay と XGate (q_1) の 160 dt の継続時間の差から生じる q_0 ワイヤ上の 60dt の追加アイドル時間は、 q_0 ワイヤ上の遅延命令、すなわち合計 160 dt で吸収されることに注意。
詳細は BasePadding 。
新しいパディング・ディレイ・パスを作成する。
パラメーター
- fill_very_end - 回路の端を遅延で埋めるために
True。 - target - 対象のバックエンドを表す
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 ]
get_duration
name
run
run(dag)
dag でパディングパスを実行する。
パラメーター
dag (DAGCircuit) – チェックするDAG。
戻り値
アイドリングタイムが命令で埋め尽くされたDAG。
戻りの型
レイズ
TranspilerError - 特定のノードがスケジュールされていない場合、おそらくこのノードが呼び出される前に何らかのトランスフォームパスが挿入される。
update_status
update_status(state, run_state)
ワークフローのステータスを更新する。
パラメーター
- state (PassManagerState) – 更新するマネージャーの状態を渡す。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新。
戻りの型