Skip to main content
IBM Quantum Platform

GateDirection

class qiskit.transpiler.passes.GateDirection(*args, **kwargs)

GitHub

ベース: TransformationPass

ハードウェアの結合方向に合わせて非対称ゲートを修正する。

このパスは、cx、cz、ecr、swap、rzx、rxx、ryy、rzzゲートの置換をサポートする:

                     ┌───┐┌───┐┌───┐
q_0: ──■──      q_0: ┤ H ├┤ X ├┤ H ├
     ┌─┴─┐  =        ├───┤└─┬─┘├───┤
q_1: ┤ X ├      q_1: ┤ H ├──■──┤ H ├
     └───┘           └───┘     └───┘


                  global phase:/2
     ┌──────┐           ┌───┐ ┌────┐┌─────┐┌──────┐┌───┐
q_0:0     ├     q_0: ─┤ S ├─┤ √X ├┤ Sdg ├┤1     ├┤ H ├
     │  ECR │  =       ┌┴───┴┐├────┤└┬───┬┘│  Ecr │├───┤
q_1:1     ├     q_1: ┤ Sdg ├┤ √X ├─┤ S ├─┤0     ├┤ H ├
     └──────┘          └─────┘└────┘ └───┘ └──────┘└───┘
Note: This is done in terms of less-efficient S/SX/Sdg gates instead of the more natural
`RY(pi /2)` so we have a chance for basis translation to keep things in a discrete basis
during resynthesis, if that's what's being asked for.


     ┌──────┐          ┌───┐┌──────┐┌───┐
q_0:0     ├     q_0: ┤ H ├┤1     ├┤ H ├
     │  RZX │  =       ├───┤│  RZX │├───┤
q_1:1     ├     q_1: ┤ H ├┤0     ├┤ H ├
     └──────┘          └───┘└──────┘└───┘

cz, swap, rxx, ryy and rzz directions are fixed by reversing their qargs order.

このパスでは、属性内の量子ビットの位置が物理的な量子ビットのインデックスであると仮定します。 DAGCircuit.qubits 属性中の量子ビットの位置が物理的な量子ビットのインデックスであると仮定します。 例えば、 dag.qubits[0] がqubit 0の場合、次のようになる。 CouplingMap または Target.

GateDirection パス。

パラメーター

  • coupling_map (CouplingMap) – カップリング・マップを表す有向グラフ。
  • target (Target) – このパスで使用するバックエンドターゲット。 これが指定された場合、カップリング・マップの代わりに使用される

属性

is_analysis_pass

パスが分析パスかどうかをチェックする。

パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。

is_transformation_pass

パスが変形パスかどうかをチェックする。

パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。


方法

execute

execute(passmanager_ir, state, callback=None)

GitHub

入力Qiskit IRに対して最適化タスクを実行する。

パラメーター

  • passmanager_ir (Any) – Qiskit IRを最適化する。
  • state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
  • callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。

戻り値

Qiskit IRとワークフローの状態を最適化。

戻りの型

タプル [ Any, PassManagerState ]

name

name()

GitHub

パスの名前

戻りの型

str

run

run(dag)

GitHub

ダグに GateDirection。

有向結合マップに一致するようにcxノードを反転させる。 入力されたタグを変更する。

パラメーター

dag (DAGCircuit) – DAGからマップへ。

戻り値

カップリング・マップの再配置されたダグ

戻りの型

DAGサーキット

レイズ

TranspilerError - cxノードを反転させるだけでは回路をマッピングできない場合。

update_status

update_status(state, run_state)

GitHub

ワークフローのステータスを更新する。

パラメーター

  • state (PassManagerState) – 更新するマネージャーの状態を渡す。
  • run_state (RunState) – 現在のタスクの完了状況。

戻り値

パスマネージャーの状態を更新。

戻りの型

PassManagerState

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。