Skip to main content
IBM Quantum Platform

OBPMétadonnées

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

GitHub

Bases : object

Un conteneur pour les métadonnées générées au cours de la méthode backpropagate() .


Attributs

Paramètres

truncation_error_budget

Type : TruncationErrorBudget

Valeurs spécifiant la stratégie de troncature des observables.

num_slices

Type : int | None

Le nombre total de tranches à essayer de rétropropager.

operator_budget

Type : OperatorBudget

Valeurs spécifiant la taille de l'opérateur.

backpropagation_history

Type : list[SliceMetadata]

Une séquence d'objets de métadonnées pour suivre la progression de la rétropropagation.

num_backpropagated_slices

Type : int

Le nombre de tranches rétropropagées.

Remarque

Cette valeur peut être différente de len(backpropagation_history) dans les cas où un critère d'arrêt tel que operator_budget.max_paulis ou operator_budget.max_qwc_groups a entraîné la fin de la rétropropagation. Ensuite, cette valeur doit être égale à len(backpropagation_history) - 1 car la dernière tranche a provoqué le dépassement des seuils. Toutefois, pour des raisons de commodité, ces valeurs sont toujours enregistrées pour que l'utilisateur final puisse les inspecter.


Méthodes

accumulated_error

accumulated_error(observable_idx, slice_idx=None)

GitHub

Calculer l'erreur cumulée pour une observable donnée à un "moment" donné.

Cette méthode calcule l'erreur cumulée pour un indice observable donné à un "moment" donné au cours de la rétropropagation. Dans ce contexte, le "temps" doit être compris comme les étapes discrètes des tranches déjà rétropropagées.

L'erreur cumulée est calculée comme la somme des erreurs individuelles SliceMetadata.slice_errors. Celles-ci peuvent à leur tour être calculées dans un. spécifié TruncationErrorBudget.p_norm. Ainsi, l'erreur cumulée calculée constitue une borne supérieure de l'erreur cumulée réelle, comme le montre l' inégalité de Minkowski (généralisation de l'inégalité triangulaire aux normes Lp autres que p=2).

Remarque

Puisqu'une norme Lp générale (autre que p=2 ) n'est pas une norme de produit scalaire, elle ne satisfait pas la loi du parallélogramme. Par conséquent, nous devons utiliser l'inégalité de Minkowski comme limite supérieure de l'erreur accumulée.

Paramètres

  • observable_idx (int) – l'indice de l'observable dont l'erreur cumulée doit être calculée.
  • slice_idx (int | None) – l'indice de la tranche (le pas de temps discret) jusqu'à laquelle calculer l'erreur cumulée. S'il s'agit de None, il passera par défaut à self.num_backpropagated_slices , ce qui équivaut à calculer l'erreur cumulée d'une observable au dernier point dans le temps qui n'a pas dépassé les critères d'arrêt de l'algorithme

Retours

L'erreur cumulée calculée selon les explications ci-dessus.

Type de retour

Float

from_json

classmethod from_json(json_file)

GitHub

Charge une métadonnée à partir d'un fichier json.

Paramètres

json_file (str) – le chemin d'accès au fichier à charger.

Retours

Les métadonnées chargées.

Type de retour

OBPMetadata

left_over_error_budget

left_over_error_budget(observable_idx, slice_idx=None)

GitHub

Calculer le budget d'erreur résiduelle pour une observable donnée à un "moment" donné.

Cette méthode calcule le budget d'erreur restant pour un indice observable donné à un "moment" donné au cours de la rétropropagation. Dans ce contexte, le "temps" doit être compris comme les étapes discrètes des tranches déjà rétropropagées.

Le budget d'erreur résiduel est calculé comme étant le solde du budget total moins la somme des budgets individuels SliceMetadata.slice_errors. Celles-ci peuvent à leur tour être calculées dans un. spécifié TruncationErrorBudget.p_norm.

Remarque

Voir également les explications dans accumulated_error() pour plus de détails sur la manière dont les erreurs des différentes tranches sont additionnées pour former une limite supérieure à l'erreur réelle via l'inégalité de Minkowski.

Remarque

Le budget d'erreur restant est relatif à la valeur de self.truncation_error_budget.max_error_total qui peut être numpy.inf , auquel cas la valeur renvoyée par cette méthode sera également numpy.inf.

Paramètres

  • observable_idx (int) – l'indice de l'observable dont le budget des erreurs résiduelles doit être calculé.
  • slice_idx (int | None) – l'indice de la tranche (le pas de temps discret) jusqu'à laquelle calculer le budget d'erreur restant. S'il s'agit de None, il passera par défaut à self.num_backpropagated_slices , ce qui revient à calculer le budget d'erreur restant d'une observable au dernier point dans le temps qui n'a dépassé aucun critère d'arrêt dans l'algorithme

Retours

Le budget des erreurs restantes est calculé selon les explications ci-dessus.

Type de retour

Float

to_json

to_json(json_file, **kwargs)

GitHub

Décharge ces métadonnées dans un fichier json.

Paramètres

  • json_file (str) – le chemin d'accès au fichier dans lequel les métadonnées doivent être transférées.
  • kwargs - arguments de mots-clés à transmettre à json.dump().

Type de retour

Aucun

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.