Skip to main content
IBM Quantum Platform

BackendEstimatorV2

class qiskit.primitives.BackendEstimatorV2(*, backend, options=None)

GitHub

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=i=1NaiPiO=\sum_{i=1}^Na_iP_i, où aia_i est un nombre complexe et PiP_i un opérateur de Pauli, l'estimateur calcule l'espérance E(Pi)\mathbb{E}(P_i) de chaque PiP_i et calcule finalement la valeur de l'espérance de OO sous la forme E(O)=i=1NaiE(Pi)\mathbb{E}(O)=\sum_{i=1}^Na_i\mathbb{E}(P_i). La valeur déclarée de std est calculée comme suit

i=1naiVar(Pi)N,\frac{\sum_{i=1}^{n}|a_i|\sqrt{\textrm{Var}\big(P_i\big)}}{\sqrt{N}}\:,

Var(Pi)\textrm{Var}(P_i) est la variance de PiP_i, N=O(ϵ2)N=O(\epsilon^{-2}) est le nombre de tirs et ϵ\epsilon 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 dans run(). 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)

GitHub

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 ]]

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