BaseEstimatorV1
class qiskit.primitives.BaseEstimatorV1(*, options=None)
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 ( ) : liste de circuits quantiques (paramétrés) (une liste
QuantumCircuitd'objets). - observables ( ) : une liste d'objets
SparsePauliOpobjets. - valeurs des paramètres ( ) : 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.
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)
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
strest important de respecter le format de représentation des chaînes pourPauliles 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)
Définir les valeurs des options pour l'estimateur.
Paramètres
*Champs - Les champs pour mettre à jour les options