EstimatorV2
class EstimatorV2(mode=None, options=None)
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 , - une ou plusieurs variables observables (spécifiées sous forme de
ObservablesArrayLike, y comprisPauli,SparsePauliOp,str) qui spécifient les valeurs d'espérance à estimer, dénommées , et - une collection d'ensembles de valeurs de paramètres pour lier le circuit, .
- 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
Backendsi vous utilisez le mode travail. - A
Sessionsi vous utilisez le mode d'exécution par session. - A
Batchsi vous utilisez le mode d'exécution par lots.
Pour IBM Quantum Compute documentation plus d'informations sur le, consultez le
Execution modes. - A
-
options (dict | EstimatorOptions | None) – Options de l'estimateur, voir
EstimatorOptionspour 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
run
run(pubs, *, precision=None)
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