Skip to main content
IBM Quantum Platform

TranslateParameterizedGates

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

GitHub

ベース: TransformationPass

パラメータ化されたゲートを、サポートされている基底セットに変換する。

supported_gates リストにないパラメータ化命令が見つかると、その命令は1レベル分解され、パラメータ化されたサブブロックが再帰的に分解される。 すべてのパラメータ化されたゲートが supported_gates、またはゲートに定義がなく、基底への変換が試みられると、再帰は停止する(これは例えば、 UGate 、指定されたゲートリストにない場合に発生する可能性がある)。

次のように、多重に入れ子になっている:

from qiskit.circuit import QuantumCircuit, ParameterVector
from qiskit.transpiler.passes import TranslateParameterizedGates

x = ParameterVector("x", 4)
block1 = QuantumCircuit(1)
block1.rx(x[0], 0)

sub_block = QuantumCircuit(2)
sub_block.cx(0, 1)
sub_block.rz(x[2], 0)

block2 = QuantumCircuit(2)
block2.ry(x[1], 0)
block2.append(sub_block.to_gate(), [0, 1])

block3 = QuantumCircuit(3)
block3.ccx(0, 1, 2)

circuit = QuantumCircuit(3)
circuit.append(block1.to_gate(), [1])
circuit.append(block2.to_gate(), [0, 1])
circuit.append(block3.to_gate(), [0, 1, 2])
circuit.cry(x[3], 0, 2)

supported_gates = ["rx", "ry", "rz", "cp", "crx", "cry", "crz"]
unrolled = TranslateParameterizedGates(supported_gates)(circuit)

に分解される:

     ┌──────────┐     ┌──────────┐┌─────────────┐
q_0:Ry(x[1]) ├──■──┤ Rz(x[2]) ├┤0            ├─────■──────
     ├──────────┤┌─┴─┐└──────────┘│             │     │
q_1:Rx(x[0]) ├┤ X ├────────────┤1 circuit-92 ├─────┼──────
     └──────────┘└───┘            │             │┌────┴─────┐
q_2: ─────────────────────────────┤2            ├┤ Ry(x[3])
                                  └─────────────┘└──────────┘

パラメーター

  • supported_gates – サポートされている基底ゲートのリスト(文字列で指定)。 その場合 None、a を指定 target する必要があります。
  • equivalence_library - ゲートを翻訳する等価ライブラリ。 デフォルトは、すべてのQiskit標準ゲートの等価ライブラリです。
  • **ターゲット **Target サポートされている操作を含む。 None の場合、 supported_gates を設定しなければならない。 この引数が supported_gates よりも優先されることに注意されたい。

レイズ

ValueError - supported_gatestarget のどちらもパスしていない場合。


属性

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

トランスパイラー・パスを実行する。

パラメーター

dag (DAGCircuit) – パラメータ化されたゲートが展開されるべきDAG回路。

戻り値

パラメータ化されたゲートが展開されたDAG。

レイズ

QiskitError - 回路を展開できない場合

戻りの型

DAGサーキット

update_status

update_status(state, run_state)

GitHub

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

パラメーター

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

戻り値

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

戻りの型

PassManagerState

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