Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

Bases : BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2

EstimatorV2 primitive pour IBM Quantum Compute (anciennement Qiskit Runtime ).

IBM Quantum Compute Le service « Estimator primitive » estime les valeurs attendues des circuits quantiques et des observables.

La primitive run() peut être utilisée pour soumettre des circuits, des observables et des paramètres à la primitive Estimator.

Après la construction, un estimateur est utilisé en appelant sa méthode run() avec une liste de PUBs (Primitive Unified Blocs). Chaque site PUB contient quatre valeurs qui, ensemble, définissent une unité de calcul du travail à effectuer par l'estimateur :

  • un seul QuantumCircuitéventuellement paramétrée, dont nous définissons l'état final comme ψ(θ)\psi(\theta),
  • une ou plusieurs variables observables (spécifiées sous forme de ObservablesArrayLike, y compris Pauli, SparsePauliOp, str) qui spécifient les valeurs d'espérance à estimer, dénommées HjH_j, et
  • une collection d'ensembles de valeurs de paramètres pour lier le circuit, θk\theta_k.
  • une précision cible facultative pour les estimations de la valeur de l'espérance.

Voici un exemple d'utilisation de l'estimateur.

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}")

Paramètres

  • mode (BackendV2 | Session |Batch | str | None) –

    Le mode d'exécution utilisé pour effectuer la requête primitive. Les valeurs peuvent être les suivantes :

    • A Backend si vous utilisez le mode travail.
    • A Session si vous utilisez le mode d'exécution par session.
    • A Batch si vous utilisez le mode d'exécution par lots.

    Pour IBM Quantum Compute documentation plus d'informations sur le, consultez le Execution modes.

  • options (dict | EstimatorOptions | None) – Options de l'estimateur, voir EstimatorOptions pour une description détaillée.


Attributs

mode

Renvoie le mode d'exécution utilisé par cette primitive.

Retours

Mode utilisé par cette primitive, ou None si aucun mode d'exécution n'est utilisé.

options

Options de retour.

version

Valeur par défaut : 2


Méthodes

backend

backend()

GitHub

Retourne le backend sur lequel la requête primitive sera exécutée.

Type de retour

BackendV2

run

run(pubs, *, precision=None)

GitHub

Soumettre une demande à l'estimateur primitif.

Paramètres

  • pubs (Iterable[EstimatorPubLike]) – Une collection d'objets de type « pub » (blocs unifiés primitifs), tels que des tuples (circuit, observables) ou (circuit, observables, parameter_values).
  • precision (float | None) – La précision cible pour les estimations de la valeur de l'espérance de chaque exécution Estimator Pub qui ne spécifie pas sa propre précision. Si None, la valeur de précision par défaut de l'estimateur sera utilisée.

Retours

Emploi soumis.

Augmentations

ValueError - si la valeur de précision n'est pas strictement supérieure à 0.

Type de retour

RuntimeJobV2

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.