Skip to main content
IBM Quantum Platform

BaseEstimatorV1

class qiskit.primitives.BaseEstimatorV1(*, options=None)

GitHub

Basen: BasePrimitiveV1, Generic[T]

Basisklasse für EstimatorV1 -Implementierungen.

Beachten Sie, dass der Referenzschätzer in Qiskit stattdessen den Spezifikationen der Schnittstelle EstimatorV2 folgt.

Ein Schätzer berechnet Erwartungswerte für vorgegebene Kombinationen von Quantenschaltungen und beobachtbaren Größen.

Implementierungen von BaseEstimatorV1 sollten ihre eigene Methode BaseEstimatorV1._run() definieren, die von der öffentlichen Seite qiskit.primitives.BaseEstimatorV1.run()aufgerufen wird, die die folgenden Eingaben entgegennimmt:

  • Quantenschaltungen ( ψi(θ)\psi_i(\theta) ): Liste von (parametrisierten) Quantenschaltungen (eine Liste von QuantumCircuit Objekten).
  • observables ( HjH_j ): eine Liste von SparsePauliOp objekten.
  • parameter values ( θk\theta_k ): Liste der Wertesätze, die an die Parameter der Quantenschaltungen gebunden werden sollen (list of list of float).

Die Methode gibt ein JobV1 Objekt zurück. Der Aufruf qiskit.providers.JobV1.result() liefert eine Liste von Erwartungswerten sowie optionale Metadaten wie Konfidenzintervalle für die Schätzung.

⟨ψi(θk)∣Hj∣ψi(θk)⟩\langle\psi_i(\theta_k)|H_j|\psi_i(\theta_k)\rangle

Hier ein Beispiel, wie ein BaseEstimatorV1 verwendet werden würde:

# This is a fictional import path.
# There are currently no EstimatorV1 implementations in Qiskit.
from estimator_v1_location import EstimatorV1
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp

psi1 = RealAmplitudes(num_qubits=2, reps=2)
psi2 = RealAmplitudes(num_qubits=2, reps=3)

H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 1, 2, 3, 5, 8, 13]
theta3 = [1, 2, 3, 4, 5, 6]

estimator = EstimatorV1()

# calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
job = estimator.run([psi1], [H1], [theta1])
job_result = job.result() # It will block until the job finishes.
print(f"The primitive-job finished with result {job_result}")

# calculate [ <psi1(theta1)|H1|psi1(theta1)>,
#             <psi2(theta2)|H2|psi2(theta2)>,
#             <psi1(theta3)|H3|psi1(theta3)> ]
job2 = estimator.run([psi1, psi2, psi1], [H1, H2, H3], [theta1, theta2, theta3])
job_result = job2.result()
print(f"The primitive-job finished with result {job_result}")

Initialisieren EstimatorV1.

Parameter

options (dict | None) – Standardoptionen.


Attribute

options

Rückgabe von Optionswerten für den Schätzer.

Rückgabe

Optionen


Methoden

run

run(circuits, observables, parameter_values=None, **run_options)

GitHub

Führen Sie den Auftrag zur Schätzung der Erwartungswerte aus.

circuits, observables, und parameter_values sollten die gleiche Länge haben. Das i-te Element des Ergebnisses ist die Erwartung der beobachtbaren

obs = observables[i]

für den Staat erstellt von

circ = circuits[i]

mit gebundenen Parametern

values = parameter_values[i]

Parameter

  • circuits (Sequence[QuantumCircuit] | QuantumCircuit) – ein oder mehrere Schaltungsobjekte.
  • observables (Sequence[BaseOperator | str] | BaseOperator | str) – ein oder mehrere beobachtbare Objekte. Es sind mehrere Formate zulässig; wichtig ist, dass dem str Zeichenfolgen-Darstellungsformat für Pauli Objekte entsprechen sollte.
  • parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – Konkrete Parameter, die gebunden werden sollen.
  • run_options - Laufzeitoptionen für die Ausführung von Schaltkreisen.

Rückgabe

Das Auftragsobjekt von EstimatorResult.

Erhöht

  • TypeError - Ungültiger Argumenttyp angegeben.
  • ValueError - Ungültige Argumentwerte angegeben.

Rückgabetyp

T

set_options

set_options(**fields)

GitHub

Legen Sie Optionswerte für den Schätzer fest.

Parameter

**fields - Die Felder zur Aktualisierung der Optionen

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