AnnotatedOperation
class qiskit.circuit.AnnotatedOperation(base_op, modifiers)
ベース: Operation
注釈付き手術。
新しい AnnotatedOperation を作成する。
注釈付き操作」は、「基本」操作に修飾語のリストを加えることができる。 今のところ、サポートされている修飾子は以下のタイプだけです。 InverseModifier, ControlModifier と PowerModifier.
注釈付き操作は ControlledGate (基本操作に制御を加えることもできる)。 しかし、重要な違いは、アノテーションされた操作の回路定義は、その操作が宣言されたときには構築されず、トランスパイル中、具体的には、トランスパイラ・パスの間に行われるということです。 HighLevelSynthesis トランスパイラ・パスの間に行われます。
アノテーションされた演算は、量子回路に追加できる「より上位の」あるいは「より抽象的な」オブジェクトと見なすこともできる。 これによって、この上位レベルの表現を利用したトランスパイラ最適化パスを記述することが可能になり、たとえば、直後にその逆が続くゲートを削除することができる。
パラメーター
- base_op (Operation) – 変更される基本操作
- modifiers (Modifier | list[Modifier]) – 修飾子の順序付きリスト。 サポートされている修飾子には
InverseModifier、ControlModifier、、 がありますPowerModifier。
例:
op1 = AnnotatedOperation(SGate(), [InverseModifier(), ControlModifier(2)])
op2_inner = AnnotatedGate(SGate(), InverseModifier())
op2 = AnnotatedGate(op2_inner, ControlModifier(2))op1 と op2 は、意味的には SGate() と等価である。 は、まず反転され、次に2量子ビットで制御される。
属性
name
操作タイプを表す一意の文字列識別子。
num_clbits
クラシックビットの数。
num_qubits
量子ビットの数。
params
基本操作のパラメータ。
base_op
この注釈付き操作に含まれる修飾子が適用される基本操作。
modifiers
適用する修飾子の順序 base_op. 修正は、指数の低いものから高いものへと順番に適用される。
方法
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
それ自身のコントロールされたバージョンを返す。
として実装され AnnotatedOperation、の値にかかわらず annotated。
パラメーター
- num_ctrl_qubits (int) – 追加するコントロールの数。 デフォルトは
1です。 - label (str | None) – 無視された。
- ctrl_state (int |str | None) – ゲートの制御状態。整数またはビット列(例:
"110")として指定される。 デフォルトではNone、全ビットが1の状態になります2**num_ctrl_qubits - 1。 - annotated (bool | None) – 無視された。
戻り値
指定された操作の制御されたバージョン。
戻りの型
copy
inverse
inverse(annotated=True)
自分自身の逆バージョンを返す。
注釈付き操作として実装されている。 AnnotatedOperation.
パラメーター
annotated (bool) – 無視される(他の逆変換手法との整合性を保つために使用される)
戻り値
与えられた操作の逆バージョン。
power
power(exponent, annotated=False)
このゲートを exponent のパワーに引き上げる。
注釈付き操作として実装されている。 AnnotatedOperation.
パラメーター
戻り値
を実施するオペレーション。 gate^exponent