Skip to main content
IBM Quantum Platform

ZneOptions

class ZneOptions(amplifier=Unset, noise_factors=Unset, extrapolator=Unset, extrapolated_noise_factors=Unset)

GitHub

Basen: object

Optionen für die Extrapolation von Null-Lärm. Dies wird nur vom V2 Estimator verwendet.

Anmerkung

Jeder V2 -Schätzer liefert garantiert Datenfelder mit den Bezeichnungen evs und stds , die die gewünschten Erwartungswertschätzungen bzw. -fehler angeben. Wenn die ZNE-Optionen im Laufzeitschätzer aktiviert sind, werden zusätzliche Daten zurückgegeben.

Nehmen wir an, eine Eingabe-Pub hat die beobachtbare Array-Form obs_shape und die Parameterwerte die Form par_shape, mit der entsprechenden Pub-Form shape=np.broadcast_shapes(obs_shape, par_shape). Dann wird das entsprechende Pub-Ergebnis zusätzlich enthalten:

  1. pub_result.data.evs_extrapolated und pub_result.data.stds_extrapolated,

    beide mit der Form (*shape, num_extrapolators, num_evaluation_points), wobei num_extrapolators die Länge der Liste options.resilience.zne.extrapolators, und num_evaluation_points die Länge der Liste options.resilience.extrapolated_noise_factors ist. Diese Werte liefern Bewertungen für jeden Extrapolator bei jedem angegebenen Extrapolationswert für das Rauschen.

  2. pub_result.data.evs_noise_factors, pub_result.data.stds_noise_factors und ensemble_stds_noise_factors haben alle die Form (*shape, num_noise_factors) , wobei num_noise_factors die Länge von options.resilience.zne.noise_factors ist. Diese Werte liefern rohe Erwartungswerte, gemittelt über das Twirling, falls zutreffend, bei jeder der Rauschverstärkungen; Sie können Ihre eigenen Anpassungsroutinen auf diesen Werten aufbauen. Wenn es keine Verwirbelung gibt, sind beide *stds* Arrays gleich, andernfalls wird stds_noise_factors von der Streuung über die verwirbelten Proben abgeleitet, während ensemble_stds_noise_factors nur Schrotrauschen und keine Drift annimmt.

Technische Anmerkung: Bei einzelnen Observablen mit mehreren Basistermen kann es vorkommen, dass mehrere Extrapolationsmethoden für denselben Erwartungswert verwendet werden, z. B. wird XX linear extrapoliert, während XY in der Observablen {"XX": 0.5, "XY": 0.5} exponentiell extrapoliert wird. Nennen wir dies eine heterogene Anpassung. Die Daten aus (2) werden aus heterogenen Anpassungen ausgewertet, indem die beste Anpassung für jeden einzelnen eindeutigen Term ausgewählt wird, während die Daten aus (1) aus erzwungenen homogenen Anpassungen ausgewertet werden, eine für jeden bereitgestellten Extrapolator. Wenn Ihre Arbeit in dieser Hinsicht eine differenzierte Unterscheidung erfordert, empfehlen wir Ihnen derzeit, zusätzlich zu Ihren Mehrzeitbeobachtungen auch Einzeitbeobachtungen zu verwenden.

Referenzen

  1. Z. Cai, Multi-exponential error extrapolation and combining error mitigation techniques for NISQ applications, npj Quantum Inf 7, 80 (2021)

Attribute

Parameter

  • amplifier (UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea'])
  • noise_factors (UnsetType | Sequence[float])
  • extrapolator (UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback'] | ~collections.abc.Sequence[~typing.Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']])
  • extrapolated_noise_factors (UnsetType | Sequence[float])

amplifier

Typ: UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea']

Standardwert: Unset

Welche Technik zur Verstärkung des Lärms eingesetzt werden soll.

Einer der folgenden:

  • "gate_folding" (Voreinstellung) verwendet 2-Qubit-Gate-Faltung zur Verstärkung des Rauschens. Wenn der Lärm

    faktor die Verstärkung nur einer Teilmenge der Gates erfordert, werden diese Gates nach dem Zufallsprinzip ausgewählt.

  • "gate_folding_front" verwendet die 2-Qubit-Gate-Faltung zur Verstärkung des Rauschens. Wenn der Lärm

    faktor die Verstärkung nur einer Teilmenge der Gatter erfordert, werden diese Gatter aus dem vorderen Teil der topologisch geordneten DAG-Schaltung ausgewählt.

  • "gate_folding_back" verwendet die 2-Qubit-Gate-Faltung, um das Rauschen zu verstärken. Wenn der Lärm

    faktor die Verstärkung nur einer Teilmenge der Gatter erfordert, so werden diese Gatter aus der Rückseite der topologisch geordneten DAG-Schaltung ausgewählt.

  • "pea" verwendet eine Technik namens Probabilistische Fehlerverstärkung

    (PEA ) zur Verstärkung von Lärm. Wenn diese Option ausgewählt ist, wird das Gate Twirling immer verwendet, unabhängig davon, ob es in den Optionen aktiviert wurde oder nicht. Bei dieser Technik wird das Modell des gewirbelten Rauschens jeder einzelnen Schicht von Verschränkungsgattern in Ihren ISA-Schaltkreisen im Voraus gelernt, siehe LayerNoiseLearningOptions für die entsprechenden Lernoptionen. Nach der Fertigstellung werden Ihre Schaltungen bei jedem Rauschfaktor ausgeführt, wobei jede Verschränkungsschicht Ihrer Schaltungen durch probabilistisches Einspeisen von Ein-Qubit-Rauschen proportional zum entsprechenden gelernten Rauschmodell verstärkt wird.

extrapolated_noise_factors

Typ: UnsetType | Sequence[float]

Standardwert: Unset

Rauschfaktoren zur Bewertung der Anpassung von Extrapolationsmodellen an.

[0, *noise_factors]Wenn diese Option nicht festgelegt ist, wird standardmäßig der Wert „.“ verwendet. stds_extrapolatedDiese Option hat keinerlei Auswirkungen auf die Ausführung oder die Modellanpassung; sie legt lediglich fest, an welchen Punkten die extrapolator s-Werte berechnet und evs_extrapolated in den Datenfeldern und zurückgegeben werden.

extrapolator

Typ: UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback' |] Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']]

Standardwert: Unset

Extrapolator(en), der/die (in der Reihenfolge) für die Extrapolation auf Nullrauschen auszuprobieren ist/sind.

Verfügbare Optionen:

  • "exponential", die die Daten mithilfe einer exponentiell abklingenden Funktion anpasst

    definiert als „ f(x;A,τ)=Ae−x/τf(x; A, \tau) = A e^{-x/\tau} “, wobei „ A=f(0;A,τ)A = f(0; A, \tau) “ der Wert bei Nullrauschen ist ( x=0x=0 ) und „ τ>0\tau>0 “ eine positive Rate ist.

  • "double_exponential"die eine Summe von zwei Exponentialen verwendet, wie in Ref. 1.

  • "polynomial_degree_(1 <= k <= 7)", die eine Polynomfunktion verwendet, die wie folgt definiert ist:

    f(x;c0,c1,…,ck)=∑i=0,kcixif(x; c_0, c_1, \ldots, c_k) = \sum_{i=0, k} c_i x^i.

  • "linear"was gleichbedeutend ist mit "polynomial_degree_1".

  • "fallback", das einfach die Rohdaten zurückgibt, die dem geringsten Rauschen entsprechen

    Faktor (in der Regel 1) ohne jegliche Extrapolation.

Die extrapolierten Werte (evs_extrapolated und stds_extrapolated) werden entsprechend der Reihenfolge der bereitgestellten Extrapolatoren sortiert. Wenn mehr als ein Extrapolator angegeben ist, beziehen sich die in den Ergebnisdaten angegebenen Werte evs``stds und auf den ersten erfolgreichen Extrapolator, wobei der Erfolg eines Extrapolators heuristisch bestimmt wird.

Standardwert: ("exponential", "linear").

noise_factors

Typ: UnsetType | Sequence[float]

Standardwert: Unset

Rauschfaktoren, die für die Rauschverstärkung zu verwenden sind.

Standardwert: (1, 3, 5).

Typ

lärmschutz-Faktoren


Methoden

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