Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

Bases: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2

Clase para interactuar con el servicio primitivo Qiskit Runtime Estimator.

Qiskit Runtime El servicio primitivo Estimator estima los valores de expectativa de circuitos cuánticos y observables.

La página run() puede utilizarse para enviar circuitos, observables y parámetros a la primitiva Estimator.

Tras la construcción, se utiliza un estimador llamando a su método run() con una lista de PUB (bloques unificados primitivos). Cada PUB contiene cuatro valores que, juntos, definen una unidad de trabajo de cálculo que debe completar el estimador:

  • un único QuantumCircuitposiblemente parametrizado, cuyo estado final definimos como ψ(θ)\psi(\theta),
  • uno o más observables (especificados como cualquier ObservablesArrayLike, incluyendo Pauli, SparsePauliOp, str) que especifican qué valores de expectativa estimar, denotados HjH_j, y
  • una colección de conjuntos de valores de parámetros con los que vincular el circuito, θk\theta_k.
  • una precisión objetivo opcional para las estimaciones del valor de expectativa.

He aquí un ejemplo de cómo se utiliza el estimador.

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) –

    El modo de ejecución utilizado para realizar la consulta primitiva. Puede ser:

    • A Backend si está utilizando el modo trabajo.
    • A Session si está utilizando el modo de ejecución de sesión.
    • A Batch si está utilizando el modo de ejecución por lotes.

    Consulte la documentación de Qiskit Runtime para obtener más información sobre el Execution modes.

  • options (dict | EstimatorOptions | None) – Opciones del estimador, consulte EstimatorOptions para obtener una descripción detallada.


Atributos

mode

Devuelve el modo de ejecución utilizado por esta primitiva.

Devuelve

Modo utilizado por esta primitiva, o None si no se utiliza un modo de ejecución.

options

Opciones de devolución.

version

Valor predeterminado: 2


Métodos

backend

backend()

GitHub

Devuelve el backend en el que se ejecutará la consulta primitiva.

Tipo de retorno

BackendV2

run

run(pubs, *, precision=None)

GitHub

Envíe una solicitud al estimador primitivo.

Parámetros

  • pubs (Iterable[EstimatorPubLike]) – Un iterable de objetos de tipo «pub» (bloques primitivos unificados), 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

Trabajo presentado.

Eleva

ValueError - si el valor de precisión no es estrictamente mayor que 0.

Tipo de retorno

RuntimeJobV2

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