Skip to main content
IBM Quantum Platform

qiskit_ibm_runtime.options_models.ZneOptions

pydantic model ZneOptions

GitHub

Basen: BaseOptionsModel

Optionen zur Reduzierung von Rauschfehlern bei der Extrapolation. Dies wird ausschließlich vom „ V2 “-Kalkulator verwendet.

Anmerkung

Jeder Schätzer vom Typ „ V2 “ gibt garantiert Datenfelder namens und evs zurück, stds die jeweils die gewünschten Schätzungen des Erwartungswerts und die Fehler angeben. Wenn die ZNE-Optionen im Laufzeit-Schätzer aktiviert sind, werden zusätzliche Daten zurückgegeben.

Nehmen wir insbesondere an, eine Eingabe-pub habe die beobachtbare Array-Form und obs_shape die Parameterwerte die Form par_shape, wobei die entsprechende pub-Form ist shape=np.broadcast_shapes(obs_shape, par_shape). Dann enthält das entsprechende Pub-Ergebnis zusätzlich:

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

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

  2. pub_result.data.evs_noise_factors, pub_result.data.stds_noise_factors, und haben ensemble_stds_noise_factors alle die Form, wobei (*shape, num_noise_factors) die Länge von ist num_noise_factors``options.resilience.zne.noise_factors . Diese Werte liefern Roherwartungswerte, die gegebenenfalls über das Twirling gemittelt wurden, für jede der Rauschverstärkungen; Sie können Ihre eigenen Anpassungsroutinen auf diesen Werten aufbauen. Wenn kein Twirling stattfindet, sind beide *stds* Arrays gleich; andernfalls stds_noise_factors wird aus der Streuung der Twirling-Proben abgeleitet, während nur von Schussrauschen und keiner Drift ensemble_stds_noise_factors ausgeht.

Technischer Hinweis: Bei einzelnen Observablen mit mehreren Basistermen kann es vorkommen, dass im selben Erwartungswert mehrere Extrapolationsmethoden zum Einsatz kommen; so XX wird beispielsweise linear extrapoliert, während in der Observablen exponentiell extrapoliert XY wird {"XX": 0.5, "XY": 0.5}. Nennen wir das einmal eine heterogene Anpassung. Die Daten aus (2) werden anhand heterogener Anpassungen ausgewertet, wobei für jeden einzelnen Term die beste Anpassung ausgewählt wird, während die Daten aus (1) anhand erzwungener homogener Anpassungen ausgewertet werden, jeweils eine für jeden bereitgestellten Extrapolator. Falls Ihre Arbeit in dieser Hinsicht eine differenzierte Unterscheidung erfordert, empfehlen wir Ihnen derzeit, zusätzlich zu Ihren mehrgliedrigen Observablen auch eingliedrige Observablen zu verwenden.

Referenzen

  1. Z. Cai, „Multi-exponentielle Fehlerextrapolation und Kombination von Fehlerminderungstechniken für NISQ-Anwendungen“, npj Quantum Inf 7, 80 (2021)

Config

  • validate_assignment : bool = True
  • extra : str = verbieten

amplifier

field

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

Standardwert: 'gate_folding'

Welche Technik soll zur Verstärkung des Rauschens verwendet werden?

Einer der folgenden:

  • „gate_folding“ (Standard) nutzt 2-Qubit-Gate-Folding, um das Rauschen zu verstärken. Wenn das Geräusch

    Wenn der Faktor erfordert, dass nur eine Teilmenge der Gatter verstärkt wird, werden diese Gatter zufällig ausgewählt.

  • „gate_folding_front“ nutzt 2-Qubit-Gate-Folding, um das Rauschen zu verstärken. Wenn das Geräusch

    Wenn der Faktor erfordert, dass nur eine Teilmenge der Gatter verstärkt wird, werden diese Gatter aus dem vorderen Teil der topologisch geordneten DAG-Schaltung ausgewählt.

  • „gate_folding_back“ nutzt 2-Qubit-Gate-Folding, um das Rauschen zu verstärken. Wenn das Geräusch

    Wenn der Faktor erfordert, dass nur eine Teilmenge der Gatter verstärkt wird, werden diese Gatter aus dem hinteren Teil der topologisch geordneten DAG-Schaltung ausgewählt.

  • „pea“ nutzt eine Technik namens „Probabilistic Error Amplification“

    ( PEA ) zur Verstärkung von Rauschen. 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 Twirled-Noise-Modell jeder einzelnen Schicht aus Verschränkungsgattern in Ihren ISA-Schaltungen im Voraus trainiert; siehe LayerNoiseLearningOptions für entsprechende Trainingsoptionen. Nach der Fertigstellung werden Ihre Schaltkreise bei jedem Rauschfaktor ausgeführt, wobei jede Verschränkungsschicht Ihrer Schaltkreise durch die probabilistische Einbringung von Einzel-Qubit-Rauschen verstärkt wird, das proportional zum entsprechenden gelernten Rauschmodell ist.

extrapolated_noise_factors

field

Typ: Sequence[Annotated[float, Field(ge``=``0)]] | Literal['auto']

Standardwert: 'auto'

Rauschfaktoren zur Bewertung der Passgenauigkeit von Extrapolationsmodellen bei.

Wenn „auto“ eingestellt ist, werden die Erwartungswerte an der Stelle berechnet [0, *noise_factors]. Diese Option hat keinerlei Auswirkungen auf die Ausführung oder die Modellanpassung; sie legt lediglich fest, an welchen Punkten die extrapolators-Werte berechnet werden, die in den Datenfeldern und evs_extrapolated zurückgegeben werden sollen stds_extrapolated.

extrapolator

field

Typ: ExtrapolatorType | Sequence[ExtrapolatorType]

Standardwert: ('exponential', 'linear')

Zu testende Extrapolatoren (in der angegebenen Reihenfolge) zur Extrapolation auf rauschfreies Signal.

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", bei dem wie in Ref. eine Summe aus zwei Exponentialfunktionen verwendet wird. 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 angegebenen Extrapolationsverfahren sortiert. Wenn mehr als ein Extrapolator angegeben wird, beziehen sich die in den Ergebnisdaten angegebenen stds Werte und evs auf den ersten erfolgreichen Extrapolator, wobei der Erfolg eines Extrapolators heuristisch bestimmt wird.

noise_factors

field

Typ: Annotated[Sequence[Annotated[float, Field(ge``=``1)]], AfterValidator(at_least_two_noise_factors)] | Literal['auto']

Standardwert: 'auto'

Für die Geräuschverstärkung zu verwendende Geräuschfaktoren.

Der Standardwert ist DEFAULT_NOISE_FACTORS. Muss in allen angeforderten Extrapolatoren mehr Werte enthalten als die Anzahl der Freiheitsgrade (DOF).

update

update(**kwargs)

GitHub

Aktualisieren Sie die Optionen.

Parameter

kwargs (Any)

Rückgabetyp

Keine

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