Skip to main content
IBM Quantum Platform

CircuitInstruction

class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)

Basen: object

Ein einzelner Befehl in einem QuantumCircuit, bestehend aus dem operation und verschiedenen Operanden.

Anmerkung

Die Namen dieser Klasse sind möglicherweise etwas verwirrend, Instruction, und Operationund das Attribut dieser Klasse operation. Wir bevorzugen eine Terminologie in Analogie zu Assembler-Sprachen, wo eine "Anweisung" aus einer "Operation" und ihren "Operanden" besteht.

Historisch gesehen Instruction kam zuerst und enthielt ursprünglich die Qubits, auf die es einwirkte, sowie alle Parameter; es handelte sich also um eine echte „Anweisung“. Im QuantumCircuit Laufe der Zeit übernahm sie die Aufgabe, Qubits und Clbits zu verfolgen, und die Klasse ließ sich besser als „Operation“ beschreiben. Eine Namensänderung bei einem solchen Kernobjekt würde für die Nutzer einen sehr unangenehmen API-Bruch bedeuten, weshalb wir daran festgehalten haben.

QuantumCircuit.dataDiese Klasse wurde geschaffen, um in ein formales Kontext-Objekt vom Typ „instruction“ bereitzustellen, das lange Zeit aus Ad-hoc-Tupeln bestand. Vor diesem Hintergrund und mit der Einführung der Operation Schnittstelle zum Hinzufügen komplexerer Objekte zu Schaltkreisen haben wir die Gelegenheit genutzt, die bisherige Namensgebung zu korrigieren. Dies führt vorerst zu einer etwas heiklen Situation, in CircuitInstruction.operation der oft eine Instruction Instanz ist (Instruction implementiert die Operation Schnittstelle), doch da die Operation Schnittstelle zunehmend Verbreitung findet, wird sich diese Verwirrung hoffentlich legen.

Achtung

Dies ist eine leichtgewichtige interne Klasse und es gibt nur eine minimale Fehlerprüfung; Sie müssen die Typ-Hinweise beachten, wenn Sie sie verwenden. Es liegt in der Verantwortung des Benutzers, dafür zu sorgen, dass direkte Mutationen des Objekts weder die Typen noch die durch den Kontext auferlegten Einschränkungen ungültig machen. Normalerweise bedeutet dies zum Beispiel, dass qubits eine Folge von eindeutigen Elementen ohne Duplikate sein muss.


Attribute

clbits

Eine Folge der klassischen Bits, aus denen diese Operation liest oder in die sie schreibt.

label

matrix

name

Gibt den Namen der Anweisung zurück, die der Operation für diesen Knoten entspricht

operation

Die logische Operation, die mit dieser Anweisung ausgeführt werden soll.

params

qubits

Eine Folge von Qubits, auf die die Operation angewendet wird.


Methoden

copy

copy()

Gibt eine oberflächliche Kopie zurück.

Rückgabe

Die seichte Kopie.

Rückgabetyp

CircuitInstruction

from_standard

static from_standard(standard, qubits, params, label=None)

is_control_flow

is_control_flow()

Ist die Operation in dieser Anweisung eine Kontrollflussoperation (d. h. eine Instanz von ControlFlowOp)?

is_controlled_gate

is_controlled_gate()

Ist die Operation in dieser Anweisung eine Unterklasse von ControlledGate?

is_directive

is_directive()

Ist der Operation in diesem Knoten eine Richtlinie?

is_parameterized

is_parameterized()

Enthält diese Anweisung irgendwelche ParameterExpression parameter?

is_standard_gate

is_standard_gate()

Ist das Operation in dieser Anweisung enthaltene Tor ein Qiskit-Standardtor?

replace

replace(operation=None, qubits=None, clbits=None, params=None)

Erzeugt eine flache Kopie, bei der die angegebenen Felder ersetzt werden.

Rückgabe

Eine neue Instanz, in der die angegebenen Felder ersetzt werden.

Rückgabetyp

CircuitInstruction

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.