Skip to main content
IBM Quantum Platform

AnnotatedOperation

class qiskit.circuit.AnnotatedOperation(base_op, modifiers)

GitHub

Basi: Operation

Operazione annotata.

Creare un nuovo AnnotatedOperation.

Un'«operazione annotata» consente di aggiungere un elenco di modificatori all'operazione «di base». Per ora, gli unici modificatori supportati sono di tipo InverseModifier, ControlModifier e PowerModifier.

Un'operazione annotata può essere vista come un'estensione di ControlledGate (che permette anche di aggiungere un controllo all'operazione di base). Tuttavia, una differenza importante è che la definizione del circuito di un'operazione annotata non viene costruita quando l'operazione viene dichiarata, ma avviene durante la transpilazione, in particolare durante il passaggio di transpiler HighLevelSynthesis transpiler.

Un'operazione annotata può essere vista anche come un oggetto di "livello superiore" o "più astratto" che può essere aggiunto a un circuito quantistico. Ciò consente di scrivere passaggi di ottimizzazione del transpiler che fanno uso di questa rappresentazione di livello superiore, ad esempio eliminando un gate che è immediatamente seguito dal suo inverso.

Parametri

  • base_op (Operation) – operazione di base in corso di modifica
  • modifiers (Modifier | list[Modifier]) – elenco ordinato di modificatori. I modificatori supportati includono InverseModifier, ControlModifier e PowerModifier.

Esempi:

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

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

Sia op1 che op2 sono semanticamente equivalenti a un SGate() che viene prima invertito e poi controllato da 2 qubit.


Attributi

name

Identificatore univoco del tipo di operazione.

num_clbits

Numero di bit classici.

num_qubits

Numero di qubit.

params

I parametri dell'operazione di base sottostante.

base_op

L'operazione di base a cui si applicano i modificatori presenti in questa operazione annotata.

modifiers

Sequenza ordinata dei modificatori da applicare a base_op. I modificatori vengono applicati in ordine dall'indice più basso a quello più alto.


Metodi

control

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

GitHub

Restituisce la versione controllata di se stesso.

Implementato come AnnotatedOperation, indipendentemente dal valore di annotated.

Parametri

  • num_ctrl_qubits (int) – Numero di controlli da aggiungere. Il valore predefinito è 1.
  • label (str | None) – Ignorato.
  • ctrl_state (int |str | None) – Lo stato di controllo del gate, specificato come numero intero o stringa di bit (ad esempio "110"). Se None, il valore predefinito è lo stato 2**num_ctrl_qubits - 1 tutto uno.
  • annotated (bool | None) – Ignorato.

Risultati

Una versione controllata dell'operazione specificata.

Tipo di restituzione

AnnotatedOperation

copy

copy()

GitHub

Restituire una copia del file AnnotatedOperation.

Tipo di restituzione

AnnotatedOperation

inverse

inverse(annotated=True)

GitHub

Restituisce la versione inversa di se stesso.

Implementato come operazione annotata, vedere AnnotatedOperation.

Parametri

annotated (bool) – ignorato (utilizzato per garantire la coerenza con altri metodi inversi)

Risultati

Versione inversa dell'operazione data.

power

power(exponent, annotated=False)

GitHub

Innalzate questo cancello al potere di exponent.

Implementato come operazione annotata, vedere AnnotatedOperation.

Parametri

  • exponent (float) – il potere di alzare il cancello per
  • annotated (bool) – ignorato (utilizzato per garantire la coerenza con altri metodi di alimentazione)

Risultati

Un'operazione che implementa gate^exponent

to_matrix

to_matrix()

GitHub

Restituisce una rappresentazione della matrice (che consente di costruire l'Operatore).

validate_parameter

validate_parameter(parameter)

GitHub

Convalida un parametro per l'operazione di base sottostante.

Parametri

parameter (ParameterExpression |float)

Tipo di restituzione

ParameterExpression | galleggiante

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.