MitigationTask (qiskit_mitigation.mitigation_task)
MitigationTask
class MitigationTask
Basi: object
Calcola i valori attesi delle grandezze osservabili utilizzando l'esecutore.
Questa classe è la classe base per tutti i metodi di mitigazione. Consente di preparare un’ QuantumProgram e che possa essere eseguita sull’hardware tramite l’Executor e di elaborare successivamente i risultati per calcolare i valori attesi 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:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)Per calcolare i valori attesi del risultato di un lavoro caricato, è possibile creare un’attività a partire dai risultati del lavoro, che includa 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 per un risultato caricato:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
task = load_tasks_from_result(results)[0]
mitigated_result = task.postprocess(results)Creare un’istanza di MitigationTask.
Metodi
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
Restituisce i livelli raggruppati in blocchi univoci del circuito specificato, utilizzando le opzioni di raggruppamento 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 in riquadri del 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)
Crea un QuantumProgram da eseguire tramite Executor.
Crea un elemento per un QuantumProgram, che può essere eseguito tramite Executor. 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. L'opzione di base crea un elemento senza applicare alcun metodo di mitigazione al circuito. Se è broadcast_obs_and_params True, gli osservabili e i parametri verranno trasmessi utilizzando le regole di trasmissione di Samplomatic, in modo da 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 calcolare i loro 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.
Risultati
Un QuantumProgram che può essere eseguito tramite Executor.
Tipo di restituzione
postprocess
postprocess(results, measure_noise_data=None)
Valori attesi di elaborazione per il risultato relativo a un singolo elemento.
Parametri
- results (QuantumProgramItemResult |QuantumProgramResult) – I risultati dell'esecuzione. Può trattarsi sia dell'intero oggetto dei risultati sia del risultato specifico di questa attività. Se al programma quantistico viene aggiunta l'attività di calibrazione TREX, i relativi risultati verranno 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 misurazione 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 e `evs` come std campi nei propri dati, dove sono `evs` i valori attesi e sono std 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 una chiave
'_meas'. - 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 suTruenella fase di preparazione dell'attività.
Tipo di restituzione
compute_expectation_value
static compute_expectation_value(item_result, observables, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)
Valori attesi di elaborazione per il risultato relativo a un singolo elemento.
Questa funzione può essere utilizzata per calcolare i valori attesi relativi al risultato di una singola voce non mitigata 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.
- 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 esimaiporzione dei dati initem_result. - broadcast_obs_and_params (bool) – Se trasmettere 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 e `evs` come std campi nei propri dati, dove sono `evs` i valori attesi e sono std 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 alcuna chiave'_meas'. - ValueError – Se il numero di assi non
item_result['_meas']è valido. - 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)
Crea un'istanza di MitigationTask a partire da un dizionario "passthrough" caricato dal risultato dell'esecuzione di un programma quantistico.
Parametri
- passthrough (dict[str, Any]) – Dizionario Passthrough_data caricato dai risultati 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 di MitigationTask.
Tipo di restituzione