Skip to main content
IBM Quantum Platform

BaseEstimatorV1

class qiskit.primitives.BaseEstimatorV1(*, options=None)

GitHub

Bases: BasePrimitiveV1, Generic[T]

Clase base para implementaciones de EstimatorV1 .

Tenga en cuenta que el estimador de referencia de Qiskit sigue las especificaciones de la interfaz EstimatorV2 .

Un estimador calcula valores de expectativa para combinaciones de circuito cuántico y observable proporcionadas.

Las implementaciones de BaseEstimatorV1 deben definir su propio método BaseEstimatorV1._run() , que será llamado por el método de cara al público qiskit.primitives.BaseEstimatorV1.run()que recibe las siguientes entradas:

  • circuitos cuánticos ( ψi(θ)\psi_i(\theta) ): lista de circuitos cuánticos (parametrizados) (una lista de QuantumCircuit objetos).
  • observables ( HjH_j ): una lista de SparsePauliOp objetos.
  • valores de los parámetros ( θk\theta_k ): lista de conjuntos de valores que deben vincularse a los parámetros de los circuitos cuánticos (lista de lista de float).

El método devuelve un JobV1 objeto. Al llamar a esta función qiskit.providers.JobV1.result() se obtiene una lista de valores esperados, además de metadatos opcionales, como los intervalos de confianza de la estimación.

ψi(θk)Hjψi(θk)\langle\psi_i(\theta_k)|H_j|\psi_i(\theta_k)\rangle

He aquí un ejemplo de cómo se utilizaría un BaseEstimatorV1 se utilizaría:

# This is a fictional import path.
# There are currently no EstimatorV1 implementations in Qiskit.
from estimator_v1_location import EstimatorV1
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp

psi1 = RealAmplitudes(num_qubits=2, reps=2)
psi2 = RealAmplitudes(num_qubits=2, reps=3)

H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 1, 2, 3, 5, 8, 13]
theta3 = [1, 2, 3, 4, 5, 6]

estimator = EstimatorV1()

# calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
job = estimator.run([psi1], [H1], [theta1])
job_result = job.result() # It will block until the job finishes.
print(f"The primitive-job finished with result {job_result}")

# calculate [ <psi1(theta1)|H1|psi1(theta1)>,
#             <psi2(theta2)|H2|psi2(theta2)>,
#             <psi1(theta3)|H3|psi1(theta3)> ]
job2 = estimator.run([psi1, psi2, psi1], [H1, H2, H3], [theta1, theta2, theta3])
job_result = job2.result()
print(f"The primitive-job finished with result {job_result}")

Inicializar EstimatorV1.

Parámetros

options (dict | None) – Opciones por defecto.


Atributos

options

Devuelve los valores de las opciones para el estimador.

Devuelve

opciones


Métodos

run

run(circuits, observables, parameter_values=None, **run_options)

GitHub

Ejecutar el trabajo de estimación de valor(es) de expectativa.

circuits, observables, y parameter_values deben tener la misma longitud. El elemento i-ésimo del resultado es la expectativa del observable

obs = observables[i]

para el estado elaborado por

circ = circuits[i]

con parámetros acotados

values = parameter_values[i]

Parámetros

  • circuits (Sequence[QuantumCircuit] | QuantumCircuit) – uno o más objetos de circuito.
  • observables (Sequence[BaseOperator | str] | BaseOperator | str) – uno o más objetos observables. Se permiten varios formatos; es importante que str siga el formato de representación de cadena para Pauli objetos.
  • parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – parámetros concretos que deben vincularse.
  • run_options - opciones de tiempo de ejecución utilizadas para la ejecución del circuito.

Devuelve

El objeto de trabajo de EstimatorResult.

Eleva

  • TypeError - Tipo de argumento no válido.
  • ValueError - Se han dado valores de argumento no válidos.

Tipo de retorno

T

set_options

set_options(**fields)

GitHub

Establecer valores de opciones para el estimador.

Parámetros

** campos - Los campos para actualizar las opciones

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