EstimatorV2
class EstimatorV2(mode=None, options=None)
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 definieren, - eine oder mehrere Beobachtungswerte (spezifiziert als beliebige
ObservablesArrayLike, einschließlichPauli,SparsePauliOp,str), die angeben, welche Erwartungswerte zu schätzen sind, bezeichnet als , und - eine Sammlung von Parameterwertsätzen, gegen die die Schaltung gebunden werden soll, .
- 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
Backendwenn Sie den Auftragsmodus verwenden. - A
Sessionwenn Sie den Modus Sitzungsausführung verwenden. - A
Batchwenn Sie den Stapelverarbeitungsmodus verwenden.
Weitere Informationen zum finden Sie unter IBM Quantum Compute Dokumentation
Execution modes. - A
-
options (dict | options.EstimatorOptions | None) – Optionen für den Schätzer – eine ausführliche Beschreibung finden Sie
EstimatorOptionsunter.
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()
Gibt das Backend zurück, auf dem die primitive Abfrage ausgeführt werden soll.
Rückgabetyp
run
run(pubs, *, precision=None, dry_run=False)
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