Skip to main content
IBM Quantum Platform

OBPMetadata

class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)

GitHub

Basi: object

Un contenitore per i metadati generati durante il metodo backpropagate() .


Attributi

Parametri

truncation_error_budget

Tipo: TruncationErrorBudget

Valori che specificano la strategia di troncamento delle osservabili.

num_slices

Tipo: int | None

Il numero totale di fette da tentare di retropropagare.

operator_budget

Tipo: OperatorBudget

Valori che specificano quanto può crescere l'operatore.

backpropagation_history

Tipo: list[SliceMetadata]

Una sequenza di oggetti metadati per seguire la progressione della retropropagazione.

num_backpropagated_slices

Tipo: int

Il numero di fette retropropagate.

Nota

Questo valore può essere diverso da len(backpropagation_history) nei casi in cui un criterio di arresto, come operator_budget.max_paulis o operator_budget.max_qwc_groups , abbia fatto terminare la retropropagazione. Quindi, questo valore deve essere uguale a len(backpropagation_history) - 1 perché l'ultima fetta ha causato il superamento delle soglie. Tuttavia, per comodità, questi valori vengono comunque registrati affinché l'utente finale possa controllarli.


Metodi

accumulated_error

accumulated_error(observable_idx, slice_idx=None)

GitHub

Calcolo dell'errore accumulato per una determinata osservabile in un determinato "tempo".

Questo metodo calcola l'errore accumulato per un dato indice osservabile in un determinato "momento" durante il corso della retropropagazione. In questo contesto, per "tempo" si intendono i passi discreti di fette già retropropagate.

L'errore cumulativo viene calcolato come somma dei singoli SliceMetadata.slice_errors. Questi, a loro volta, possono essere calcolati all’interno di un TruncationErrorBudget.p_norm. Pertanto, l'errore accumulato calcolato costituisce un limite superiore dell'errore accumulato reale, come indicato dalla disuguaglianza di Minkowski (la generalizzazione della disuguaglianza triangolare per le norme Lp diverse da p=2).

Nota

Poiché una norma Lp generale (diversa da p=2) non è una norma del prodotto interno, non soddisfa la legge del parallelogramma. Pertanto, dobbiamo utilizzare la disuguaglianza di Minkowski come limite superiore dell'errore accumulato.

Parametri

  • observable_idx (int) – l'indice dell'osservabile di cui calcolare l'errore accumulato.
  • slice_idx (int | None) – l'indice della fetta (il passo discreto "temporale") fino al quale calcolare l'errore accumulato. Se si tratta di None, il valore predefinito è self.num_backpropagated_slices , che equivale a calcolare l'errore accumulato di un'osservabile nell'ultimo punto del tempo che non ha superato alcun criterio di arresto nell'algoritmo

Risultati

L'errore accumulato calcolato in base alle spiegazioni precedenti.

Tipo di restituzione

mobile

from_json

classmethod from_json(json_file)

GitHub

Carica i metadati da un file json.

Parametri

json_file (str) – il percorso del file da caricare.

Risultati

I metadati caricati.

Tipo di restituzione

OBPMetadata

left_over_error_budget

left_over_error_budget(observable_idx, slice_idx=None)

GitHub

Calcolo del budget di errore residuo per una data osservabile in un dato "tempo".

Questo metodo calcola il budget di errore residuo per un dato indice osservabile in un determinato "momento" durante il corso della retropropagazione. In questo contesto, per "tempo" si intendono i passi discreti di fette già retropropagate.

Il margine di errore residuo viene calcolato come il resto del margine totale meno la somma dei singoli SliceMetadata.slice_errors. Questi, a loro volta, possono essere calcolati all’interno di un TruncationErrorBudget.p_norm.

Nota

Si vedano anche le spiegazioni in accumulated_error() per maggiori dettagli su come gli errori delle singole fette vengono sommati per formare un limite superiore all'errore reale tramite la disuguaglianza di Minkowski.

Nota

Il budget di errore residuo è relativo al valore di self.truncation_error_budget.max_error_total che può essere numpy.inf , nel qual caso il valore restituito da questo metodo sarà numpy.inf, anch'esso.

Parametri

  • observable_idx (int) – l'indice dell'osservabile di cui calcolare il bilancio degli errori residui.
  • slice_idx (int | None) – l'indice della fetta (il passo discreto "temporale") fino alla quale calcolare il budget di errore residuo. Se si tratta di None, si imposta per default self.num_backpropagated_slices , che equivale a calcolare il budget di errore residuo di un'osservabile nell'ultimo momento che non ha superato alcun criterio di arresto nell'algoritmo

Risultati

Il bilancio degli errori residui viene calcolato in base alle spiegazioni precedenti.

Tipo di restituzione

mobile

to_json

to_json(json_file, **kwargs)

GitHub

Eseguire il dump di questi metadati in un file json.

Parametri

  • json_file (str) – il percorso del file in cui scaricare i metadati.
  • kwargs - argomenti delle parole chiave da passare a json.dump().

Tipo di restituzione

Nessuna

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