qiskit_noise_learning.analysis.PositivityMinSolve
class qiskit_noise_learning.analysis.PositivityMinSolve(coefficients: dict[str, float], epsilon: Callable[[LinearSystemData], float] | None = None, deltas: Callable[[LinearSystemData], Mapping[Hashable, float]] | None = None, weights: Callable[[LinearSystemData], IndexedMatrix] | None = None, non_negative: bool = False)
Basi: ModelSolve
Risolve l'equazione minimizzando ModelData al contempo la positività del tasso di Pauli-Lindblad.
Richiede che il Fit utilizzi un PauliLindbladModel.
Per un insieme di gate , si indichi con i tassi di Pauli-Lindblad sugli insiemi di generatori dipendenti dai gate , con la matrice di progettazione e con i dati osservati. Per i parametri dell'algoritmo specificati dall'utente:
- Coefficienti di gate ,
- Intervallo di adattamento globale e
- I limiti di adattamento locale per ciascun percorso misurati nella matrice di progettazione,
Questa classe risolve il problema di ottimizzazione convessa:
a condizione che:
- per ogni riga
- (facoltativo)
Per ModelSolve ulteriori dettagli sulla responsabilità generale di un risolutore di modelli in questa libreria, consultare [...].
I limiti dei vincoli sono specificati come policy : funzioni richiamabili che ricevono il tempo di risoluzione e LinearSystemData restituiscono il limite corrispondente.
Parametri
- coefficienti – Coefficienti per ciascun gate relativi alla funzione obiettivo, definiti come mappatura dal nome del gate a un valore di tipo float.
- epsilon – Politica che restituisce la tolleranza per il vincolo complessivo della norma " L2 " ponderata.
deltasÈ necessario specificare almeno uno tra eepsilon. - deltas – Politica che restituisce le tolleranze per riga come mappatura da
Patha float. Deve coprire ogni riga del sistema lineare, poiché una riga assente dalla mappatura rimarrebbe senza vincoli.deltasÈ necessario specificare almeno uno tra eepsilon. - pesi – Politica che restituisce la matrice dei pesi per
Wil vincolo “ L2 ” sotto forma di un oggetto iIndexedMatrixcui indici di riga e colonna sonoPathoggetti. Il valore predefinito è l'identità. Una riga o una colonna del sistema lineare non presente inWha peso zero, il che fa sì che il suo residuo venga escluso dalla norma. Viene utilizzato solo quandoepsilonè specificato. - non_negative – Se applicare o meno la regola
x >= 0.
Aumenti
- TypeError : se
epsilon, odeltasweightsviene specificato come valore fisso anziché come politica. Utilizzarefrom_constants()per i valori fissi. - ValueError : in fase di risoluzione, se la politica
weightsdeltaso produce un’etichetta che non è una riga del sistema lineare, oppure se nedeltasomette una. - RuntimeError : in fase di risoluzione, se il risolutore convesso non restituisce una soluzione, ad esempio perché i vincoli sono infeasibili.
__init__
__init__(coefficients: dict[str, float], epsilon: Callable[[LinearSystemData], float] | None = None, deltas: Callable[[LinearSystemData], Mapping[Hashable, float]] | None = None, weights: Callable[[LinearSystemData], IndexedMatrix] | None = None, non_negative: bool = False)
Metodi
Rubrica 1 | Rubrica 2 |
|---|---|
__init__(coefficienti[, epsilon, deltas, ...]) | |
from_constants(coefficienti[, epsilon, ...]) | Costruire sulla base di limiti costanti fissi anziché di politiche basate sui dati. |
from_data_scaled_deltas(coefficienti[, ...]) | Costruire una politica basata esclusivamente sul delta, fondandosi sull'incertezza statistica delle grandezze osservabili. |
run(adatto) | Esegui questa fase, restituendo un nuovo oggetto Fit con il livello di output compilato. |
Attributi
Rubrica 1 | Rubrica 2 |
|---|---|
input_level | Il livello di dati letto in questa fase. |
output_level | Il livello di dati in cui questa fase effettua la scrittura. |
from_constants
classmethod from_constants(coefficients: dict[str, float], epsilon: float | None = None, deltas: Mapping[Path, float] | None = None, weights: IndexedMatrix | None = None, non_negative: bool = False) → Self
Costruire sulla base di limiti costanti fissi anziché di politiche basate sui dati.
Ogni costante fornita è racchiusa in una policy che ignora i dati e li restituisce. Per il significato di ciascun argomento, consultare la stringa di documentazione della classe; in questo caso si tratta di valori fissi anziché di oggetti chiamabili.
from_data_scaled_deltas
classmethod from_data_scaled_deltas(coefficients: dict[str, float], scale: float = 1.0, non_negative: bool = False) → Self
Costruire una politica basata esclusivamente sul delta, fondandosi sull'incertezza statistica delle grandezze osservabili.
La tolleranza di ciascuna riga viene determinata in base all’incertezza statistica della riga stessa e all’indice di adattamento dell’adattamento esponenziale. Per la riga e, con il valore statistico 1-sigma e sigma_b il chi-quadrato ridotto ricavati chi2_red dalla voce "reduced_chi_squared" di row_diagnostics:
L'impostazione delta_i proporzionale a sigma segue il principio di discrepanza di Morozov (prevedendo un margine di circa deviazioni standard scale ). Poiché le stime curve_fit sigma_b con absolute_sigma=True, il metodo non tiene conto della discrepanza tra il modello e i dati; il sqrt(chi2_red) fattore allenta le righe il cui adattamento esponenziale è scadente, mentre il max(1, .) limite fa sì che la discrepanza possa solo allentare una riga, senza mai stringere il modello al di sotto della sua incertezza statistica. Le righe con un valore non definito ( chi2_red``nan ad esempio, le righe mediate) e tutte le righe per le quali il sistema non fornisce alcuna informazione diagnostica "reduced_chi_squared" non subiscono alcuna inflazione. Se il modello non può essere adattato entro le tolleranze risultanti, il programma di risoluzione segnala un problema non fattibile, e scale è la manopola che allenta tutte le righe contemporaneamente.
Una riga la cui incertezza non è positiva o non è finita non fornisce alcuna informazione statistica su cui basare la scalatura; pertanto, anziché essere considerata come una riga estremamente precisa, le viene assegnata la tolleranza mediana delle righe che presentano invece un’incertezza utilizzabile. Ciò mantiene tale riga nell'adattamento a una scala tipica senza che essa vincoli la soluzione a una quasi-uguaglianza, e la tolleranza di nessuna riga dipende mai dall'incertezza di un'altra riga se non attraverso questa sostituzione.
Parametri
- coefficienti – Coefficienti per ciascun gate relativi alla funzione obiettivo, definiti come mappatura dal nome del gate a un valore di tipo float.
- scala – Moltiplicatore della tolleranza per riga, espresso in deviazioni standard (gonfiate).
- non_negative – Se applicare o meno la regola
x >= 0.
Aumenti
ValueError : al momento della risoluzione, se nessuna riga del sistema lineare presenta un’incertezza positiva e finita, non rimane nulla da cui ricavare le tolleranze.