Skip to main content
IBM Quantum Platform

BackendEstimatorV2

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

GitHub

Basi: BaseEstimatorV2

Valuta i valori di aspettativa per le combinazioni di circuiti quantistici e osservabili fornite.

La classe BackendEstimatorV2 è un'implementazione generica dell'interfaccia BaseEstimatorV2 utilizzata per avvolgere un oggetto BackendV2 oggetto nell'API BaseEstimatorV2 API. Facilita l'uso di backend che non forniscono un'implementazione nativa BaseEstimatorV2 in posti che lavorano con BaseEstimatorV2. Tuttavia, se si utilizza un provider che ha un'implementazione nativa di BaseEstimatorV2è meglio sfruttare tale implementazione nativa, perché probabilmente includerà ulteriori ottimizzazioni e sarà un'implementazione più efficiente. La natura generica di questa classe impedisce di effettuare ottimizzazioni specifiche per i provider o i backend.

Questa classe non esegue alcuna misura o attenuazione del gate e, attualmente, è compatibile solo con le osservabili basate su Pauli. Più formalmente, data un'osservabile del tipo O=i=1NaiPiO=\sum_{i=1}^Na_iP_i, dove aia_i è un numero complesso e PiP_i è un operatore di Pauli, lo stimatore calcola l'aspettativa E(Pi)\mathbb{E}(P_i) di ogni PiP_i e infine calcola il valore di aspettativa di OO come E(O)=i=1NaiE(Pi)\mathbb{E}(O)=\sum_{i=1}^Na_i\mathbb{E}(P_i). Il std riportato è calcolato come

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

dove Var(Pi)\textrm{Var}(P_i) è la varianza di PiP_i, N=O(ϵ2)N=O(\epsilon^{-2}) è il numero di scatti e ϵ\epsilon è la precisione del bersaglio [1].

Ogni tupla di (circuit, observables, <optional> parameter values, <optional> precision), chiamata blocco primitivo unificato di stima ( PUB ), produce il proprio risultato basato su array. Il metodo run() può ricevere una sequenza di pub da eseguire in un'unica chiamata.

Le opzioni per BackendEstimatorV2 sono costituite dalle seguenti voci.

  • default_precision: La precisione predefinita da utilizzare se non è stata specificata in run(). Predefinito: 0.015625 (1 / sqrt(4096)).
  • abelian_grouping: Se le osservabili debbano essere raggruppate in insiemi di osservabili commutanti in modo qubit-wise. Valore predefinito: True.
  • seed_simulator: Il seme da utilizzare nel simulatore. Se Nessuno, verrà utilizzato un seme casuale. Valore predefinito: nessuno.

Riferimenti:

[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

Parametri

  • backend (BackendV2) – Il backend su cui eseguire la primitiva.
  • options (dict | None) – Le opzioni per controllare la precisione predefinita (default_precision), il raggruppamento degli operatori (abelian_grouping) e il seme casuale per il simulatore (seed_simulator).

Attributi

backend

Restituisce il backend su cui si basa questo oggetto stimatore.

options

Restituire le opzioni


Metodi

run

run(pubs, *, precision=None)

GitHub

Stimare i valori di aspettativa per ogni pub fornito (Primitive Unified Bloc).

Parametri

  • pubs (Iterable[TypeAliasForwardRef('EstimatorPubLike')]) – Un iterabile di oggetti simili a pub, come tuple (circuit, observables) o (circuit, observables, parameter_values).
  • precision (float | None) – La precisione target per le stime del valore di aspettativa di ciascun Run Estimator Pub che non specifica la propria precisione. Se Nessuno, verrà utilizzato il valore di precisione predefinito dello stimatore.

Risultati

Un oggetto lavoro che contiene i risultati.

Tipo di restituzione

PrimitiveJob [ PrimitiveResult [ PubResult ]]

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