Skip to main content
IBM Quantum Platform

BaseEstimatorV1

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

GitHub

Bases : BasePrimitiveV1, Generic[T]

Classe de base pour les implémentations de EstimatorV1 .

Notez que l'estimateur de référence dans Qiskit suit les spécifications de l'interface EstimatorV2 .

Un estimateur calcule les valeurs d'espérance pour des combinaisons de circuits quantiques et d'observables fournies.

Les implémentations de BaseEstimatorV1 doivent définir leur propre méthode BaseEstimatorV1._run() qui sera appelée par l'interface publique qiskit.primitives.BaseEstimatorV1.run()qui prend en compte les éléments suivants :

  • circuits quantiques ( ψi(θ)\psi_i(\theta) ) : liste de circuits quantiques (paramétrés) (une liste QuantumCircuit d'objets).
  • observables ( HjH_j ) : une liste d'objets SparsePauliOp objets.
  • valeurs des paramètres ( θk\theta_k ) : liste d'ensembles de valeurs à associer aux paramètres des circuits quantiques (liste de listes de valeurs flottantes).

La méthode renvoie un JobV1 objet. L'appel de cette fonction qiskit.providers.JobV1.result() renvoie une liste de valeurs attendues ainsi que des métadonnées facultatives, telles que les intervalles de confiance pour l'estimation.

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

Voici un exemple d'utilisation d'un BaseEstimatorV1 serait utilisé :

# 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}")

Initialiser EstimatorV1.

Paramètres

options (dict | None) – Options par défaut.


Attributs

options

Retourne les valeurs des options pour l'estimateur.

Retours

options


Méthodes

run

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

GitHub

Exécuter le travail d'estimation de la (des) valeur(s) attendue(s).

circuits, observables et parameter_values doivent avoir la même longueur. Le i-ème élément du résultat est l'espérance de l'observable

obs = observables[i]

pour l'État préparé par

circ = circuits[i]

avec des paramètres liés

values = parameter_values[i]

Paramètres

  • circuits (Sequence[QuantumCircuit] | QuantumCircuit) – un ou plusieurs objets de circuit.
  • observables (Sequence[BaseOperator | str] | BaseOperator | str) – un ou plusieurs objets observables. Plusieurs formats sont autorisés; il str est important de respecter le format de représentation des chaînes pour Pauli les objets.
  • parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – paramètres concrets à lier.
  • run_options - options d'exécution utilisées pour l'exécution du circuit.

Retours

L'objet du travail de EstimatorResult.

Augmentations

  • TypeError - Le type d'argument donné n'est pas valide.
  • ValueError - Valeurs d'argument non valides.

Type de retour

T

set_options

set_options(**fields)

GitHub

Définir les valeurs des options pour l'estimateur.

Paramètres

*Champs - Les champs pour mettre à jour les options

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.