Skip to main content
IBM Quantum Platform

Dienstprogramme

qiskit_mitigation.utils

Qiskit-Tools zur Risikominderung.

load_tasks_from_result

load_tasks_from_result(result, return_trex=False)

GitHub

Laden Sie Objekte MitigationTask aus einem Ausführungsergebnis mithilfe der im Ergebnis gespeicherten „passthrough_data“-Daten.

Parameter

  • result (QuantumProgramResult) – Das „resul“-Objekt, aus dem die Aufgaben geladen werden sollen.
  • return_trex (bool) – Falls „True“, wird das TREX-Kalibrierungselement in die zurückgegebene Liste der „ MitigationTask “-Objekte aufgenommen.

Rückgabe

Liste der Objekte MitigationTask , aus denen das Programm mit dem angegebenen Ergebnis erstellt wurde.

Rückgabetyp

Liste [ MitigationTask ]

find_combined_unique_layers

find_combined_unique_layers(circuits, mitigation_types=None, custom_boxing_options=None, box_types='all')

GitHub

Gibt die eindeutigen „Boxed“-Ebenen zurück, die in den angegebenen Schaltkreisen unter Verwendung der angegebenen „Boxing“-Optionen gefunden wurden.

Die zurückgegebene Liste enthält jeweils eine Instanz jeder einzelnen „boxed layer“ (dargestellt als CircuitInstruction) aus den Eingangsschaltungen. Einige Methoden zur Risikominderung sehen entsprechende Boxing-Optionen vor. Durch die Angabe der gewünschten Abhilfemaßnahmen werden diese Optionen bei der Einrahmung der Schaltkreise zur Ermittlung eindeutiger Schichten berücksichtigt. Es wird empfohlen, die gewünschten Mitigationsmethoden bereitzustellen, um sicherzustellen, dass die für das Training verwendeten spezifischen Schichten mit denen übereinstimmen, die bei der Ausführung verwendet werden. Die zurückgegebenen Boxen können gefiltert werden, sodass entweder nur Boxen mit Messwerten, nur Boxen, die ausschließlich Gates enthalten, oder alle Arten von Boxen zurückgegeben werden.

Parameter

  • circuits (list[QuantumCircuit]) – Die Schaltung zur Ermittlung der eindeutigen Schichten.
  • mitigation_types (list[MitigationTask] | None) – Liste der initiierten Milderungsklassen, mit denen die Schaltkreise gemildert werden. Jede Abhilfemaßnahme kann möglicherweise Boxing-Optionen erzwingen, die sich auf die jeweiligen Ebenen auswirken. Falls angegeben, muss die Liste dieselbe Länge wie haben circuits.
  • custom_boxing_options (dict |list[dict] | None) – Die benutzerdefinierten Box-Optionen, die von der Funktion generate_boxing_pass_manager() verwendet werden, um die eindeutigen Ebenen zu ermitteln. Wird ein einzelnes Dict angegeben, wird für alle Aufgaben dieselbe benutzerdefinierte Boxing-Option verwendet. Wenn angegeben None wird, wird die Standardoption für das Boxing verwendet.
  • box_types (Literal['gates', 'measurement', 'all']) – Es kann sich entweder um "gates", oder "measurements" handeln "all", was Filterboxen mit ausschließlich Gate-Schichten, ausschließlich Messschichten bzw. allen Schichten entspricht.

Rückgabe

Eindeutige Boxed-Layer, die unter Verwendung der angegebenen Boxing-Optionen in den angegebenen Schaltkreisen gefunden wurden.

Rückgabetyp

Liste[CircuitInstruction]

executor_expectation_values

executor_expectation_values(bool_array, basis_mapping, /, meas_basis_axis=None, *, avg_axis=None, measurement_flips=None, pauli_signs=None, postselect_mask=None, gamma_factor=None, rescale_factors=None)

GitHub

Berechnet Erwartungswerte aus den Aufnahmedaten und qiskit_ibm_runtime.Executor den Metadaten.

Verwendet Daten in bool_array, die mit Messbasen gemäß den Schlüsseln von erfasst wurden basis_mapping, um die in den Werten von kodierten Observablen zu berechnen basis_mapping.

Ermöglicht optional die Mittelwertbildung über zusätzliche Achsen von bool_array, wie beispielsweise beim Drehen.

Unterstützt optional Mess-Twirling, PEC und Postselektion.

Parameter

  • bool_array (ndarray[tuple[int, ...], dtype[bool]]) – Boolesches Array, das vermutlich Daten von gemessenen Qubits darstellt. Die letzten beiden Achsen stellen die Anzahl der Schüsse bzw. die Anzahl der klassischen Bits dar. Es wird davon ausgegangen, dass sich das niedrigstwertige Bit am Index 0 der Bitachse befindet. meas_basis_axis Ist gegeben, so bool_array indiziert diese Achse von die Messbasen mit der Länge len(basis_mapping).

  • basis_mapping (dict[Pauli, list[SparsePauliOp | None]] |tuple[Sequence[SparsePauliOp], Sequence[str] | PauliList]) –

    Die gemessenen Pauli-Observablen und die dazugehörigen Basen. Es kann ein tuple, (observables, msmt_bases), oder ein dict, sein {basis: commuting_observables}.

    • Tupel : Ein Tupel vom Typ „ length-2 “, das enthält (observables, msmt_bases), wobei eine Folge von SparsePauliOp Instanzen observables ist, für die die einzelnen Erwartungswerte berechnet werden sollen, und eine Folge von Pauli-Observablen msmt_bases ist. Es wird msmt_bases erwartet, dass der. i Pauli in dem. i Ausschnitt von entlang bool_array der entspricht meas_basis_axis.
    • dict : Der te i Schlüssel ist eine Messbasis, von der angenommen wird, dass sie dem ten i Schnitt von entlang bool_array der -Achse meas_basis_axis entspricht. Die Werte sind Listen von Observablen (SparsePauliOp) mit einer Länge, die der Anzahl der Observablen entspricht. None Diese Werte kommen zum Einsatz, wenn eine Observable nicht qubitweise mit der Basis kommutiert. Diese Methode geht davon aus, dass jede Observable nur einmal in den Werten vorkommt, selbst wenn sie mit mehr als einer Basis kommutiert.
  • meas_basis_axis (int | None) – Achse von „bool_array“, die die Messbasen indiziert. Die Reihenfolge muss mit der Reihenfolge in basis_mapping. übereinstimmen. Wenn None, dann len(basis_mapping) muss sein 1, und bool_array es wird angenommen, dass der einzigen Messbasis entspricht.

  • avg_axis (int |tuple[int, ...] | None) – Optionale Achse(n) von bool\_array, über die bei der Berechnung von Erwartungswerten gemittelt werden soll. In der Regel handelt es sich dabei um die „Drehachse“. Muss nichtnegativ sein. (Die Schussachse, die sich vermutlich am Index -2 im Booleschen Array befindet, wird stets gemittelt.)

  • measurement_flips (ndarray[tuple[int, ...], dtype[bool]] | None) – Optionales Boolesche Array, das beim „Measurement Twirling“ verwendet wird. Gibt an, welche Bits bei Messungen erfasst wurden, denen Bit-Flip-Gates vorausgingen. Bei der Datenverarbeitung wird das Ergebnis der XOR-Verknüpfung dieses Arrays mit verwendet bool_array. Muss dieselbe Form haben wie bool_array.

  • pauli_signs (ndarray[tuple[int, ...], dtype[bool]] | None) – Optionales Boolesche Array, das bei der probabilistischen Fehlerkompensation (PEC) verwendet wird. Es wird davon ausgegangen, dass die letzte Achse alle verrauschten Felder im Schaltkreis indexiert. Der Wert von deutet True darauf hin, dass das Gesamtvorzeichen von mit dem verrauschten Block in Verbindung stehen -1 sollte, typischerweise weil bei der angegebenen Schaltungsrandomisierung eine ungerade Anzahl von Inverse-Noise-Fehlern in diesen Block eingefügt wurde. Die letzte Achse wird sofort als Summe modulo 2 zusammengefasst, um das mit jeder Schaltungsrandomisierung verbundene Gesamtvorzeichen zu erhalten. Die verbleibende Form muss pauli_signs.shape[:-1] == bool_array.shape[:-2]. sein. Beachten Sie, dass dieses Array keine „Shots“-Achse hat.

  • postselect_mask (ndarray[tuple[int, ...], dtype[bool]] | None) – Optionales Boolesche Array, das für die Nachauswahl verwendet wird. True (False) kennzeichnet eine Aufnahme, die bei der Nachauswahl akzeptiert (oder abgelehnt) wurde. Die Form muss bool_array.shape[:-1]. sein.

  • gamma_factor (float | None) – Skalierungsfaktor Gamma, der auf die durch PEC gemilderten Erwartungswerte anzuwenden ist. In diesem Fall werden die Skalierungsfaktoren als Differenz zwischen der Anzahl der positiven und der Anzahl der negativen Proben berechnet None, und zwar wie folgt: 1/(np.sum(~pauli_signs, axis=avg_axis) - np.sum(pauli_signs, axis=avg_axis)). Dies kann aufgrund einer Division durch Null fehlschlagen, wenn die Anzahl der positiven und negativen Messwerte gleich ist. Beachten Sie außerdem, dass dadurch jeder Erwartungswert mit einem anderen Faktor skaliert wird. (TODO: Die Angabe eines Arrays mit Gamma-Werten ermöglichen).

  • rescale_factors (dict[str, float] | None) – Skalierungsfaktor für jeden einzelnen Pauli-Term, der in den berechneten Observablen gefunden wurde. Wird in der Regel für Korrekturfaktoren zur Minderung von Auslesungsfehlern („TREX“) verwendet. In Nonediesem Fall wird der Skalierungsfaktor nicht angewendet.

Rückgabe

Eine Liste von (z. B. (val, Varianz) 2-Tupel, jeweils eines für jede gewünschte Messgröße.

Hinweis: Kovarianzen zwischen summierten Termen innerhalb jeder Observablen werden derzeit in der

zurückgemeldete Abweichungen. # Unerledigte Aufgabe

Erhöhungen

  • ValueError – enthält avg_axis negative Werte, sich wiederholende Achsen oder eine der beiden letzten Achsen (Aufnahmen, Bits).
  • ValueError – enthält avg_axis meas_basis_axis.
  • ValueError – ist meas_basis_axis None aber len(basis_mapping) != 1.
  • ValueError – ist meas_basis_axis negativ oder verweist auf eine der beiden letzten Achsen (Aufnahmen, Bits) von bool_array.
  • ValueError – Die Anzahl der Einträge in basis_mapping entspricht nicht der Länge von entlang bool_array meas_basis_axis.
  • ValueError – Eine Observable wird von den Messbasen nicht abgedeckt.

get_measurement_bases

get_measurement_bases(observables)

GitHub

Wählen Sie Basen für die Stichprobenauswahl aus, um die Erwartungswerte für alle gegebenen Observablen zu berechnen.

Hier bezieht sich der Begriff „Basis“ auf die Messung eines Pauli-Operators mit vollem oder hohem Gewicht, aus der sich mehrere qubitweise kommutierende Pauli-Operatoren abschätzen lassen.

Die Basen werden durch Gruppierung kommutierender Pauli-Operatoren über die verschiedenen Observablen hinweg ausgewählt.

Parameter

observables (SparsePauliOp |list[SparsePauliOp]) – Die Observablen, die mit dem Quantencomputer berechnet werden sollen.

Rückgabe

  • Liste der Pauli-Basen, die in einer Liste von „ uint8 “ kodiert sind, wobei 0=I,1=Z,2=X,3=Y gilt.
  • Ein Diktat, das für jede messbare Basis die entsprechenden Paulis und deren Koeffizienten für jede Observable zuordnet. Mit den gemessenen Basen als Schlüssel gibt es für jede Observable eine „ SparsePauliOp “, die diese repräsentiert.

Rückgabetyp

Tupel [ ndarray [ Tupel [ int, …], dtype[uint8]], dict [ Pauli, list [ SparsePauliOp ]]]

map_observable_isa_to_canonical

map_observable_isa_to_canonical(isa_observable, canonical_qubits)

GitHub

Ordne eine relativ zum transpilierten Schaltkreis definierte Beobachtungsgröße der kanonischen Box-Reihenfolge zu.

Bei der transpilierten (oder ISA-)Reihenfolge werden die Qubits anhand der „physikalischen“ Anordnung der Qubits im Gerät indiziert.

Informationen zu den gängigen Konventionen für die Anordnung von Qubits finden Sie in der Samplomatic-Dokumentation.

Parameter

  • isa_observable (Pauli |SparsePauliOp |SparseObservable) – Ein Objekt von Pauli, SparsePauliOp, oder SparseObservable.
  • canonical_qubits (Sequence[int]) – Eine Sequenz, die für jedes kanonische Qubit das physikalische Qubit angibt.

Rückgabe

Ein abgebildeter Operator desselben Typs wie isa_observable

Rückgabetyp

Pauli | SparsePauliOp | SparseObservable

map_observable_virtual_to_canonical

map_observable_virtual_to_canonical(virt_observable, layout, canonical_qubits)

GitHub

Ordne eine Observable mit virtueller Qubit-Reihenfolge der kanonischen Box-Reihenfolge zu.

Informationen zu den gängigen Konventionen für die Anordnung von Qubits finden Sie in der Samplomatic-Dokumentation.

Parameter

  • virt_observable (Pauli |SparsePauliOp |SparseObservable) – Ein Objekt von Pauli, SparsePauliOp, oder SparseObservable.
  • layout (Sequence[int]) – Die Liste der physikalischen Qubits, die für die ISA-Schaltung verwendet werden.
  • canonical_qubits (Sequence[int]) – Eine Sequenz, die für jedes kanonische Qubit das physikalische Qubit angibt.

Rückgabe

Ein abgebildeter Operator desselben Typs wie virt_observable

Rückgabetyp

Pauli | SparsePauliOp | SparseObservable

map_observable_isa_to_virtual

map_observable_isa_to_virtual(isa_observable, layout)

GitHub

Ordne eine Beobachtbare, die relativ zum transpilierten Schaltkreis definiert ist, der virtuellen Reihenfolge zu.

Bei der transpilierten (oder ISA-)Reihenfolge werden die Qubits anhand der „physikalischen“ Anordnung der Qubits im Gerät indiziert.

Parameter

  • isa_observable (Pauli |SparsePauliOp |SparseObservable) – Ein Objekt von Pauli, SparsePauliOp, oder SparseObservable.
  • layout (Sequence[int]) – Die Liste der physikalischen Qubits, die für die ISA-Schaltung verwendet werden.

Rückgabe

Ein abgebildeter Operator desselben Typs wie isa_observable

Rückgabetyp

Pauli | SparsePauliOp | SparseObservable

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