Skip to main content
IBM Quantum Platform

BackendEstimatorV2

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

GitHub

Bases: BaseEstimatorV2

Evalúa valores de expectativa para combinaciones de circuito cuántico y observable proporcionadas.

La clase BackendEstimatorV2 es una implementación genérica de la interfaz BaseEstimatorV2 que se utiliza para envolver un objeto BackendV2 objeto en la BaseEstimatorV2 API. Facilita el uso de backends que no proporcionan una implementación nativa BaseEstimatorV2 nativa en sitios que funcionan con BaseEstimatorV2. Sin embargo, si está utilizando un proveedor que tiene una implementación nativa de BaseEstimatorV2es mejor aprovechar esa implementación nativa, ya que probablemente incluirá optimizaciones adicionales y será una implementación más eficiente. La naturaleza genérica de esta clase impide realizar optimizaciones específicas para el proveedor o el backend.

Esta clase no realiza ninguna medición o mitigación de puerta y, actualmente, sólo es compatible con observables basados en Pauli. Más formalmente, dado un observable del tipo O=i=1NaiPiO=\sum_{i=1}^Na_iP_i, donde aia_i es un número complejo y PiP_i es un operador de Pauli, el estimador calcula la expectativa E(Pi)\mathbb{E}(P_i) de cada PiP_i y finalmente calcula el valor de la expectativa de OO como E(O)=i=1NaiE(Pi)\mathbb{E}(O)=\sum_{i=1}^Na_i\mathbb{E}(P_i). El std notificado se calcula como

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

donde Var(Pi)\textrm{Var}(P_i) es la varianza de PiP_i, N=O(ϵ2)N=O(\epsilon^{-2}) es el número de disparos y ϵ\epsilon es la precisión del objetivo [1].

Cada tupla de (circuit, observables, <optional> parameter values, <optional> precision), denominada bloque unificado primitivo del estimador ( PUB ), produce su propio resultado basado en matrices. El método run() puede recibir una secuencia de pubs para ejecutarla en una sola llamada.

Las opciones de BackendEstimatorV2 consisten en lo siguiente

  • default_precision: La precisión por defecto a utilizar si no se especifica ninguna en run(). Por defecto: 0.015625 (1 / sqrt(4096)).
  • abelian_grouping: Si los observables deben agruparse en conjuntos de observables conmutables qubit-wise. Valor predeterminado: True.
  • seed_simulator: La semilla a utilizar en el simulador. Si es Ninguno, se utilizará una semilla aleatoria. Por omisión: ninguno.

Referencia:

[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

Parámetros

  • backend (BackendV2) – El backend en el que se ejecutará la primitiva.
  • options (dict | None) – Las opciones para controlar la precisión por defecto (default_precision), la agrupación de operadores (abelian_grouping), y la semilla aleatoria para el simulador (seed_simulator).

Atributos

backend

Devuelve el backend en el que se basa este objeto estimador.

options

Devolver las opciones


Métodos

run

run(pubs, *, precision=None)

GitHub

Estimar los valores de expectativa para cada pub proporcionado (Bloque Primitivo Unificado).

Parámetros

  • pubs (Iterable[TypeAliasForwardRef('EstimatorPubLike')]) – Una secuencia de objetos similares a «pub», como tuplas (circuit, observables) o (circuit, observables, parameter_values).
  • precision (float | None) – La precisión objetivo para las estimaciones del valor de expectativa de cada ejecución Estimador Pub que no especifica su propia precisión. Si es Ninguno, se utilizará el valor de precisión por defecto del estimador.

Devuelve

Un objeto de trabajo que contiene resultados.

Tipo de retorno

TrabajoPrimitivo [ ResultadoPrimitivo [ ResultadoPúblico ]]

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.