Estimador
class Estimator(mode=None, options=None)
Bases: BaseEstimatorV2
Primitiva «Estimator» del lado del cliente para IBM Quantum Compute (antes Qiskit Runtime ).
Se trata de una implementación de Estimator basada en la primitiva Executor, que permite un procesamiento transparente por parte del cliente con ciclos de retroalimentación más rápidos y un mayor control por parte del usuario.
Ejemplo
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Create a simple circuit
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
# Define observable
observable = SparsePauliOp.from_list([("ZZ", 1), ("XX", 1)])
# Run the estimator with options
estimator = Estimator(mode=backend)
estimator.options.default_precision = 0.01
estimator.options.execution.init_qubits = True
job = estimator.run([(circuit, observable)])
result = job.result()Parámetros
-
mode (BackendV2 | Session |Batch | None) –
El modo de ejecución utilizado para realizar la consulta primitiva. Puede ser:
- A
BackendV2si estás utilizando el modo de trabajo. - A
Sessionsi estás utilizando el modo de ejecución por sesiones. - A
Batchsi estás utilizando el modo de ejecución por lotes.
Consulta la documentación de IBM Quantum Compute para obtener más información sobre los modos de ejecución.
- A
-
options (EstimatorOptions) – Opciones del estimador. Consulta
EstimatorOptionsaquí todas las opciones disponibles.
Atributos
mode
Devuelve el modo de ejecución utilizado por esta primitiva.
Devuelve
Modo utilizado por esta primitiva, o bien si None no se utiliza ningún modo de ejecución.
options
Tipo: EstimatorOptions
Las opciones de este estimador.
Métodos
backend
backend()
Devuelve el backend en el que se ejecutará la consulta primitiva.
Tipo de retorno
BackendV2
finalize_options
finalize_options()
Configurar y finalizar las opciones del Estimador.
Este método combina el nivel de resiliencia configurado con la opción proporcionada por el usuario para generar la EstimatorOptions instancia final que se utiliza en una llamada a run().
El proceso utilizado para elaborar las opciones definitivas es el siguiente:
-
Inicializar un nuevo
EstimatorOptionsobjeto con los valores por defecto determinados porresilience_level. -
Aplica las opciones especificadas por el usuario, omitiendo los campos que se hayan dejado en blanco y que
Noneestén destinados a heredar los valores predeterminados del nivel de resiliencia. -
Aplicar las dependencias obligatorias entre opciones. En concreto:
- Al activar la mitigación de mediciones, se activa automáticamente la rotación de mediciones.
- Al habilitar técnicas de mitigación basadas en puertas (como ZNE basado en PEA o PEC), se habilitan automáticamente tanto el giro de puertas como el de mediciones.
Devuelve
El objeto EstimatorOptions finalizado.
Tipo de retorno
find_unique_layers
find_unique_layers(pubs, types='gates')
Devuelve las capas empaquetadas únicas que se encuentran en los PUB especificados.
El número de types capas puede ser o "gates" "all", lo que corresponde únicamente a las capas de puerta o a todas las capas, respectivamente. La lista resultante contiene entonces una instancia de cada capa en recuadro distinta (representada como un CircuitInstruction) que aparece en los PUB de entrada.
Por ejemplo, para el aprendizaje con ruido, mantén solo las capas de puertas de qubits:
est = Estimator(mode, options)
est.options.resilience.pec_mitigation = True
layers = est.find_unique_layers(pubs, types="gates")
results = NoiseLearnerV3(mode).run(layers).result()
pauli_linblad_maps = results.to_pauli_lindblad_maps()
# Assign the learned model so PEC uses it on the next run.
est.options.resilience.layer_noise_model = zip(layers, pauli_linblad_maps)Parámetros
- pubs (Iterable[EstimatorPubLike]) – La lista de PUB para los que se va a devolver una lista de casillas únicas.
- types (Literal['gates', 'all']) – Los tipos de capas que se van a devolver. Puede ser tanto como
"gates""all".
Devuelve
Las capas en forma de caja características de un tipo concreto que se encuentran en los PUB indicados.
Tipo de retorno
list de[CircuitInstruction]
run
run(pubs, *, precision=None, dry_run=False)
Envía una solicitud a la primitiva «estimator».
En el caso de cargas de trabajo moderadas y complejas, el procesamiento del lado del cliente que se lleva a cabo para asignar las entradas del estimador a las del ejecutor puede requerir muchos recursos y provocar un retraso entre la invocación de la función y el job envío de la misma. Para comprobar el progreso de la llamada, se recomienda configurar el registro (con un nivel INFO de registro); consulta la información sobre el registro de IBM Quantum Compute para obtener más detalles.
Parámetros
- pubs (Iterable[EstimatorPubLike]) – Un iterable de objetos similares a «pub». Por ejemplo, una lista de circuitos y observables o tuplas
(circuit, observables, parameter_values). - precision (float | None) – La precisión objetivo para las estimaciones del valor esperado de cada estimador «pub» que no especifique su propia precisión. Si
None,options.default_precisionse utilizará el valor de. - dry_run (bool) – Si
True, realiza una simulación sin ejecutar el trabajo en una QPU. Este modo permite validar el trabajo, calcular el consumo y obtener metadatos sobre la sincronización de los circuitos. Los resultados devueltos conservan el esquema esperado, pero contienen datos ficticios aleatorios en lugar de resultados de medición reales o simulados. A diferencia de los backends ficticios, el procesamiento de esta simulación se lleva a cabo en el lado del servidor, por lo que es posible que la tarea no finalice de inmediato y que el acceso a esta función esté restringido.
Devuelve
El trabajo enviado.
Subidas
- ValueError – Si no se proporciona el backend.
- IBMInputValueError – Si no se proporcionan valores de rango, si no se especifica correctamente la precisión o si se detectan opciones no admitidas.
Tipo de retorno
RuntimeJobV2 | LocalRuntimeJob