Skip to main content
IBM Quantum Platform

AnnotatedOperation

class qiskit.circuit.AnnotatedOperation(base_op, modifiers)

GitHub

Bases : Operation

Opération annotée.

Créer un nouveau AnnotatedOperation.

Une « opération annotée » permet d'ajouter une liste de modificateurs à l'opération « de base ». Pour l'instant, les seuls modificateurs pris en charge sont de types InverseModifier, ControlModifier et PowerModifier.

Une opération annotée peut être considérée comme une extension de ControlledGate (qui permet également d'ajouter un contrôle à l'opération de base). Toutefois, une différence importante réside dans le fait que la définition du circuit d'une opération annotée n'est pas construite lors de la déclaration de l'opération, mais lors de la transpilation, plus précisément lors de la HighLevelSynthesis passage du transpileur.

Une opération annotée peut également être considérée comme un objet "de niveau supérieur" ou "plus abstrait" qui peut être ajouté à un circuit quantique. Cela permet d'écrire des passes d'optimisation du transpondeur qui utilisent cette représentation de niveau supérieur, par exemple en supprimant une porte qui est immédiatement suivie de son inverse.

Paramètres

  • base_op (Operation) – opération de base en cours de modification
  • modifiers (Modifier | list[Modifier]) – liste ordonnée de modificateurs. Les modificateurs pris en charge sont InverseModifier, ControlModifier et PowerModifier.

Exemples :

op1 = AnnotatedOperation(SGate(), [InverseModifier(), ControlModifier(2)])

op2_inner = AnnotatedGate(SGate(), InverseModifier())
op2 = AnnotatedGate(op2_inner, ControlModifier(2))

Les deux op1 et op2 sont sémantiquement équivalents à un SGate() qui est d'abord inversé et ensuite contrôlé par 2 qubits.


Attributs

name

Identifiant unique sous forme de chaîne de caractères pour le type d'opération.

num_clbits

Nombre de bits classiques.

num_qubits

Nombre de qubits.

params

Les paramètres de l'opération de base sous-jacente.

base_op

L'opération de base à laquelle s'appliquent les modificateurs de cette opération annotée.

modifiers

Séquence ordonnée des modificateurs à appliquer à base_op. Les modificateurs sont appliqués dans l'ordre de l'indice le plus faible à l'indice le plus élevé.


Méthodes

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

GitHub

Renvoie la version contrôlée de lui-même.

Implémenté comme AnnotatedOperation, quelle que soit la valeur de annotated.

Paramètres

  • num_ctrl_qubits (int) – Nombre de contrôles à ajouter. Prend par défaut la valeur 1.
  • label (str | None) – Ignoré.
  • ctrl_state (int |str | None) – État de contrôle de la porte, spécifié soit sous forme d'entier, soit sous forme de chaîne de bits (par exemple "110"). Si None, la valeur par défaut est l'état « 2**num_ctrl_qubits - 1tous à 1 ».
  • annotated (bool | None) – Ignoré.

Retours

Une version contrôlée de l'opération donnée.

Type de retour

AnnotatedOperation

copy

copy()

GitHub

Renvoyer une copie du fichier AnnotatedOperation.

Type de retour

AnnotatedOperation

inverse

inverse(annotated=True)

GitHub

Retourne la version inverse de lui-même.

Mise en œuvre sous la forme d'une opération annotée, voir AnnotatedOperation.

Paramètres

annotated (bool) – ignoré (utilisé pour des raisons de cohérence avec d'autres méthodes inverses)

Retours

Version inversée de l'opération donnée.

power

power(exponent, annotated=False)

GitHub

Élevez cette porte au pouvoir de exponent.

Mise en œuvre sous la forme d'une opération annotée, voir AnnotatedOperation.

Paramètres

  • exponent (float) – le pouvoir d'élever la porte à
  • annotated (bool) – ignoré (utilisé pour des raisons de cohérence avec d'autres méthodes de puissance)

Retours

Une opération mettant en œuvre gate^exponent

to_matrix

to_matrix()

GitHub

Retourne une représentation matricielle (permettant de construire l'Opérateur).

validate_parameter

validate_parameter(parameter)

GitHub

Valider un paramètre de l'opération de base sous-jacente.

Paramètres

parameter (ParameterExpression |float)

Type de retour

ParameterExpression | flotteur

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.