Skip to main content
IBM Quantum Platform

BaseEstimatorV1

class qiskit.primitives.BaseEstimatorV1(*, options=None)

GitHub

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 ( ψi(θ)\psi_i(\theta) ): lista de circuitos quânticos (parametrizados) (uma lista de QuantumCircuit objetos).
  • observáveis ( HjH_j ): uma lista de SparsePauliOp objetos.
  • parameter values ( θk\theta_k ): 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.

ψi(θk)Hjψi(θk)\langle\psi_i(\theta_k)|H_j|\psi_i(\theta_k)\rangle

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)

GitHub

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 str sigam o formato de representação de string para Pauli objetos.
  • 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)

GitHub

Definir valores de opções para o estimador.

Parâmetros

**fields - Os campos para atualizar as opções

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.