Skip to main content
IBM Quantum Platform

AnnotatedOperation

class qiskit.circuit.AnnotatedOperation(base_op, modifiers)

GitHub

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, ControlModifier und PowerModifier.

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)

GitHub

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"). Wenn None, wird standardmäßig der Zustand „alle 2**num_ctrl_qubits - 1Einsen“ verwendet.
  • annotated (bool | None) – Ignoriert.

Rückgabe

Eine kontrollierte Version der angegebenen Operation.

Rückgabetyp

AnnotatedOperation

copy

copy()

GitHub

Senden Sie eine Kopie der AnnotatedOperation.

Rückgabetyp

AnnotatedOperation

inverse

inverse(annotated=True)

GitHub

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)

GitHub

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

to_matrix()

GitHub

Rückgabe einer Matrixdarstellung (die es ermöglicht, Operator zu konstruieren).

validate_parameter

validate_parameter(parameter)

GitHub

Validieren Sie einen Parameter für die zugrunde liegende Basisoperation.

Parameter

parameter (ParameterExpression |float)

Rückgabetyp

ParameterExpression | Schwimmer

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