Skip to main content
IBM Quantum Platform

BaseEstimatorV1

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

GitHub

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 ( ψi(θ)\psi_i(\theta) ): elenco di circuiti quantistici (parametrizzati) (un elenco di QuantumCircuit oggetti).
  • osservabili ( HjH_j ): un elenco di SparsePauliOp oggetti.
  • valori dei parametri ( θk\theta_k ): 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.

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

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)

GitHub

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 str seguano il formato di rappresentazione stringa per Pauli gli 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

Tipo di restituzione

L

set_options

set_options(**fields)

GitHub

Imposta i valori delle opzioni per lo stimatore.

Parametri

** Campi - I campi per aggiornare le opzioni

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.