ZneOptions
class ZneOptions(amplifier=Unset, noise_factors=Unset, extrapolator=Unset, extrapolated_noise_factors=Unset)
Basi: object
Opzioni di mitigazione dell'estrapolazione del rumore zero. Viene utilizzato solo dallo Stimatore V2.
Qualsiasi stimatore V2 è in grado di restituire campi dati chiamati evs e stds che riportano rispettivamente le stime del valore di aspettativa e gli errori desiderati. Quando le opzioni ZNE sono abilitate nello stimatore runtime, vengono restituiti dati aggiuntivi.
In particolare, supponiamo che un pub in ingresso abbia una matrice osservabile di forma obs_shape e valori dei parametri di forma par_shape, con la corrispondente forma del pub shape=np.broadcast_shapes(obs_shape, par_shape). Allora il risultato pub corrispondente conterrà anche:
-
pub_result.data.evs_extrapolated e pub_result.data.stds_extrapolated,
entrambi con forma
(*shape, num_extrapolators, num_evaluation_points), dovenum_extrapolatorsè la lunghezza dell'elenco dioptions.resilience.zne.extrapolators, enum_evaluation_pointsè la lunghezza dell'elencooptions.resilience.extrapolated_noise_factors. Questi valori forniscono le valutazioni di ogni estrapolatore per ogni valore di estrapolazione del rumore specificato. -
pub_result.data.evs_noise_factors,pub_result.data.stds_noise_factorseensemble_stds_noise_factorshanno tutti la forma(*shape, num_noise_factors)dovenum_noise_factorsè la lunghezza dioptions.resilience.zne.noise_factors. Questi valori forniscono i valori di aspettativa grezzi, mediati sul twirling, se applicabile, a ciascuna delle amplificazioni del rumore; è possibile basare le proprie routine di adattamento su questi valori. Nel caso in cui non si verifichi il twirling, entrambe le matrici*stds*saranno uguali; altrimenti,stds_noise_factorsè derivato dallo spread sui campioni twirling, mentreensemble_stds_noise_factorsassume solo il rumore dei colpi e nessuna deriva.
Nota tecnica: per le singole osservabili con termini base multipli potrebbe risultare che vengono utilizzati più metodi di estrapolazione nello stesso valore di aspettativa, ad esempio XX viene estrapolato linearmente ma XY viene estrapolato esponenzialmente nell'osservabile {"XX": 0.5, "XY": 0.5}. Si tratta di un adattamento eterogeneo. I dati della (2) sono valutati da fit eterogenei, selezionando il miglior fit per ogni singolo termine distinto, mentre i dati della (1) sono valutati da fit omogenei forzati, uno per ogni estrapolatore fornito. Se il vostro lavoro richiede una distinzione sfumata in questo senso, vi consigliamo di utilizzare osservabili a termine singolo in aggiunta agli osservabili a termine multiplo.
Riferimenti
- Z. Cai, Multi-exponential error extrapolation and combining error mitigation techniques for NISQ applications, npj Quantum Inf 7, 80 (2021)
Attributi
Parametri
- amplifier (UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea'])
- noise_factors (UnsetType | Sequence[float])
- extrapolator (UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback'] | ~collections.abc.Sequence[~typing.Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']])
- extrapolated_noise_factors (UnsetType | Sequence[float])
amplifier
Tipo: UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea']
Valore predefinito: Unset
Quale tecnica utilizzare per amplificare il rumore.
Uno di:
"gate_folding" (predefinito) utilizza il gate folding a 2 qubit per amplificare il rumore. Se il rumore
richiede l'amplificazione solo di un sottoinsieme di porte, allora queste porte vengono scelte in modo casuale.
"gate_folding_front" utilizza il gate folding a 2 qubit per amplificare il rumore. Se il rumore
richiede l'amplificazione solo di un sottoinsieme di porte, allora queste porte vengono selezionate dal fronte del circuito DAG topologicamente ordinato.
"gate_folding_back" utilizza il gate folding a 2 qubit per amplificare il rumore. Se il rumore
richiede l'amplificazione solo di un sottoinsieme di porte, allora queste porte vengono selezionate dal retro del circuito DAG topologicamente ordinato.
"pea" utilizza una tecnica chiamata Amplificazione Probabilistica degli Errori
(PEA ) per amplificare il rumore. Quando si seleziona questa opzione, il gate twirling verrà sempre utilizzato, indipendentemente dal fatto che sia stato abilitato o meno nelle opzioni. In questa tecnica, il modello di rumore roteato di ogni singolo strato di porte entangling nei circuiti ISA viene appreso in anticipo, vedi
LayerNoiseLearningOptionsper le relative opzioni di apprendimento. Una volta completati, i circuiti vengono eseguiti a ogni fattore di rumore, dove ogni strato entangling dei circuiti viene amplificato iniettando probabilisticamente un rumore a singolo qubit proporzionale al corrispondente modello di rumore appreso.
extrapolated_noise_factors
Tipo: UnsetType | Sequence[float]
Valore predefinito: Unset
Fattori di rumore per valutare l'adattamento dei modelli di estrapolazione.
Se non specificato, il valore predefinito è [0, *noise_factors]. Questa opzione non influisce in alcun modo sull'esecuzione o sull'adattamento del modello, ma determina semplicemente i punti in cui vengono calcolati i extrapolator valori da restituire nei campi dati denominati evs_extrapolated e stds_extrapolated.
extrapolator
Tipo: UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback' |] Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']]
Valore predefinito: Unset
Estrapolatore/i da provare (in ordine) per l'estrapolazione a rumore zero.
Le opzioni disponibili sono:
"exponential", che adatta i dati utilizzando una funzione esponenziale decrescentedefinito come , dove è il valore a rumore zero ( ) e è un tasso positivo.
"double_exponential"che utilizza una somma di due esponenziali come in Rif. 1.
"polynomial_degree_(1 <= k <= 7)", che utilizza una funzione polinomiale definita come.
"linear", che è equivalente a"polynomial_degree_1".
"fallback", che restituisce semplicemente i dati grezzi corrispondenti al rumore più basso
1fattore (in genere) senza effettuare alcun tipo di estrapolazione.
I valori estrapolati (evs_extrapolated e stds_extrapolated) sono ordinati secondo l'ordine degli estrapolatori forniti. Se viene specificato più di un estrapolatore, i valori evs e stds riportati nei dati del risultato si riferiscono al primo estrapolatore riuscito, dove il successo di un estrapolatore è determinato in modo euristico.
Predefinito: ("exponential", "linear").
noise_factors
Tipo: UnsetType | Sequence[float]
Valore predefinito: Unset
Fattori di rumore da utilizzare per l'amplificazione del rumore.
Impostazione predefinita: (1, 3, 5).
Tipo
fattori_rumore