Skip to main content
IBM Quantum Platform

BackendEstimatorV2

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

GitHub

Bases: BaseEstimatorV2

Avalia os valores de expectativa para o circuito quântico fornecido e as combinações observáveis.

A classe BackendEstimatorV2 é uma implementação genérica da interface BaseEstimatorV2 que é usada para envolver um objeto BackendV2 objeto na BaseEstimatorV2 API. Facilita o uso de back-ends que não fornecem uma implementação nativa BaseEstimatorV2 em locais que funcionam com o BaseEstimatorV2. No entanto, se você estiver usando um provedor que tenha uma implementação nativa de BaseEstimatorV2é uma opção melhor aproveitar essa implementação nativa, pois ela provavelmente incluirá otimizações adicionais e será uma implementação mais eficiente. A natureza genérica dessa classe impede a realização de qualquer otimização específica do provedor ou do backend.

Essa classe não realiza nenhuma medição ou atenuação de porta e, no momento, é compatível apenas com observáveis baseados em Pauli. Mais formalmente, dado um observável do tipo O=i=1NaiPiO=\sum_{i=1}^Na_iP_i, em que aia_i é um número complexo e PiP_i é um operador Pauli, o estimador calcula a expectativa E(Pi)\mathbb{E}(P_i) de cada PiP_i e, por fim, calcula o valor da expectativa de OO como E(O)=i=1NaiE(Pi)\mathbb{E}(O)=\sum_{i=1}^Na_i\mathbb{E}(P_i). O std relatado é calculado como

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

em que Var(Pi)\textrm{Var}(P_i) é a variação de PiP_i, N=O(ϵ2)N=O(\epsilon^{-2}) é o número de disparos e ϵ\epsilon é a precisão do alvo [1].

Cada tupla de (circuit, observables, <optional> parameter values, <optional> precision), chamada de bloco unificado primitivo do estimador ( PUB ), produz seu próprio resultado baseado em matriz. O método run() pode receber uma sequência de pubs para ser executada em uma chamada.

As opções para BackendEstimatorV2 consistem nos seguintes itens.

  • default_precision: A precisão padrão a ser usada se nenhuma for especificada em run(). Padrão: 0.015625 (1 / sqrt(4096)).
  • abelian_grouping: Se os observáveis devem ser agrupados em conjuntos de observáveis comutáveis de qubit-wise. Padrão: True.
  • seed_simulator: A semente a ser usada no simulador. Se for None, será usada uma semente aleatória. Padrão: none.

Referência:

[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) – O backend em que a primitiva será executada.
  • options (dict | None) – As opções para controlar a precisão padrão (default_precision), o agrupamento de operadores (abelian_grouping) e a semente aleatória para o simulador (seed_simulator).

Atributos

backend

Retorna o backend no qual este objeto estimador se baseia.

options

Retornar as opções


Métodos

run

run(pubs, *, precision=None)

GitHub

Estimar valores de expectativa para cada pub fornecido (Primitive Unified Bloc).

Parâmetros

  • pubs (Iterable[TypeAliasForwardRef('EstimatorPubLike')]) – Uma coleção de objetos do tipo pub, como tuplas (circuit, observables) ou (circuit, observables, parameter_values).
  • precision (float | None) – A precisão de destino para estimativas de valor de expectativa de cada execução do Estimator Pub que não especifica sua própria precisão. Se for None, será usado o valor de precisão padrão do estimador.

Retorna

Um objeto de trabalho que contém resultados.

Tipo de retorno

TrabalhoPrimitivo [ ResultadoPrimitivo [ ResultadoPúblico ]]

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.