BackendEstimatorV2
class qiskit.primitives.BackendEstimatorV2(*, backend, options=None)
Bases : BaseEstimatorV2
Évalue les valeurs d'espérance pour des combinaisons de circuits quantiques et d'observables fournies.
La classe BackendEstimatorV2 est une implémentation générique de l'interface BaseEstimatorV2 qui est utilisée pour envelopper un objet BackendV2 dans l BaseEstimatorV2 API. Il facilite l'utilisation de backends qui ne fournissent pas d'implémentation native BaseEstimatorV2 dans des endroits qui fonctionnent avec BaseEstimatorV2. Cependant, si vous utilisez un fournisseur qui a une implémentation native de BaseEstimatorV2il est préférable de s'appuyer sur cette implémentation native car elle comprendra probablement des optimisations supplémentaires et sera une implémentation plus efficace. La nature générique de cette classe exclut toute optimisation spécifique au fournisseur ou au backend.
Cette classe n'effectue aucune mesure ou atténuation de porte et n'est actuellement compatible qu'avec les observables basées sur la théorie de Pauli. Plus formellement, étant donné une observable du type , où est un nombre complexe et un opérateur de Pauli, l'estimateur calcule l'espérance de chaque et calcule finalement la valeur de l'espérance de sous la forme . La valeur déclarée de std est calculée comme suit
où est la variance de , est le nombre de tirs et est la précision de l'objectif [1.]
Chaque tuple de (circuit, observables, <optional> parameter values, <optional> precision), appelé bloc unifié primitif d'estimateur ( PUB ), produit son propre résultat sous forme de tableau. La méthode run() peut recevoir une séquence de pubs à exécuter en un seul appel.
Les options pour BackendEstimatorV2 se composent des éléments suivants.
default_precision: La précision par défaut à utiliser si aucune n'est spécifiée dansrun(). Valeur par défaut : 0.015625 (1 / sqrt(4096)).abelian_grouping: Les observables doivent-elles être regroupées en ensembles d'observables commutant entre les qubits? Valeur par défaut : True.seed_simulator: La graine à utiliser dans le simulateur. Si None, une graine aléatoire sera utilisée. Par défaut : none.
Référence :
[1] O. Crawford, B. van Straaten, D. Wang, T. Parks, E. Campbell, St. Brierley, Efficient quantum measurement of Pauli operators in the presence of finite sampling error. Quantum 5, 385
Paramètres
- backend (BackendV2) – Le backend sur lequel la primitive est exécutée.
- options (dict | None) – Les options permettant de contrôler la précision par défaut (
default_precision), le regroupement des opérateurs (abelian_grouping) et la graine aléatoire pour le simulateur (seed_simulator).
Attributs
backend
Renvoie le backend sur lequel repose cet objet estimateur.
options
Renvoyer les options
Méthodes
run
run(pubs, *, precision=None)
Estimer les valeurs d'espérance pour chaque pub fournie (bloc primitif unifié).
Paramètres
- pubs (Iterable[TypeAliasForwardRef('EstimatorPubLike')]) – Une collection d'objets de type pub, tels que des tuples
(circuit, observables)ou(circuit, observables, parameter_values). - precision (float | None) – La précision cible pour les estimations de la valeur de l'espérance de chaque exécution Estimator Pub qui ne spécifie pas sa propre précision. Si None, la valeur de précision par défaut de l'estimateur sera utilisée.
Retours
Un objet de travail qui contient des résultats.
Type de retour
PrimitiveJob [ PrimitiveResult [ PubResult ]]