BaseEstimatorV1
class qiskit.primitives.BaseEstimatorV1(*, options=None)
Bases: BasePrimitiveV1, Generic[T]
Classe básica para implementações de EstimatorV1 .
Observe que o estimador de referência no Qiskit segue as especificações da interface EstimatorV2 .
Um estimador calcula os valores de expectativa para o circuito quântico fornecido e as combinações observáveis.
As implementações de BaseEstimatorV1 devem definir seu próprio método BaseEstimatorV1._run() , que será chamado pelo site público qiskit.primitives.BaseEstimatorV1.run()que recebe as seguintes entradas:
- circuitos quânticos ( ): lista de circuitos quânticos (parametrizados) (uma lista de
QuantumCircuitobjetos). - observáveis ( ): uma lista de
SparsePauliOpobjetos. - parameter values ( ): lista de conjuntos de valores a serem vinculados aos parâmetros dos circuitos quânticos (lista de lista de float).
O método retorna um JobV1 objeto. A chamada qiskit.providers.JobV1.result() retorna uma lista de valores esperados, além de metadados opcionais, como intervalos de confiança para a estimativa.
Aqui está um exemplo de como um BaseEstimatorV1 seria usado:
# 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) – Opções padrão.
Atributos
options
Retorna valores de opções para o estimador.
Retorna
opções
Métodos
run
run(circuits, observables, parameter_values=None, **run_options)
Executar o trabalho de estimativa do(s) valor(es) de expectativa.
circuits, observables e parameter_values devem ter o mesmo comprimento. O i-ésimo elemento do resultado é a expectativa do observável
obs = observables[i]para o estado preparado por
circ = circuits[i]com parâmetros vinculados
values = parameter_values[i]Parâmetros
- circuits (Sequence[QuantumCircuit] | QuantumCircuit) – um ou mais objetos de circuito.
- observables (Sequence[BaseOperator | str] | BaseOperator | str) – um ou mais objetos observáveis. Vários formatos são permitidos; é importante que
strsigam o formato de representação de string paraPauliobjetos. - parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – parâmetros concretos a serem vinculados.
- run_options - opções de tempo de execução usadas para a execução do circuito.
Retorna
O objeto de trabalho de EstimatorResult.
Aumentos
- TypeError - Tipo de argumento inválido fornecido.
- ValueError - Valores de argumento inválidos fornecidos.
Tipo de retorno
T
set_options
set_options(**fields)
Definir valores de opções para o estimador.
Parâmetros
**fields - Os campos para atualizar as opções