Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

Basen: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2

EstimatorV2 Primitive für IBM Quantum Compute (ehemals Qiskit Runtime ).

IBM Quantum Compute Der Dienst „Estimator Primitive“ schätzt die Erwartungswerte von Quantenschaltungen und Observablen.

Die Website run() kann verwendet werden, um Schaltungen, Beobachtungswerte und Parameter an das Estimator-Primitiv zu übermitteln.

Nach der Konstruktion wird ein Schätzer verwendet, indem man seine run() methode mit einer Liste von PUBs (Primitive Unified Blocs) aufgerufen wird. Jedes PUB enthält vier Werte, die zusammen eine Berechnungseinheit definieren, die der Schätzer abarbeiten muss:

  • eine einzelne QuantumCircuit, möglicherweise parametrisiert, dessen Endzustand wir als ψ(θ)\psi(\theta) definieren,
  • eine oder mehrere Beobachtungswerte (spezifiziert als beliebige ObservablesArrayLike, einschließlich Pauli, SparsePauliOp, str), die angeben, welche Erwartungswerte zu schätzen sind, bezeichnet als HjH_j, und
  • eine Sammlung von Parameterwertsätzen, gegen die die Schaltung gebunden werden soll, θk\theta_k.
  • eine optionale Zielgenauigkeit für Erwartungswertschätzungen.

Nachfolgend ein Beispiel für die Verwendung des Schätzers.

from qiskit.circuit.library import real_amplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator

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

psi = real_amplitudes(num_qubits=2, reps=2)
hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
theta = [0, 1, 1, 2, 3, 5]

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_psi = pm.run(psi)
isa_observables = hamiltonian.apply_layout(isa_psi.layout)

estimator = Estimator(mode=backend)

# calculate [ <psi(theta)|hamiltonian|psi(theta)> ]
job = estimator.run([(isa_psi, isa_observables, [theta])])
pub_result = job.result()[0]
print(f"Expectation values: {pub_result.data.evs}")

Parameter

  • mode (BackendV2 | Session |Batch | str | None) –

    Der Ausführungsmodus, der für die primitive Abfrage verwendet wird. Auswahlmöglichkeiten:

    • A Backend wenn Sie den Auftragsmodus verwenden.
    • A Session wenn Sie den Modus Sitzungsausführung verwenden.
    • A Batch wenn Sie den Stapelverarbeitungsmodus verwenden.

    Weitere Informationen zum finden Sie unter IBM Quantum Compute Dokumentation Execution modes.

  • options (dict | options.EstimatorOptions | None) – Optionen für den Schätzer – eine ausführliche Beschreibung finden Sie EstimatorOptions unter.


Attribute

mode

Gibt den von diesem Primitiv verwendeten Ausführungsmodus zurück.

Rückgabe

Modus, der von diesem Primitiv verwendet wird, oder None , wenn kein Ausführungsmodus verwendet wird.

options

Rückgabemöglichkeiten.

version

Standardwert: 2


Methoden

backend

backend()

GitHub

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

Rückgabetyp

BackendV2

run

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

GitHub

Stellen Sie eine Anfrage an den Schätzer Primitiv.

Parameter

  • pubs (Iterable[EstimatorPubLike]) – Eine iterierbare Struktur aus pub-ähnlichen Objekten (primitive vereinheitlichte Blöcke), wie beispielsweise Tupel (circuit, observables) oder (circuit, observables, parameter_values).
  • precision (float | None) – Die Zielgenauigkeit für Erwartungswertschätzungen jedes Durchlaufs von „Estimator Pub“, der keine eigene Genauigkeit angibt. In Nonediesem Fall wird der Standardgenauigkeitswert des Schätzers 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

Eingereichte Arbeit.

Erhöht

ValueError - wenn der Präzisionswert nicht unbedingt größer als 0 ist.

Rückgabetyp

RuntimeJobV2

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