PEC (qiskit_mitigation.pec)
Pec
class PEC
Basi: MitigationTask
Calcola i valori attesi delle grandezze osservabili utilizzando il metodo di mitigazione denominato "Probabilistic Error Cancellation" (PEC).
La classe consente di preparare un modello " QuantumProgram " con circuito mitigato mediante il metodo PEC, che può essere eseguito su hardware utilizzando l’Executor, e di elaborare successivamente i risultati per calcolare i valori attesi mitigati di determinate grandezze osservabili. I parametri dell'attività devono essere forniti come input alla funzione prepare, mentre le variabili rilevanti necessarie per la post-elaborazione vengono salvate internamente:
pec = PEC()
program = pec.prepare(circuit=circuit,
observables=observables,
parameters=parameter_valuesת
noise_maps=learned_noise)
job = executor.run(program)
results = job.result()
mitigated_result = pec.postprocess(results)Per calcolare i valori attesi del risultato di un lavoro caricato, è possibile creare un’attività PEC a partire dai risultati del lavoro, includendo tutte le variabili interne necessarie per la post-elaborazione. In alternativa, le variabili necessarie per la post-elaborazione possono essere fornite direttamente come input al metodo statico compute_expectation_value . Esempio di esecuzione della post-elaborazione di un risultato caricato:
pec = PEC()
program = pec.prepare(circuit=circuit,
observables=observables,
parameters=parameter_valuesת
noise_maps=learned_noise)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
pec = load_tasks_from_result(results)[0]
mitigated_result = pec.postprocess(results)Creare un'istanza di un'attività PEC.
Metodi
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
Restituisce i livelli "boxed" univoci del circuito specificato, utilizzando le opzioni di "boxing" specificate.
Parametri
- circuit (QuantumCircuit) – Il circuito per scoprire i suoi strati unici.
- custom_boxing_options (dict | None) – Le opzioni di impacchettamento personalizzate che verranno utilizzate dalla funzione
generate_boxing_pass_manager().
Risultati
Strati unici racchiusi nel circuito specificato.
Tipo di restituzione
prepare
prepare(circuit, observables, parameters, custom_boxing_options=None, shots_per_randomization=64, num_randomizations=128, broadcast_obs_and_params=False, trex=None, quantum_program=None, *, noise_maps=None, scale_randomizations_by_gamma=True, noise_gain='auto', max_sampling_overhead=100)
Crea un elemento QuantumProgram con mitigazione PEC da eseguire tramite Executor.
Crea un elemento per un QuantumProgram, che può essere eseguito tramite Executor e che è mitigato tramite PEC (inietta rumore inverso per annullare il rumore appreso). Se viene quantum_program specificato un, il nuovo elemento verrà aggiunto al programma esistente; in caso contrario, verrà creato un nuovo programma contenente solo l'elemento appena creato. Se è broadcast_obs_and_params True, gli osservabili e i parametri verranno trasmessi utilizzando le regole di trasmissione di Samplomatic, per consentire di associare alcuni dei parametri ad alcuni degli osservabili. In caso contrario, ogni parametro verrà eseguito per ciascun osservabile (prodotto esterno dei parametri e degli osservabili). Si noti che la post-elaborazione di un prodotto esterno è solitamente più veloce.
Parametri
- circuit (QuantumCircuit) – Il circuito quantistico.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – Le grandezze osservabili per calcolarne i valori attesi.
- parameters (ndarray |BindingsArray | None) – I parametri di un circuito parametrico.
- custom_boxing_options (dict | None) – Le opzioni di impacchettamento personalizzate che verranno utilizzate dalla funzione
generate_boxing_pass_manager(). - shots_per_randomization (int) – Il numero di misurazioni per ogni randomizzazione.
- num_randomizations (int) – Il numero di randomizzazioni.
- broadcast_obs_and_params (bool) – Se trasmettere gli osservabili e i parametri.
- trex (TREX | None) – Un'istanza di mitigazione TREX che verrà utilizzata per mitigare gli errori di lettura.
- quantum_program (QuantumProgram | None) – Il programma quantistico per cui aggiungere un elemento. Se il valore è None, verrà creato un nuovo programma.
- noise_maps (dict[str, PauliLindbladMap] | None) – Una corrispondenza tra il riferimento al livello e un modello di rumore da utilizzare per il metodo di mitigazione PEC. Il dizionario potrebbe contenere livelli non presenti nel circuito specificato, ma deve contenere tutti i livelli sottoposti a misure di mitigazione. Si presume che i livelli univoci utilizzati per l'apprendimento del rumore siano stati estratti utilizzando il metodo
find_unique_layerscon le stesse opzioni di "boxing" personalizzate. - scale_randomizations_by_gamma (bool) – Se scalare automaticamente il numero di randomizzazioni in base a gamma**2.
- noise_gain (float |Literal['auto']) – La percentuale di rumore da mantenere dopo la mitigazione. Un valore pari a
0corrisponde alla rimozione completa del rumore appreso. Un valore pari a1corrisponde all'assenza di rimozione del rumore appreso. Un valore compreso tra e01corrisponde alla rimozione parziale del rumore appreso. Un valore superiore a uno corrisponde all'amplificazione del rumore appreso. Se"auto", il valore compreso nell'intervallo[0, 1]verrà scelto automaticamente dalla formula1 - log(max_overhead) / log(gamma^2). - max_sampling_overhead (float | None) – Se scale_randomizations_by_gamma è True, limitare il rapporto moltiplicativo del numero di randomizzazioni.
Risultati
Un elemento con QuantumProgram mitigazione PEC che può essere eseguito tramite Executor.
Tipo di restituzione
postprocess
postprocess(results, measure_noise_data=None)
Valori attesi di processo per un singolo risultato relativo a un elemento sottoposto a mitigazione PEC.
Parametri
- results (QuantumProgramItemResult |QuantumProgramResult) – I risultati dell'esecuzione. Può trattarsi sia dell'intero oggetto dei risultati sia del risultato relativo alla voce "mitigazione del rischio" di questa attività. Se al programma quantistico viene aggiunta l'attività di calibrazione TREX, i relativi risultati saranno utilizzati per calcolare i dati relativi al rumore di misura, a condizione che venga fornito l'intero oggetto dei risultati.
- measure_noise_data (PauliLindbladMap |ndarray | None) – I dati relativi al rumore di misura appreso da utilizzare per la mitigazione del TREX. Se è specificato
Nonee nel programma quantistico è presente un’attività di calibrazione, il rumore di misura verrà calcolato in base ai risultati dell’attività di calibrazione, a condizione che venga fornito l’intero oggetto dei risultati.
Risultati
Un oggetto di tipo PubResult che contiene evs e std come campi nei propri dati, dove evs sono i valori attesi e std sono le deviazioni standard dei valori attesi. Se broadcast_obs_and_params è impostato su True, i dati conterranno anche un campo twirl_stds che rappresenta la deviazione standard tra le diverse randomizzazioni.
Aumenti
- ValueError – Se il risultato dell'elemento dell'attività non ha alcuna
'_meas'chiave. - ValueError – Se i dati
'_meas'del risultato dell'elemento presentano un numero di assi non valido. - ValueError – Se e
param_shapenonobservables.shapepossono essere trasmessi l'uno contro l'altro, mentrebroadcast_obs_and_paramsera stato impostato su duranteTruela preparazione dell'attività.
Tipo di restituzione
compute_expectation_value_pec
static compute_expectation_value_pec(item_result, observables, gamma, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)
Valori attesi di processo per un singolo risultato relativo a un elemento sottoposto a mitigazione PEC.
Questa funzione può essere utilizzata per calcolare i valori attesi relativi al risultato di un singolo elemento sottoposto a mitigazione PEC senza creare una nuova istanza della classe.
Parametri
- item_result (QuantumProgramItemResult) – Il risultato della ricerca.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – Le grandezze osservabili per le quali calcolare i valori attesi.
- gamma (float) – Il fattore gamma del modello di rumore appreso per il circuito eseguito.
- param_shape (tuple[int, ...] | None) – La forma dei valori dei parametri.
- param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – La mappa tra i parametri e gli indici per misurare la base.
- meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – Un elenco delle basi di Pauli misurate. L’elemento °
iè una base di misura che si presume corrisponda alla °iporzione dei dati initem_result. - broadcast_obs_and_params (bool) – Se trasmettere o meno gli osservabili e i valori dei parametri.
- measure_noise_data (PauliLindbladMap |ndarray | None) – Dati di calibrazione del rumore di misura per la mitigazione del TREX.
Risultati
Un oggetto di tipo PubResult che contiene evs e std come campi nei propri dati, dove evs sono i valori attesi e std sono le deviazioni standard dei valori attesi. Se broadcast_obs_and_params è impostato su True, i dati conterranno anche un campo twirl_stds che rappresenta la deviazione standard tra le diverse randomizzazioni.
Aumenti
- ValueError – Se non
item_resultha la chiave'_meas'. - ValueError – Se il numero di assi non
item_result['_meas']è valido. - ValueError – Se non
item_resultha la chiave'pauli_signs'. - ValueError – Se e
param_shapeobservables.shapenon possono essere trasmessi l'uno contro l'altro.
Tipo di restituzione
create_instance_from_passthrough_data
static create_instance_from_passthrough_data(passthrough, trex=None)
Creare un'istanza PEC a partire da un dizionario passthrough caricato dal risultato dell'esecuzione di un programma quantistico.
Parametri
- passthrough (dict[str, Any]) – Dizionario Passthrough_data caricato dal risultato dell'esecuzione di un programma quantistico.
- trex (TREX | None) – Un'istanza TREX contenente un circuito di calibrazione viene eseguita all'interno dello stesso programma quantistico. Deve essere mantenuto nel
Nonecaso in cui non sia stata utilizzata la mitigazione TREX o non sia stata eseguita una calibrazione TREX nell'ambito dello stesso programma quantistico.
Risultati
Un'istanza PEC.
Tipo di restituzione