Modelli di rumore
qiskit_paulice.noise_models
Specifica del modello di rumore per la valutazione dei controlli di Pauli nello spazio-tempo.
NoiseModel
class NoiseModel(gate_noise=None, readout_noise=None, idling_noise=None)
Basi: object
Modello di rumore utilizzato per individuare le posizioni ottimali dei circuiti per i controlli di Pauli nello spazio-tempo.
Parametri
from_backend
classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)
Creare un'istanza di NoiseModel a partire dai dati di calibrazione del backend.
Le chiavi Edge nel dizionario risultante GateWiseNoise utilizzano indici di qubit virtuali (posizioni in layout). Se il circuito di input presenta una struttura che mappa gli indici virtuali a quelli fisici in modo coerente con layout, i tasti fungono anche da indici fisici.
None``idling_noise è sempre None derivato da questo metodo; se backend manca la calibrazione della lettura, readout_noise sarà anch’esso.
Parametri
- backend (BackendV2) – Un backend contenente le probabilità di errore dei gate a due qubit per ciascun bordo della mappa di accoppiamento, nonché le informazioni sugli errori di lettura per ciascun qubit nel layout.
- layout (Sequence[int]) – Indici dei qubit fisici nel backend da includere nel modello di rumore. L'ordine definisce l'indicizzazione dei qubit virtuali (il qubit virtuale 0 corrisponde a
layout[0], ecc.). - uniform_gate_noise (bool) – Se
True, ilgate_noisecampo nell'uscitaNoiseModelsarà unUniformGateNoisee si ipotizza che la probabilità di errore sia distribuita uniformemente tra le15basi di Pauli non identitarie, in modo da formare un canale depolarizzante uniforme che influenzerà in modo uguale tutti i gate di entanglement. SeFalse,gate_noisesarà un’istanzaGateWiseNoisein cui ogni spigolo è associato a un canale di rumore personalizzato basato sui dati di calibrazione del backend. - pauli_bases (Sequence[str] | None) – Per
GateWiseNoisei modelli,pauli_basessi tratta delle basi su cui sarà distribuita la probabilità di errore segnalata dal backend. Ogni base è una stringa di Pauli di 2 caratteri abbinata da sinistra a destra alla tupla dell'arco, quindi"XZ"sull'arco(a, b)si collocanoXsuaeZsub. Il comportamento predefinito prevede l'utilizzo della base di Pauli completa 2Q, ad eccezione di"II". Nel caso diUniformNoise, si ipotizza la base completa e tale argomento viene ignorato.
Risultati
Un'istanza NoiseModel contenente il rumore di gate e di lettura ricavato dai dati di calibrazione del backend.
Aumenti
ValueError – Nel backend mancano i dati di calibrazione oppure il layout contiene indici di qubit non validi.
Tipo di restituzione
from_pauli_lindblad_maps
classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)
Creare un “ NoiseModel ” a partire dalle mappe di Pauli-Lindblad.
Questo metodo costruisce un NoiseModel a partire da PauliLindbladMap istanze che rappresentano i canali di rumore che influenzano i gate e, facoltativamente, le misurazioni. Il rumore del gate viene specificato tramite l'argomento layer_noise . Si presume che ogni PauliLindbladMap istanza agisca su un unico strato di porte di entanglement. Il rumore di lettura è specificato da un singolo PauliLindbladMap elemento contenente generatori di Pauli-X a singolo qubit e le relative frequenze.
Parametri
- layer_noise (Sequence[PauliLindbladMap]) – Una sequenza di
PauliLindbladMapoggetti, in cui ogni mappa rappresenta il canale di rumore per un singolo strato di entanglement nel circuito. - readout_noise (PauliLindbladMap | None) – Opzionale
PauliLindbladMap: include generatori di raggi X di Pauli su ciascun qubit per gli errori di lettura.
Risultati
Un’istanza NoiseModel che riflette il modello o i modelli di rumore definiti nell’input PauliLindbladMap``s. ``idling_noise sarà None sempre per questo metodo.
Aumenti
- ValueError – Il peso del generatore di errori è superiore a
2. - ValueError – Il generatore di errori di lettura non è Pauli-X.
Tipo di restituzione
gate_noise
Tipo: GateNoise | None
Valore predefinito: None
Errori che si verificano durante le operazioni sui gate a 2 qubit. Può essere:
UniformNoise: Probabilità di errore identica per tutte le porte logiche. La probabilità di errore è distribuita in modo uniforme su ciascuna base di Pauli rappresentata nel canale.LayeredNoise: canale di rumore di Pauli-Lindblad per ogni singolo strato di entanglementGateWiseNoise: canale di rumore di Pauli-Lindblad per ogni spigolo di entanglement unico
idling_noise
Valore predefinito: None
Tasso di decadimento dei qubit durante il periodo di inattività. La probabilità totale di errore è data da 1 - exp(-t / idling_noise).
readout_noise
UniformGateNoise
Valore predefinito: <class 'float'>
Una probabilità di depolarizzazione applicata in modo uniforme a tutte le porte a 2 qubit.
Tale probabilità sarà distribuita equamente tra i 15 Pauli non identici nella base di Pauli a 2 qubit per formare il canale di depolarizzazione. Questo canale di rumore verrà applicato dopo ogni gate di entanglement.
LayeredGateNoise
Modello di rumore a strati che associa strati di entanglement univoci ai generatori di errori di Pauli.
Si ipotizza che l’errore di Pauli-Lindblad associato a ciascun strato di entanglement sia definito prima dei gate presenti in tale strato.
Le chiavi sono tuple costituite da coppie di indici di qubit (spigoli) che definiscono un livello. I valori sono elenchi di (pauli, rate) tuple in cui pauli è una stringa di Pauli definita su tutti i qubit e rate è il tasso di errore associato.
alias di dict[tuple[tuple[int, int], …], list[tuple[Pauli | str, float]]]
GateWiseNoise
Modello di rumore a livello di gate che mappa coppie di qubit su un canale di rumore di Pauli.
Le chiavi sono tuple costituite da coppie di indici di qubit che rappresentano i bordi. I valori sono elenchi di tuple (pauli, rate), dove pauli è una stringa di Pauli composta da 2 caratteri e rate è il tasso di errore associato. (pauli_str, indices)La stringa è associata da sinistra a destra alla tupla dell’arco — corrispondente PauliLindbladMapalla forma sparsa di : per l’arco (a, b), "XZ" assegna X a a e Z a b.
GateNoise
Valore predefinito: float | dict[tuple[tuple[int, int], ...], list[tuple[qiskit.quantum_info.operators.symplectic.pauli.Pauli | str, float]]] | dict[tuple[int, int], list[tuple[str, float]]]
Il rumore del gate può essere uniforme (float), a livelli (dict) o per singolo gate (dict).