Skip to main content
IBM Quantum Platform

qiskit_noise_learning.sequences.FidelityIndex

class qiskit_noise_learning.sequences.FidelityIndex(gate_name: str, pauli: QubitSparsePauli, in_z_idxs: frozenset[int], out_z_idxs: frozenset[int], input_pauli: QubitSparsePauli, output_pauli: QubitSparsePauli, sign_flip: bool, meas_idxs: frozenset[int])

GitHub

Basi: object

Dati di indice relativi a una fedeltà in un insieme di porte Pauli-MCM-reset.

Sia KK il numero di qubit, [K]={0,...,K−1}[K] = \{0, ..., K-1\}, M⊂[K]M\subset [K] i qubit misurati e R⊂[K]R \subset [K] i qubit di reset per il gate. Per un dato gate, ciascuna fedeltà è specificata da:

  • Un Pauli sui qubit non misurati e non resettati Q∈P[K]∖(M∪R)Q \in P^{[K]\setminus (M \cup R)},
  • Un operatore di tipo " ZZ " ZxZ^x sui qubit misurati, x∈Z2Mx \in Z_2^M, e
  • Un operatore di tipo " ZZ " ZyZ^y sui qubit misurati e reimpostati, y∈Z2M∪Ry \in Z_2^{M \cup R}.

Questo elenco costituisce i “dati di indice” per una fedeltà generalizzata relativa a un dato gate, nel senso che esiste una biiezione tra tutte le fedeltà generalizzate e l’insieme sopra indicato di tutti gli oggetti che soddisfano la descrizione sopra riportata. Si veda l’equazione (3) del formalismo matematico per la scomposizione in cui compaiono.

Gli esponenti xx e yy sono memorizzati come insiemi di indici di qubit su cui sono diversi da zero, ovvero in_z_idxs e out_z_idxs – in altre parole, i qubit su cui ZxZ^x e ZyZ^y agiscono in modo non banale.

Il costruttore FidelityIndex.from_gate() crea un FidelityIndex partendo da un ModelGate e dai dati dell'indice univoco sopra indicati. In alternativa, FidelityIndex.from_transition() è possibile utilizzare per costruire un’istanza a partire dalla transizione di Pauli implicita nei dati dell’indice. Il FidelityIndex.__init__() è considerato un costruttore “di basso livello” che accetta tutte le proprietà memorizzate senza effettuare alcuna convalida.

Parametri

  • gate_name – Il nome del cancello.
  • pauli – Un operatore di Pauli che supporta i qubit non misurati e non resettati. Si noti che pauli.num_qubits determina la dimensione degli operatori restituiti da self.transition.
  • in_z_idxs – Gli indici dei qubit per i quali xx è diverso da zero.
  • out_z_idxs – Gli indici dei qubit per i quali yy è diverso da zero.
  • input_pauli – Il valore di Pauli in ingresso della transizione.
  • output_pauli – Il valore di Pauli in uscita dalla transizione.
  • sign_flip – Indica se la transizione comporta un’inversione del segno.
  • meas_idxs – Gli indici dei qubit di misura per il gate.

__init__

__init__(gate_name: str, pauli: QubitSparsePauli, in_z_idxs: frozenset[int], out_z_idxs: frozenset[int], input_pauli: QubitSparsePauli, output_pauli: QubitSparsePauli, sign_flip: bool, meas_idxs: frozenset[int])


Metodi

Rubrica 1
Rubrica 2
__init__(gate_name, pauli, in_z_idxs,...)
from_gate(gate, pauli[, in_z_idxs, out_z_idxs])Calcolare un indice di fedeltà a partire dai dati relativi ai gate e agli indici univoci.
from_transition(gate, in_pauli, out_pauli)Calcolare un indice di fedeltà a partire da una transizione di Pauli sui registri quantistici.
is_valid_for_gate(gate, pauli[, in_z_idxs, ...])Se i dati dell'indice forniti costituiscono un indice di fedeltà valido per il gate.

Attributi

Rubrica 1
Rubrica 2
gate_nameIl nome del cancello.
in_z_idxsI qubit misurati che trasportano un’ ZZ e all’ingresso dello strumento.
meas_idxsGli indici dei qubit fisici misurati dal gate.
observable_idxsIndici dei qubit dell'osservabile associato " ZZ " in ordine crescente.
out_z_idxsI qubit misurati e reimpostati generano un’ ZZ e sull’uscita dello strumento.
pauliL'operatore di Pauli sulla parte di Clifford del gate del modello.
sign_flipSe la transizione associata a questa fedeltà comporti un’inversione di segno.
transitionLa transizione dell'operatore di Pauli senza fase associata a questo indice di fedeltà.

from_gate

classmethod from_gate(gate: ModelGate, pauli: QubitSparsePauli, in_z_idxs: frozenset[int] = frozenset({}), out_z_idxs: frozenset[int] = frozenset({})) → Self

Calcolare un indice di fedeltà a partire dai dati relativi ai gate e agli indici univoci.

Parametri

  • cancello – Il modello di cancello.
  • pauli – Un operatore di Pauli che supporta i qubit non misurati e non resettati.
  • in_z_idxs – Il sottoinsieme degli indici dei qubit di misura che trasportano un’ ZZ e sull’ingresso dello strumento.
  • out_z_idxs – Il sottoinsieme dell’unione degli indici dei qubit di misurazione e di reset che trasportano un’ ZZ e sull’uscita dello strumento.

Aumenti

ValueError : se i dati forniti non sono coerenti con il gate.

is_valid_for_gate

classmethod is_valid_for_gate(gate: ModelGate, pauli: QubitSparsePauli, in_z_idxs: frozenset[int] = frozenset({}), out_z_idxs: frozenset[int] = frozenset({})) → bool

Se i dati dell'indice forniti costituiscono un indice di fedeltà valido per il gate.

Questo codice esegue gli stessi controlli di coerenza (privi di effetti collaterali) di from_gate(), senza creare l'indice né calcolarne la transizione.

Parametri

  • cancello – Il modello di cancello.
  • pauli – Un operatore di Pauli che supporta i qubit non misurati e non resettati.
  • in_z_idxs – Il sottoinsieme degli indici dei qubit di misura che trasportano un’ ZZ e sull’ingresso dello strumento.
  • out_z_idxs – Il sottoinsieme dell’unione degli indici dei qubit di misurazione e di reset che trasportano un’ ZZ e sull’uscita dello strumento.

from_transition

classmethod from_transition(gate: ModelGate, in_pauli: QubitSparsePauli, out_pauli: QubitSparsePauli) → Self

Calcolare un indice di fedeltà a partire da una transizione di Pauli sui registri quantistici.

Questo costruttore ricava gli insiemi di indici di Pauli e di ZZ di un FidelityIndex a partire dalla transizione di Pauli specificata.

Parametri

  • cancello – Il modello di cancello.
  • in_pauli – L’input Pauli sul registro quantistico.
  • out_pauli – L'output Pauli sul registro quantistico.

Aumenti

ValueError : se la coppia di operatori di Pauli non implica una valida FidelityIndex.

gate_name

Tipo: str

Il nome del cancello.

pauli

Tipo: QubitSparsePauli

L'operatore di Pauli sulla parte di Clifford del gate del modello.

in_z_idxs

Tipo: frozenset[int]

I qubit misurati che trasportano un’ ZZ e all’ingresso dello strumento.

out_z_idxs

Tipo: frozenset[int]

I qubit misurati e reimpostati generano un’ ZZ e sull’uscita dello strumento.

meas_idxs

Tipo: frozenset[int]

Gli indici dei qubit fisici misurati dal gate.

sign_flip

Tipo: bool

Se la transizione associata a questa fedeltà comporti un’inversione di segno.

transition

Tipo: tuple[QubitSparsePauli, QubitSparsePauli]

La transizione dell'operatore di Pauli senza fase associata a questo indice di fedeltà.

observable_idxs

Tipo: list[int]

Indici dei qubit dell'osservabile associato " ZZ " in ordine crescente.

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