ZneOptions
class ZneOptions(amplifier=Unset, noise_factors=Unset, extrapolator=Unset, extrapolated_noise_factors=Unset)
Basen: object
Optionen für die Extrapolation von Null-Lärm. Dies wird nur vom V2 Estimator verwendet.
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:
-
pub_result.data.evs_extrapolated und pub_result.data.stds_extrapolated,
beide mit der Form
(*shape, num_extrapolators, num_evaluation_points), wobeinum_extrapolatorsdie Länge der Listeoptions.resilience.zne.extrapolators, undnum_evaluation_pointsdie Länge der Listeoptions.resilience.extrapolated_noise_factorsist. Diese Werte liefern Bewertungen für jeden Extrapolator bei jedem angegebenen Extrapolationswert für das Rauschen. -
pub_result.data.evs_noise_factors,pub_result.data.stds_noise_factorsundensemble_stds_noise_factorshaben alle die Form(*shape, num_noise_factors), wobeinum_noise_factorsdie Länge vonoptions.resilience.zne.noise_factorsist. 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 wirdstds_noise_factorsvon der Streuung über die verwirbelten Proben abgeleitet, währendensemble_stds_noise_factorsnur 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
- 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
LayerNoiseLearningOptionsfü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 anpasstdefiniert als „ “, wobei „ “ der Wert bei Nullrauschen ist ( ) und „ “ 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:.
"linear"was gleichbedeutend ist mit"polynomial_degree_1".
"fallback", das einfach die Rohdaten zurückgibt, die dem geringsten Rauschen entsprechenFaktor (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