CircuitInstruction
class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)
ベース: object
QuantumCircuitの単一の命令は、およびさまざまなオペランドで operation 構成される。
このクラスの名前には混乱がある可能性がある、 Instructionと Operationこのクラスの属性 operation. 私たちが好んで使用する用語は、アセンブリ言語に類似したもので、「命令」は「演算」とその「オペランド」で構成される。
歴史的に見て、 Instruction が最初に登場し、当初は演算対象となる量子ビットやあらゆるパラメータを含んでいたため、真の意味での「命令」であった。 時が経つにつれて、 QuantumCircuit このクラスは量子ビット(qubit)やクラビット(clbit)の追跡を担うようになり、このクラスは「演算」と表現するのがより適切になった。 このようなコアオブジェクトの名前を変更することは、ユーザーにとって非常に不都合なAPIの互換性破綻となるため、私たちは現状を維持することにした。
QuantumCircuit.dataこのクラスは、これまで長らくその場しのぎのタプルで構成されていた、における正式な「指示」コンテキストオブジェクトを提供するために作成されました。 これに加え、回路にさらに複雑なオブジェクトを追加するためのインターフェース Operation が登場したことを機に、これまでの名称の付け方を修正することにしました。 当面の間、これにより、がしばしばの Instruction インスタンスとなる(Instruction が Operation インターフェースを実装している)という CircuitInstruction.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)
与えられたフィールドを置き換えた浅いコピーを作成します。
戻り値
与えられたフィールドを置き換えた新しいインスタンス。
戻りの型