Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

Bases: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2

Classe para interagir com o serviço primitivo Qiskit Runtime Estimator.

Qiskit Runtime O serviço primitivo Estimator estima os valores de expectativa de circuitos quânticos e observáveis.

O run() pode ser usado para enviar circuitos, observáveis e parâmetros para o Estimator primitivo.

Após a construção, um estimador é usado chamando seu método run() com uma lista de PUBs (Primitive Unified Blocs, blocos unificados primitivos). Cada PUB contém quatro valores que, juntos, definem uma unidade de trabalho de computação para o estimador concluir:

  • um único QuantumCircuitpossivelmente parametrizado, cujo estado final definimos como ψ(θ)\psi(\theta),
  • um ou mais observáveis (especificados como qualquer ObservablesArrayLike, incluindo Pauli, SparsePauliOp, str) que especificam quais valores de expectativa devem ser estimados, denotados HjH_j, e
  • um conjunto de valores de parâmetros de coleção para vincular o circuito, θk\theta_k.
  • uma precisão de destino opcional para estimativas de valor de expectativa.

Aqui está um exemplo de como o estimador é usado.

from qiskit.circuit.library import real_amplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

psi = real_amplitudes(num_qubits=2, reps=2)
hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
theta = [0, 1, 1, 2, 3, 5]

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_psi = pm.run(psi)
isa_observables = hamiltonian.apply_layout(isa_psi.layout)

estimator = Estimator(mode=backend)

# calculate [ <psi(theta)|hamiltonian|psi(theta)> ]
job = estimator.run([(isa_psi, isa_observables, [theta])])
pub_result = job.result()[0]
print(f"Expectation values: {pub_result.data.evs}")

Parâmetros

  • mode (BackendV2 | Session |Batch | str | None) –

    O modo de execução usado para fazer a consulta primitiva. Ele pode ser:

    • A Backend se você estiver usando o modo de trabalho.
    • A Session se você estiver usando o modo de execução de sessão.
    • A Batch se estiver usando o modo de execução em lote.

    Consulte a documentação Qiskit Runtime para obter mais informações sobre o Execution modes.

  • options (dict | EstimatorOptions | None) – Opções do estimador, consulte EstimatorOptions para obter uma descrição detalhada.


Atributos

mode

Retorna o modo de execução usado por essa primitiva.

Retorna

Modo usado por essa primitiva, ou None se um modo de execução não for usado.

options

Opções de devolução.

version

Valor Padrão: 2


Métodos

backend

backend()

GitHub

Retorna o backend no qual a consulta primitiva será executada.

Tipo de retorno

BackendV2

run

run(pubs, *, precision=None)

GitHub

Envie uma solicitação para o estimador primitivo.

Parâmetros

  • pubs (Iterable[EstimatorPubLike]) – Um iterável de objetos do tipo pub (bloco unificado primitivo), 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

Trabalho enviado.

Aumentos

ValueError - se o valor da precisão não for estritamente maior que 0.

Tipo de retorno

RuntimeJobV2

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