CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
ベース: object
の単一命令。 QuantumCircuitで構成される。 operation と様々なオペランドで構成される。
このクラスの名前には混乱がある可能性がある、 Instructionと Operationこのクラスの属性 operation. 私たちが好んで使用する用語は、アセンブリ言語に類似したもので、「命令」は「演算」とその「オペランド」で構成される。
歴史的には Instruction が最初に登場し、元々、それが操作する量子ビットとあらゆるパラメータを含んでいたため、真の「命令」だった。 やがて QuantumCircuit はqubitsとclbitsの追跡を担当するようになり、このクラスは "操作 "と表現した方がよくなった。 このようなコア・オブジェクトの名前を変更することは、ユーザーにとって非常に不愉快なAPIブレークとなるため、私たちはこの名前にこだわっている。
このクラスは、 QuantumCircuit.dataこれまでその場しのぎのタプルで構成されていたものに代わる、正式な「指示」コンテキストオブジェクトを提供するために作成されました。 これに加え、回路により複雑なオブジェクトを追加するための Operation インターフェースが登場したことを機に、これまでの名称の付け方を修正しました。 当面の間、これにより、 CircuitInstruction.operation が Instruction しばしばのインスタンスとなる(Instruction が Operation インターフェースを実装している)というややこしい状況が生じますが、インターフェース Operation の利用が広がれば、この混乱も解消されることでしょう。
このクラスは軽量な内部クラスであり、エラーチェックは最小限である。 オブジェクトの直接の突然変異が、その型や、そのコンテクストによって与えられた制限を無効にしないようにするのは、ユーザーの責任である。 一般的には、たとえば次のようになる。 qubits は、重複のない、明確な項目の並びでなければなりません。
属性
clbits
この操作が読み書きする古典的なビット列。
label
matrix
name
このノードのopに対応する命令名を返します
operation
この命令が実行する論理演算。
params
qubits
操作が適用される量子ビットのシーケンス。
方法
copy
from_standard
static from_standard(standard, qubits, params, label=None)
is_control_flow
is_control_flow()
この命令に含まれる Operation この命令に含まれる操作は、制御フロー操作(すなわち ControlFlowOp)?
is_controlled_gate
is_controlled_gate()
このインストラクションに含まれる Operation のサブクラスですか? ControlledGate?
is_directive
is_directive()
このノードに含まれる Operation ディレクティブですか?
is_parameterized
is_parameterized()
この命令には何かパラメータが含まれていますか? ParameterExpression パラメータが含まれていますか?
is_standard_gate
is_standard_gate()
この Operation この指示はQiskitの標準ゲートですか?
replace
replace(operation=None, qubits=None, clbits=None, params=None)
与えられたフィールドを置き換えた浅いコピーを作成します。
戻り値
与えられたフィールドを置き換えた新しいインスタンス。
戻りの型