EstimatorV2
class EstimatorV2(mode=None, options=None)
Bases: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2
Classe para interagir com o serviço primitivo Qiskit Runtime Estimator.
Qiskit Runtime O serviço primitivo Estimator estima os valores de expectativa de circuitos quânticos e observáveis.
O run() pode ser usado para enviar circuitos, observáveis e parâmetros para o Estimator primitivo.
Após a construção, um estimador é usado chamando seu método run() com uma lista de PUBs (Primitive Unified Blocs, blocos unificados primitivos). Cada PUB contém quatro valores que, juntos, definem uma unidade de trabalho de computação para o estimador concluir:
- um único
QuantumCircuitpossivelmente parametrizado, cujo estado final definimos como , - um ou mais observáveis (especificados como qualquer
ObservablesArrayLike, incluindoPauli,SparsePauliOp,str) que especificam quais valores de expectativa devem ser estimados, denotados , e - um conjunto de valores de parâmetros de coleção para vincular o circuito, .
- uma precisão de destino opcional para estimativas de valor de expectativa.
Aqui está um exemplo de como o estimador é usado.
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) –
O modo de execução usado para fazer a consulta primitiva. Ele pode ser:
- A
Backendse você estiver usando o modo de trabalho. - A
Sessionse você estiver usando o modo de execução de sessão. - A
Batchse estiver usando o modo de execução em lote.
Consulte a documentação Qiskit Runtime para obter mais informações sobre o
Execution modes. - A
-
options (dict | EstimatorOptions | None) – Opções do estimador, consulte
EstimatorOptionspara obter uma descrição detalhada.
Atributos
mode
Retorna o modo de execução usado por essa primitiva.
Retorna
Modo usado por essa primitiva, ou None se um modo de execução não for usado.
options
Opções de devolução.
version
Valor Padrão: 2
Métodos
backend
run
run(pubs, *, precision=None)
Envie uma solicitação para o estimador primitivo.
Parâmetros
- pubs (Iterable[EstimatorPubLike]) – Um iterável de objetos do tipo pub (bloco unificado primitivo), como tuplas
(circuit, observables)ou(circuit, observables, parameter_values). - precision (float | None) – A precisão de destino para estimativas de valor de expectativa de cada execução do Estimator Pub que não especifica sua própria precisão. Se for None, será usado o valor de precisão padrão do estimador.
Retorna
Trabalho enviado.
Aumentos
ValueError - se o valor da precisão não for estritamente maior que 0.
Tipo de retorno