AnnotatedOperation
class qiskit.circuit.AnnotatedOperation(base_op, modifiers)
Basen: Operation
Kommentierte Operation.
Erstellen Sie eine neue AnnotatedOperation.
Eine „kommentierte Operation“ ermöglicht es, der „Basisoperation“ eine Liste von Modifikatoren hinzuzufügen. PowerModifierDerzeit werden nur Modifikatoren der Typen InverseModifier, ControlModifier und unterstützt.
Eine kommentierte Operation kann als eine Erweiterung von ControlledGate angesehen werden (was auch das Hinzufügen von Kontrollen zur Basisoperation ermöglicht). Ein wichtiger Unterschied besteht jedoch darin, dass die Schaltkreisdefinition einer annotierten Operation nicht bei der Deklaration der Operation erstellt wird, sondern während der Transpilierung, genauer gesagt während des HighLevelSynthesis transpiler-Durchlaufs.
Eine kommentierte Operation kann auch als ein "übergeordnetes" oder "abstrakteres" Objekt betrachtet werden, das zu einem Quantenschaltkreis hinzugefügt werden kann. Dies ermöglicht das Schreiben von Transpiler-Optimierungspässen, die diese übergeordnete Darstellung nutzen, z. B. das Entfernen eines Gatters, auf das unmittelbar seine Umkehrung folgt.
Parameter
- base_op (Operation) – basisoperation wird geändert
- modifiers (Modifier | list[Modifier]) – geordnete Liste von Modifikatoren. Zu den unterstützten Modifikatoren gehören
InverseModifier,ControlModifierundPowerModifier.
Beispiele:
op1 = AnnotatedOperation(SGate(), [InverseModifier(), ControlModifier(2)])
op2_inner = AnnotatedGate(SGate(), InverseModifier())
op2 = AnnotatedGate(op2_inner, ControlModifier(2))Sowohl op1 als auch op2 sind semantisch äquivalent zu einem SGate() , das zunächst invertiert und dann von 2 Qubits gesteuert wird.
Attribute
name
Eindeutiger String-Bezeichner für die Vorgangsart.
num_clbits
Anzahl der klassischen Bits.
num_qubits
Anzahl der Qubits.
params
Die Parameter der zugrunde liegenden Basisoperation.
base_op
Die Basisoperation, auf die sich die Modifikatoren in dieser kommentierten Operation beziehen.
modifiers
Geordnete Reihenfolge der Modifikatoren, die auf base_op. Die Modifikatoren werden in der Reihenfolge vom niedrigsten zum höchsten Index angewendet.
Methoden
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
Gibt die kontrollierte Version von sich selbst zurück.
Implementiert als AnnotatedOperation, unabhängig vom Wert von annotated.
Parameter
- num_ctrl_qubits (int) – Anzahl der hinzuzufügenden Steuerelemente. Der Standardwert ist
1. - label (str | None) – Ignoriert.
- ctrl_state (int |str | None) – Der Steuerungsstatus des Gates, angegeben entweder als Ganzzahl oder als Bitstring (z. B.
"110"). WennNone, wird standardmäßig der Zustand „alle2**num_ctrl_qubits - 1Einsen“ verwendet. - annotated (bool | None) – Ignoriert.
Rückgabe
Eine kontrollierte Version der angegebenen Operation.
Rückgabetyp
copy
inverse
inverse(annotated=True)
Gibt die inverse Version von sich selbst zurück.
Implementiert als kommentierte Operation, siehe AnnotatedOperation.
Parameter
annotated (bool) – ignoriert (wird aus Gründen der Konsistenz mit anderen inversen Methoden verwendet)
Rückgabe
Inverse Version der angegebenen Operation.
power
power(exponent, annotated=False)
Erhöhen Sie dieses Tor auf die Macht von exponent.
Implementiert als kommentierte Operation, siehe AnnotatedOperation.
Parameter
- exponent (float) – die Macht, das Tor zu heben
- annotated (bool) – ignoriert (wird aus Gründen der Konsistenz mit anderen Leistungsberechnungsmethoden verwendet)
Rückgabe
Eine Operation zur Durchführung gate^exponent
to_matrix
validate_parameter
validate_parameter(parameter)
Validieren Sie einen Parameter für die zugrunde liegende Basisoperation.
Parameter
parameter (ParameterExpression |float)
Rückgabetyp