BaseEstimatorV1
class qiskit.primitives.BaseEstimatorV1(*, options=None)
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 ( ): Liste von (parametrisierten) Quantenschaltungen (eine Liste von
QuantumCircuitObjekten). - observables ( ): eine Liste von
SparsePauliOpobjekten. - parameter values ( ): 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.
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)
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
strZeichenfolgen-Darstellungsformat fürPauliObjekte 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)
Legen Sie Optionswerte für den Schätzer fest.
Parameter
**fields - Die Felder zur Aktualisierung der Optionen