BaseEstimatorV1
class qiskit.primitives.BaseEstimatorV1(*, options=None)
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 ( ): lista de circuitos cuánticos (parametrizados) (una lista de
QuantumCircuitobjetos). - observables ( ): una lista de
SparsePauliOpobjetos. - valores de los parámetros ( ): 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.
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)
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
strsiga el formato de representación de cadena paraPauliobjetos. - 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)
Establecer valores de opciones para el estimador.
Parámetros
** campos - Los campos para actualizar las opciones