Skip to main content
IBM Quantum Platform

MitigationTask (qiskit_mitigation.mitigation_task)

MitigationTask

class MitigationTask

GitHub

Basen: object

Berechnet Erwartungswerte von Beobachtungsgrößen mithilfe des Executors.

Diese Klasse ist die Basisklasse für alle Maßnahmen zur Risikominderung. Damit lässt sich ein „ QuantumProgram “ erstellen, der mithilfe des Executors auf der Hardware ausgeführt werden kann, und die Ergebnisse anschließend weiterverarbeiten, um die Erwartungswerte bestimmter Observablen zu berechnen.

Die Aufgabenparameter sollten als Eingabe an die Funktion „prepare“ übergeben werden, und die für die Nachbearbeitung benötigten Variablen werden intern gespeichert:

task = MitigationTask()
program = task.prepare(circuit=circuit,
                       observables=observables,
                       parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)

Um die Erwartungswerte eines geladenen Auftragsergebnisses zu berechnen, kann aus den Auftragsergebnissen eine Aufgabe erstellt werden, die alle für die Nachbearbeitung erforderlichen internen Variablen enthält. Alternativ können die für die Nachbearbeitung benötigten Variablen direkt als Eingabe an die statische compute_expectation_value Methode übergeben werden. Beispiel für die Durchführung einer Nachbearbeitung eines geladenen Ergebnisses:

task = MitigationTask()
program = task.prepare(circuit=circuit,
                       observables=observables,
                       parameters=parameter_values)
job_id = executor.run(program).job_id

job = service.job(job_id)
results = job.result()
task = load_tasks_from_result(results)[0]
mitigated_result = task.postprocess(results)

Erstellen Sie eine Instanz von „ MitigationTask “.

Methoden

find_unique_layers

find_unique_layers(circuit, custom_boxing_options=None)

GitHub

Gibt die eindeutigen, in Boxen verpackten Ebenen der angegebenen Schaltung unter Verwendung der angegebenen Verpackungsoptionen zurück.

Parameter

  • circuit (QuantumCircuit) – Die Schaltung, die ihre einzigartigen Schichten bildet.
  • custom_boxing_options (dict | None) – Die benutzerdefinierten Box-Optionen, die von der Funktion generate_boxing_pass_manager() verwendet werden.

Rückgabe

Eindeutige, in Kästchen unterteilte Schichten der gegebenen Schaltung.

Rückgabetyp

Liste [ CircuitInstruction ]

prepare

prepare(circuit, observables, parameters, custom_boxing_options=None, shots_per_randomization=64, num_randomizations=128, broadcast_obs_and_params=False, trex=None, quantum_program=None)

GitHub

Erstellt ein QuantumProgram zur Ausführung über Executor.

Erstellt ein Element für ein QuantumProgram, das über den Executor ausgeführt werden kann. quantum_program Wird ein angegeben, wird das neue Element zum bestehenden Programm hinzugefügt; andernfalls wird ein neues Programm erstellt, das ausschließlich das erstellte Element enthält. Mit den Grundeinstellungen wird ein Element erstellt, bei dem keine Maßnahmen zur Risikominderung auf den Schaltkreis angewendet werden. Wenn wahr broadcast_obs_and_params ist, werden die Observablen und Parameter gemäß den Samplomatic-Broadcasting-Regeln übertragen, sodass einige der Parameter bestimmten Observablen zugeordnet werden können. Andernfalls wird jeder Parameter für jede Observable ausgewertet (Äußeres Produkt aus Parametern und Observables). Beachten Sie, dass die Nachbearbeitung eines Außenprodukts in der Regel schneller ist.

Parameter

  • circuit (QuantumCircuit) – Der Quantenschaltkreis.
  • observables (ObservablesArray |Sequence[SparsePauliOp]) – Die Observablen zur Berechnung ihrer Erwartungswerte.
  • parameters (ndarray |BindingsArray | None) – Die Parameter einer parametrischen Schaltung.
  • custom_boxing_options (dict | None) – Die benutzerdefinierten Box-Optionen, die von der Funktion generate_boxing_pass_manager() verwendet werden.
  • shots_per_randomization (int) – Die Anzahl der Schüsse pro Randomisierung.
  • num_randomizations (int) – Die Anzahl der Randomisierungen.
  • broadcast_obs_and_params (bool) – Ob Observables und Parameter übertragen werden sollen.
  • trex (TREX | None) – Eine TREX-Korrekturinstanz, die zur Korrektur von Auslesefehlern verwendet wird.
  • quantum_program (QuantumProgram | None) – Das Quantum-Programm zum Hinzufügen eines Artikels. Wenn „None“, wird ein neues Programm erstellt.

Rückgabe

Ein A, das QuantumProgram über den Executor ausgeführt werden kann.

Rückgabetyp

QuantumProgram

postprocess

postprocess(results, measure_noise_data=None)

GitHub

Erwartungswerte für das Ergebnis eines einzelnen Elements.

Parameter

  • results (QuantumProgramItemResult |QuantumProgramResult) – Die Ergebnisse der Ausführung. Dies kann entweder das gesamte Ergebnisobjekt oder das Teilergebnis dieser Aufgabe sein. Wird die TREX-Kalibrierungsaufgabe zum Quantenprogramm hinzugefügt, werden ihre Ergebnisse zur Berechnung der Messrauschdaten herangezogen, sofern das gesamte Ergebnisobjekt bereitgestellt wird.
  • measure_noise_data (PauliLindbladMap |ndarray | None) – Die ermittelten Messrauschdaten, die zur TREX-Minderung verwendet werden sollen. Wenn „None“ angegeben ist und das Quantenprogramm eine Kalibrierungsaufgabe enthält, wird das Messrauschen anhand der Ergebnisse der Kalibrierungsaufgabe berechnet, sofern das gesamte Ergebnisobjekt bereitgestellt wird.

Rückgabe

Ein „ PubResult “, der und evs als std Felder in seinen Daten enthält, wobei Erwartungswerte evs sind und die Standardabweichung der Erwartungswerte std ist. Wenn auf „True“ gesetzt broadcast_obs_and_params ist, enthalten die Daten zusätzlich ein Feld twirl_stds , das die Standardabweichung zwischen den verschiedenen Randomisierungen angibt.

Erhöhungen

  • ValueError – Wenn das Ergebnis des Aufgabeneintrags keinen '_meas' Schlüssel hat.
  • ValueError – Wenn die Daten '_meas' des Elementergebnisses eine ungültige Anzahl von Achsen aufweisen.
  • ValueError – Wenn param_shape und nicht observables.shape gegeneinander gesendet werden können, obwohl bei True der Aufgabenvorbereitung auf gesetzt broadcast_obs_and_params wurde.

Rückgabetyp

PubResult

compute_expectation_value

static compute_expectation_value(item_result, observables, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)

GitHub

Erwartungswerte für das Ergebnis eines einzelnen Elements.

Mit dieser Funktion lassen sich Erwartungswerte für das Ergebnis eines einzelnen, nicht gemilderten Elements berechnen, ohne dass eine neue Klasseninstanz instanziiert werden muss.

Parameter

  • item_result (QuantumProgramItemResult) – Das Ergebnis des Artikels.
  • observables (ObservablesArray |Sequence[SparsePauliOp]) – Die Observablen, für die Erwartungswerte berechnet werden sollen.
  • param_shape (tuple[int, ...] | None) – Die Form der Parameterwerte.
  • param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – Die Zuordnung zwischen den Parametern und den Indizes zur Messung der Basis.
  • meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – Eine Liste der gemessenen Pauli-Basen. Der -te i Eintrag ist eine Messbasis, von der angenommen wird, dass sie der -ten i Schicht der Daten in entspricht item_result.
  • broadcast_obs_and_params (bool) – Ob Observables und Parameterwerte übertragen werden sollen.
  • measure_noise_data (PauliLindbladMap |ndarray | None) – Kalibrierungsdaten zum Messrauschen für die TREX-Minderung.

Rückgabe

Ein „ PubResult “, der und evs als std Felder in seinen Daten enthält, wobei Erwartungswerte evs sind und die Standardabweichung der Erwartungswerte std ist. Wenn auf „True“ gesetzt broadcast_obs_and_params ist, enthalten die Daten zusätzlich ein Feld twirl_stds , das die Standardabweichung zwischen den verschiedenen Randomisierungen angibt.

Erhöhungen

  • ValueError – Wenn keinen '_meas' Schlüssel item_result hat.
  • ValueError – Wenn eine ungültige Anzahl von Achsen item_result['_meas'] aufweist.
  • ValueError – Wenn und param_shape nicht observables.shape gegeneinander übertragen werden können.

Rückgabetyp

PubResult

create_instance_from_passthrough_data

static create_instance_from_passthrough_data(passthrough, trex=None)

GitHub

Erstellen Sie eine „ MitigationTask “-Instanz aus einem Passthrough-Wörterbuch, das aus dem Ergebnis der Ausführung eines Quantenprogramms geladen wurde.

Parameter

  • passthrough (dict[str, Any]) – „Passthrough_data“-Dictionary, geladen aus dem Ergebnis einer Quantenprogrammausführung.
  • trex (TREX | None) – Eine TREX-Instanz, die eine Kalibrierungsschaltung enthält, wird im selben Quantenprogramm ausgeführt. Sollte beibehalten werden, None falls keine TREX-Abmilderung verwendet wurde oder im Rahmen desselben Quantenprogramms keine TREX-Kalibrierung durchgeführt wurde.

Rückgabe

Eine Instanz von „ MitigationTask “.

Rückgabetyp

MitigationTask

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