Skip to main content
IBM Quantum Platform

OBPMetadaten

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

GitHub

Basen: object

Ein Container für Metadaten, die während der Methode backpropagate() erzeugt werden.


Attribute

Parameter

truncation_error_budget

Typ: TruncationErrorBudget

Werte, die die beobachtbare Trunkierungsstrategie angeben.

num_slices

Typ: int | None

Die Gesamtzahl der Slices, für die ein Backpropagate versucht wird.

operator_budget

Typ: OperatorBudget

Werte, die angeben, wie groß der Operator werden darf.

backpropagation_history

Typ: list[SliceMetadata]

Eine Folge von Metadatenobjekten zur Verfolgung des Verlaufs der Backpropagation.

num_backpropagated_slices

Typ: int

Die Anzahl der Backpropagated Slices.

Anmerkung

Dieser Wert kann von len(backpropagation_history) abweichen, wenn ein Abbruchkriterium wie operator_budget.max_paulis oder operator_budget.max_qwc_groups zum Abbruch der Backpropagation geführt hat. Dann sollte dieser Wert gleich len(backpropagation_history) - 1 sein, weil der letzte Slice die Schwellenwerte überschritten hat. Der Einfachheit halber werden diese Werte jedoch weiterhin aufgezeichnet, damit der Endbenutzer sie überprüfen kann.


Methoden

accumulated_error

accumulated_error(observable_idx, slice_idx=None)

GitHub

Berechnung des akkumulierten Fehlers für eine bestimmte Beobachtungsgröße zu einem bestimmten "Zeitpunkt".

Diese Methode berechnet den akkumulierten Fehler für einen bestimmten beobachtbaren Index zu einem bestimmten "Zeitpunkt" im Verlauf der Backpropagation. Unter "Zeit" sind in diesem Zusammenhang die diskreten Schritte der bereits backpropagierten Slices zu verstehen.

Der kumulierte Fehler wird als Summe der einzelnen SliceMetadata.slice_errors. berechnet. Diese können wiederum innerhalb eines festgelegten Bereichs berechnet werden TruncationErrorBudget.p_norm. Somit stellt der berechnete kumulierte Fehler eine Obergrenze für den tatsächlichen kumulierten Fehler dar, wie sie durch die Minkowski-Ungleichung gegeben ist (die Verallgemeinerung der Dreiecksungleichung für andere Lp-Normen als p=2).

Anmerkung

Da eine allgemeine Lp-Norm (mit Ausnahme von p=2) keine innere Produktnorm ist, erfüllt sie nicht das Parallelogrammgesetz. Daher müssen wir die Minkowski-Ungleichung als Obergrenze für den kumulierten Fehler verwenden.

Parameter

  • observable_idx (int) – der Index der Beobachtungsgröße, deren kumulierter Fehler berechnet werden soll.
  • slice_idx (int | None) – der Index der Scheibe (der diskrete "Zeitschritt"), bis zu der der kumulierte Fehler berechnet werden soll. Wenn dies None ist, wird standardmäßig self.num_backpropagated_slices verwendet, was der Berechnung des akkumulierten Fehlers einer Beobachtungsgröße zum letzten Zeitpunkt entspricht, der noch kein Stoppkriterium im Algorithmus überschritten hat

Rückgabe

Der kumulierte Fehler, der gemäß den obigen Erläuterungen berechnet wurde.

Rückgabetyp

Gleitkomma

from_json

classmethod from_json(json_file)

GitHub

Laden von Metadaten aus einer json-Datei.

Parameter

json_file (str) – den Pfad zu der zu ladenden Datei.

Rückgabe

Die geladenen Metadaten.

Rückgabetyp

OBPMetadaten

left_over_error_budget

left_over_error_budget(observable_idx, slice_idx=None)

GitHub

Berechnung des verbleibenden Fehlerbudgets für eine bestimmte Beobachtungsgröße zu einem bestimmten "Zeitpunkt".

Diese Methode berechnet das verbleibende Fehlerbudget für einen bestimmten beobachtbaren Index zu einem bestimmten "Zeitpunkt" im Verlauf der Backpropagation. Unter "Zeit" sind in diesem Zusammenhang die diskreten Schritte der bereits backpropagierten Slices zu verstehen.

Das verbleibende Fehlerbudget wird als Rest des Gesamtbudgets abzüglich der Summe der einzelnen SliceMetadata.slice_errors. berechnet. Diese können wiederum innerhalb eines festgelegten Bereichs berechnet werden TruncationErrorBudget.p_norm.

Anmerkung

Siehe auch die Erläuterungen in accumulated_error() für weitere Einzelheiten darüber, wie die einzelnen Fehler der Scheiben summiert werden, um über die Minkowski-Ungleichung eine Obergrenze für den tatsächlichen Fehler zu bilden.

Anmerkung

Das verbleibende Fehlerbudget bezieht sich auf den Wert von self.truncation_error_budget.max_error_total , der numpy.inf sein kann. In diesem Fall ist der von dieser Methode zurückgegebene Wert ebenfalls numpy.inf.

Parameter

  • observable_idx (int) – der Index der Beobachtungsgröße, deren Restfehlerbudget berechnet werden soll.
  • slice_idx (int | None) – der Index der Scheibe (der diskrete "Zeit"-Schritt), bis zu der das verbleibende Fehlerbudget berechnet werden soll. Wenn dies None ist, wird standardmäßig self.num_backpropagated_slices verwendet, was der Berechnung des verbleibenden Fehlerbudgets einer Beobachtungsgröße zum letzten Zeitpunkt entspricht, der noch kein Stoppkriterium im Algorithmus überschritten hat

Rückgabe

Das verbleibende Fehlerbudget wird gemäß den obigen Erläuterungen berechnet.

Rückgabetyp

Gleitkomma

to_json

to_json(json_file, **kwargs)

GitHub

Speichern Sie diese Metadaten in einer json-Datei.

Parameter

  • json_file (str) – den Pfad zu der Datei, in der die Metadaten gespeichert werden sollen.
  • kwargs - Schlüsselwortargumente, die an json.dump() weitergegeben werden.

Rückgabetyp

Keine

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.