Skip to main content
IBM Quantum Platform

SXdgGate

class qiskit.circuit.library.SXdgGate(*args, _force_mutable=False, **kwargs)

GitHub

Basi: SingletonGate

Il gate inverso Sqrt(X) a singolo qubit.

Può essere applicato a un QuantumCircuit utilizzando il sxdg() metodo.

X=12(1i1+i1+i1i)\sqrt{X}^{\dagger} = \frac{1}{2} \begin{pmatrix} 1 - i & 1 + i \\ 1 + i & 1 - i \end{pmatrix}
Nota

Esiste una discrepanza generale tra le definizioni di RX(π/2)RX(-\pi/2) e X\sqrt{X}^{\dagger}.

RX(π/2)=12(1ii1)=eiπ/4XRX(-\pi/2) = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & i \\ i & 1 \end{pmatrix} = e^{-i \pi/4} \sqrt{X}^{\dagger}

Crea un nuovo gate SXdg.


Attributi

base_class

Ottieni la classe base di questa istruzione. Questo elemento è sicuramente presente nell'albero di ereditarietà di self.

La «classe base» di un'istruzione è la classe più bassa nel suo albero di ereditarietà con cui l'oggetto deve essere considerato pienamente compatibile per _tutte_ le applicazioni circuitali. Ciò significa in genere che la sottoclasse è definita esclusivamente per offrire una maggiore praticità al programmatore rispetto alla classe base, mentre quest'ultima è la "vera" classe dal punto di vista comportamentale. In particolare, non si dovrebbe sovrascrivere base_class se si sta definendo una versione personalizzata di un'istruzione che verrà implementata in modo diverso dall'hardware, come ad esempio una strategia di misurazione alternativa, oppure una versione di un gate parametrizzato con un particolare insieme di parametri allo scopo di distinguerla in un Target dal gate completamente parametrizzato.

Questo è spesso esattamente equivalente a type(obj), tranne nel caso delle istanze singole delle istruzioni della libreria standard. Queste istanze singleton sono sottoclassi speciali della loro classe base, e questa proprietà restituirà tale classe base. Ad esempio:

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

In generale, non è consigliabile basarsi sulla classe precisa di un'istruzione; all'interno di un dato circuito, è prevedibile che Instruction.name sia un discriminatore più adeguato nella maggior parte dei casi.

decompositions

Recupera le scomposizioni dell'istruzione dall' SessionEquivalenceLibrary.

definition

Definizione del ritorno in termini di altre porte logiche di base.

label

Etichetta con istruzioni per la restituzione

mutable

Questa istanza è un'istanza unica modificabile o no?

Se questo attributo è presente, False l'istanza del gate è un singleton condiviso e non è modificabile.

name

Restituisce il nome.

num_clbits

Restituisce il numero di clbit.

num_qubits

Restituisce il numero di qubit.

params

I parametri di questo Instruction. Idealmente si tratterà di angoli di porta.


Metodi

add_decomposition

add_decomposition(decomposition)

GitHub

Aggiungi una scomposizione dell'istruzione all' SessionEquivalenceLibrary

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Convalida e gestione degli argomenti e delle loro relazioni.

Ad esempio, cx([q[0],q[1]], q[2]) significa cx(q[0], q[2]); cx(q[1], q[2]). Questo metodo restituisce gli argomenti nel raggruppamento corretto. Nell'esempio riportato:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

Le regole generali in materia di radiodiffusione sono le seguenti:

  • Se len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Se len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • Se len(qargs) è maggiore o uguale a 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

Parametri

  • qargs (list) – Elenco degli argomenti relativi ai bit quantistici.
  • cargs (list) – Elenco degli argomenti classici relativi ai bit.

Risultati

Una tupla con un solo argomento.

Aumenti

CircuitError – Se l'input non è valido. Ad esempio, il numero di argomenti non corrisponde a quanto previsto dal gate.

Tipo di restituzione

Iterable [ tuple [ lista, lista ]]

control

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

GitHub

Restituisce una versione controllata di se stessa.

Il gate controllato viene implementato come ControlledGate quando annotated è False, e come AnnotatedOperation quando annotated è True.

Obsoleto a partire dalla versione 2.3

qiskit.circuit.gate.Gate.control()L'argomento annotated è deprecato a partire dalla versione 2.3 di Qiskit. Verrà rimosso nella versione 3.0 di Qiskit. Il metodo Gate.control () non accetta più annotated=None. Il nuovo valore predefinito è annotated=True, il che indica che il gate controllato viene rappresentato come un AnnotatedOperation (a meno che non esista già una classe dedicata ai gate controllati). È possibile impostare esplicitamente annotated=False per mantenere il comportamento precedente. Tuttavia, si consiglia di utilizzare annotated=True, poiché in questo modo la costruzione del circuito controllato viene delegata al transpiler e, inoltre, si consentono ulteriori ottimizzazioni dei gate controllati (che in genere portano a circuiti di qualità superiore).

Parametri

  • num_ctrl_qubits (int) – Numero di controlli da aggiungere. Il valore predefinito è 1.
  • label (str | None) – Etichetta del cancello (opzionale). Il valore predefinito è None. Viene ignorato se il gate controllato è implementato come operazione annotata.
  • ctrl_state (int |str | None) – Lo stato di controllo della porta, specificato come numero intero o come stringa di bit (ad es. "110"). Se None, assume per impostazione predefinita lo stato in cui tutti i 2**num_ctrl_qubits - 1 bit sono a 1.
  • annotated (bool | None) – Indica se il gate controllato debba essere implementato come gate controllato o come operazione annotata. Se None, si considera come False.

Risultati

Una versione controllata di questo gate.

Aumenti

QiskitError – non valido num_ctrl_qubits o ctrl_state.

copy

copy(name=None)

GitHub

Copia delle istruzioni.

Parametri

name (str) – nome da assegnare al circuito copiato; in None tal caso, il nome rimane invariato.

Risultati

una copia delle istruzioni attuali, con il nome aggiornato se è stato fornito

Tipo di restituzione

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Restituisce il gate inverso di SXdg (ovvero SX).

Parametri

annotated (bool) – Quando è impostato su True, questa opzione viene solitamente utilizzata per restituire un AnnotatedOperation con un modificatore inverso, anziché un concreto Gate. Tuttavia, in questa classe tale argomento viene ignorato poiché l'inverso di questa porta è sempre un SXGate.

Risultati

reciproco di SXdgGate

Tipo di restituzione

SXGate

is_parameterized

is_parameterized()

GitHub

Restituisce se il Instruction contiene parametri di compilazione.

power

power(exponent, annotated=False)

GitHub

Elevare questo numero alla potenza di exponent.

Implementato come gate unitario (rif. UnitaryGate) oppure come operazione annotata (cfr. AnnotatedOperation). Nel caso di diverse porte standard, come ad esempio RXGate, quando la potenza di una porta può essere espressa in termini di un'altra porta standard che viene restituita direttamente.

Parametri

  • exponent (float) – il potere di alzare il cancello per
  • annotated (bool) – indica se il power gate può essere implementato come operazione annotata. Nel caso di diverse porte logiche standard, come ad esempio RXGate, questo argomento viene ignorato quando la potenza di una porta può essere espressa in termini di un'altra porta logica standard.

Risultati

Un'operazione che implementa gate^exponent

Aumenti

CircuitError – Se il gate non è unitario

repeat

repeat(n)

GitHub

Crea un'istruzione con self la ripetizione di « nn » volte.

Parametri

n (int) – Numero di volte in cui ripetere l'istruzione

Risultati

Che contiene la definizione.

Tipo di restituzione

qiskit.circuit.Instruction

Aumenti

CircuitError – Se n < 1.

reverse_ops

reverse_ops()

GitHub

Per un'istruzione composta, invertire l'ordine delle sottoistruzioni.

Ciò avviene invertendo in modo ricorsivo tutte le sottoistruzioni. Non inverte alcun gate.

Risultati

una nuova istruzione con

sottoistruzioni invertite.

Tipo di restituzione

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Confronto graduale tra i gate. I loro nomi, il numero di qubit e il numero di bit classici devono corrispondere. Il numero di parametri deve corrispondere. Viene effettuato un confronto tra ciascun parametro. Se si è un " ParameterExpression ", questo non viene preso in considerazione.

Parametri

other (instruction) – altre istruzioni.

Risultati

il "self" e "other" sono equivalenti nelle espressioni dei parametri.

Tipo di restituzione

bool

to_matrix

to_matrix()

GitHub

Restituisce una matrice unitaria di gate ( Numpy.array ).

Risultati

se la sottoclasse Gate ha una definizione a matrice.

Tipo di restituzione

np.ndarray

Aumenti

CircuitError – Se una sottoclasse di Gate non implementa questo metodo, verrà generata un'eccezione quando viene chiamato questo metodo della classe base.

to_mutable

to_mutable()

GitHub

Restituisce una copia modificabile di questo gate.

Questo metodo restituirà una nuova copia modificabile di questa istanza di gate. Se si utilizza un'istanza singleton, si tratterà di una nuova istanza unica che può essere modificata. Se l'istanza è già modificabile, verrà eseguita una copia profonda di tale istanza.

validate_parameter

validate_parameter(parameter)

GitHub

I parametri del gate devono essere di tipo int, float o ParameterExpression

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