Skip to main content
IBM Quantum Platform

Schätzer

class Estimator(mode=None, options=None)

GitHub

Basen: BaseEstimatorV2

Clientseitige „Estimator“-Primitive für „ IBM Quantum Compute “ (früher „ Qiskit Runtime “).

Hierbei handelt es sich um eine Implementierung von „Estimator“, die auf der „Executor“-Primitive aufbaut und eine transparente clientseitige Verarbeitung mit schnelleren Rückkopplungsschleifen und mehr Kontrolle für den Benutzer ermöglicht.

Beispiel

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Create a simple circuit
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)

# Define observable
observable = SparsePauliOp.from_list([("ZZ", 1), ("XX", 1)])

# Run the estimator with options
estimator = Estimator(mode=backend)
estimator.options.default_precision = 0.01
estimator.options.execution.init_qubits = True
job = estimator.run([(circuit, observable)])
result = job.result()

Parameter


Attribute

mode

Gibt den von dieser Primitive verwendeten Ausführungsmodus zurück.

Rückgabe

Der von dieser Primitive verwendete Modus oder None falls kein Ausführungsmodus verwendet wird.

options

Typ: EstimatorOptions

Die Optionen dieses Kalkulators.


Methoden

backend

backend()

GitHub

Gibt das Backend zurück, auf dem die primitive Abfrage ausgeführt wird.

Rückgabetyp

BackendV2

finalize_options

finalize_options()

GitHub

Erstellen und finalisieren Sie die Optionen des Kostenvoranschlags.

Diese Methode kombiniert die konfigurierte Ausfallsicherheit mit der vom Benutzer angegebenen Option, um die endgültige Instanz EstimatorOptions zu erzeugen, die innerhalb eines Aufrufs von verwendet wird run().

Das Verfahren zur Ermittlung der endgültigen Optionen sieht wie folgt aus:

  1. Initialisiere ein neues Objekt EstimatorOptions mit den durch … festgelegten Standardwerten resilience_level.

  2. Wenden Sie die benutzerdefinierten Optionen an und überspringen Sie dabei die Felder, die None leer gelassen wurden, da sie die Standardwerte für die Ausfallsicherheit übernehmen sollen.

  3. Erzwinge die erforderlichen Abhängigkeiten zwischen Optionen. Beachten Sie insbesondere Folgendes:

    • Durch die Aktivierung der Messungsminderung wird automatisch auch das „Measurement Twirling“ aktiviert.
    • Durch die Aktivierung von Gate-basierten Mitigationsverfahren (wie z. B. PEA-basiertes ZNE oder PEC) werden sowohl Gate- als auch Mess-Twirling automatisch aktiviert.

Rückgabe

Das fertige Objekt EstimatorOptions .

Rückgabetyp

EstimatorOptions

find_unique_layers

find_unique_layers(pubs, types='gates')

GitHub

Gibt die eindeutigen „Boxed“-Ebenen zurück, die in den angegebenen PUBs vorkommen.

Die Anzahl der types Schichten kann entweder oder "gates" betragen "all", was jeweils nur den Gate-Schichten bzw. allen Schichten entspricht. Die zurückgegebene Liste enthält dann jeweils eine Instanz jeder einzelnen „boxed layer“ (dargestellt als CircuitInstruction), die in den Eingabe-PUBs vorkommt.

Behalten Sie beispielsweise beim Noise-Learning nur die Qubit-Gate-Schichten bei:

est = Estimator(mode, options)
est.options.resilience.pec_mitigation = True

layers = est.find_unique_layers(pubs, types="gates")

results = NoiseLearnerV3(mode).run(layers).result()
pauli_linblad_maps = results.to_pauli_lindblad_maps()

# Assign the learned model so PEC uses it on the next run.
est.options.resilience.layer_noise_model = zip(layers, pauli_linblad_maps)

Parameter

  • pubs (Iterable[EstimatorPubLike]) – Die Liste der PUBs, für die eine Liste eindeutiger Boxen zurückgegeben werden soll.
  • types (Literal['gates', 'all']) – Die Arten von Ebenen, die zurückgegeben werden sollen. Es kann entweder oder "gates" sein "all".

Rückgabe

Die einzigartigen, kastenförmigen Schichten eines bestimmten Typs, die in den angegebenen PUBs zu finden sind.

Rückgabetyp

Liste[CircuitInstruction]

run

run(pubs, *, precision=None, dry_run=False)

GitHub

Senden Sie eine Anfrage an die „estimator“-Primitive.

Bei mittleren und komplexen Workloads kann die clientseitige Verarbeitung, die erforderlich ist, um die Eingaben des Schätzers den Eingaben des Executors zuzuordnen, ressourcenintensiv sein und zu einer Verzögerung zwischen dem Aufruf der Funktion und der job Übermittlung der Daten führen. Um den Fortschritt des Aufrufs zu überprüfen, wird empfohlen, die Protokollierung (mit der Stufe INFO ) einzurichten – weitere Informationen finden Sie in der Dokumentation unter IBM Quantum Compute.

Parameter

  • pubs (Iterable[EstimatorPubLike]) – Eine iterierbare Struktur aus pub-ähnlichen Objekten. Zum Beispiel eine Liste von Schaltkreisen und Observablen oder Tupeln (circuit, observables, parameter_values).
  • precision (float | None) – Die Zielgenauigkeit für Erwartungswertschätzungen jedes Schätzers „pub“, der keine eigene Genauigkeit angibt. In Nonediesem Fall options.default_precision wird der Wert aus verwendet.
  • dry_run (bool) – Wenn True, wird ein Testlauf durchgeführt, ohne den Auftrag auf einer QPU auszuführen. Dieser Modus kann verwendet werden, um den Auftrag zu validieren, den Ressourcenverbrauch abzuschätzen und Metadaten zur Schaltungszeit zu abrufen. Die zurückgegebenen Ergebnisse entsprechen zwar dem erwarteten Schema, enthalten jedoch zufällig generierte Dummy-Daten anstelle von tatsächlichen oder simulierten Messergebnissen. Im Gegensatz zu den simulierten Backends erfolgt die Verarbeitung dieses Testlaufs serverseitig, sodass der Vorgang möglicherweise nicht sofort abgeschlossen wird und der Zugriff auf diese Funktion eingeschränkt sein kann.

Rückgabe

Der übermittelte Auftrag.

Erhöhungen

  • ValueError – Falls kein Backend bereitgestellt wird.
  • IBMInputValueError – Wenn keine Pubs angegeben sind, wenn die Genauigkeit nicht ordnungsgemäß festgelegt wurde oder wenn nicht unterstützte Optionen erkannt werden.

Rückgabetyp

RuntimeJobV2 | LocalRuntimeJob

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