BaseEstimatorV1
class qiskit.primitives.BaseEstimatorV1(*, options=None)
Basi: BasePrimitiveV1, Generic[T]
Classe base per le implementazioni di EstimatorV1 .
Si noti che lo stimatore di riferimento in Qiskit segue invece le specifiche dell'interfaccia EstimatorV2 .
Uno stimatore calcola i valori di aspettativa per le combinazioni di circuiti quantistici e osservabili fornite.
Le implementazioni di BaseEstimatorV1 devono definire il proprio metodo BaseEstimatorV1._run() , che sarà richiamato dal metodo public-facing qiskit.primitives.BaseEstimatorV1.run()che accetta i seguenti input:
- circuiti quantistici ( ): elenco di circuiti quantistici (parametrizzati) (un elenco di
QuantumCircuitoggetti). - osservabili ( ): un elenco di
SparsePauliOpoggetti. - valori dei parametri ( ): lista di insiemi di valori da legare ai parametri dei circuiti quantistici (lista di liste di float).
Il metodo restituisce un JobV1 oggetto. La chiamata qiskit.providers.JobV1.result() restituisce un elenco di valori attesi, oltre a metadati opzionali quali gli intervalli di confidenza per la stima.
Ecco un esempio di come si usa un elemento BaseEstimatorV1 verrebbe utilizzato:
# 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}")Inizializzare EstimatorV1.
Parametri
options (dict | None) – Opzioni predefinite.
Attributi
options
Restituisce i valori delle opzioni per lo stimatore.
Risultati
opzioni
Metodi
run
run(circuits, observables, parameter_values=None, **run_options)
Eseguire il lavoro di stima dei valori di aspettativa.
circuits, observables e parameter_values devono avere la stessa lunghezza. L'elemento i-esimo del risultato è l'aspettativa dell'osservabile
obs = observables[i]per lo Stato preparato da
circ = circuits[i]con parametri vincolati
values = parameter_values[i]Parametri
- circuits (Sequence[QuantumCircuit] | QuantumCircuit) – uno o più oggetti di circuito.
- observables (Sequence[BaseOperator | str] | BaseOperator | str) – uno o più oggetti osservabili. Sono ammessi diversi formati; è importante che
strseguano il formato di rappresentazione stringa perPauligli oggetti. - parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – parametri concreti da vincolare.
- run_options - opzioni di runtime utilizzate per l'esecuzione del circuito.
Risultati
L'oggetto del lavoro di EstimatorResult.
Aumenti
- TypeError - Tipo di argomento non valido.
- ValueError - Valori degli argomenti non validi.
Tipo di restituzione
L
set_options
set_options(**fields)
Imposta i valori delle opzioni per lo stimatore.
Parametri
** Campi - I campi per aggiornare le opzioni