EstimatorV2
class EstimatorV2(mode=None, options=None)
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 , - uno o más observables (especificados como cualquier
ObservablesArrayLike, incluyendoPauli,SparsePauliOp,str) que especifican qué valores de expectativa estimar, denotados , y - una colección de conjuntos de valores de parámetros con los que vincular el circuito, .
- 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
Backendsi está utilizando el modo trabajo. - A
Sessionsi está utilizando el modo de ejecución de sesión. - A
Batchsi 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. - A
-
options (dict | EstimatorOptions | None) – Opciones del estimador, consulte
EstimatorOptionspara 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
run
run(pubs, *, precision=None)
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