Skip to main content
IBM Quantum Platform

MitigationTask (qiskit_mitigation.mitigation_task)

MitigationTask

class MitigationTask

GitHub

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)

GitHub

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

elenco [ CircuitInstruction ]

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)

GitHub

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

QuantumProgram

postprocess

postprocess(results, measure_noise_data=None)

GitHub

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 None e 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_shape non observables.shape possono essere trasmessi l'uno contro l'altro, mentre broadcast_obs_and_params era stato impostato su True nella fase di preparazione dell'attività.

Tipo di restituzione

PubResult

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)

GitHub

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 esima i porzione dei dati in item_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_result ha alcuna chiave '_meas' .
  • ValueError – Se il numero di assi non item_result['_meas'] è valido.
  • ValueError – Se e param_shape observables.shape non possono essere trasmessi l'uno contro l'altro.

Tipo di restituzione

PubResult

create_instance_from_passthrough_data

static create_instance_from_passthrough_data(passthrough, trex=None)

GitHub

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 None caso 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

MitigationTask

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.