Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

Basi: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2

EstimatorV2 primitiva per IBM Quantum Compute (precedentemente Qiskit Runtime ).

IBM Quantum Compute Il servizio "Estimator primitive" calcola i valori attesi dei circuiti quantistici e degli osservabili.

Il run() può essere usato per inviare circuiti, osservabili e parametri alla primitiva Estimator.

Dopo la costruzione, uno stimatore viene utilizzato chiamando il suo metodo run() con un elenco di PUB (Blocchi primitivi unificati). Ogni PUB contiene quattro valori che, insieme, definiscono un'unità di calcolo da completare per lo stimatore:

  • un singolo QuantumCircuit, eventualmente parametrizzato, il cui stato finale è definito come ψ(θ)\psi(\theta),
  • una o più osservabili (specificate come ObservablesArrayLike, tra cui Pauli, SparsePauliOp, str) che specificano quali valori di aspettativa stimare, indicate con HjH_j, e
  • un insieme di valori di parametri con cui vincolare il circuito, θk\theta_k.
  • un obiettivo di precisione opzionale per le stime del valore di aspettativa.

Ecco un esempio di utilizzo dello stimatore.

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

Parametri

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

    La modalità di esecuzione utilizzata per la query primitiva. Può essere:

    • A Backend se si utilizza la modalità lavoro.
    • A Session se si utilizza la modalità di esecuzione della sessione.
    • A Batch se si utilizza la modalità di esecuzione batch.

    Per ulteriori informazioni su Execution modes., consultare la documentazione di IBM Quantum Compute.

  • options (dict | EstimatorOptions | None) – Opzioni dello strumento di stima, vedere EstimatorOptions per una descrizione dettagliata.


Attributi

mode

Restituisce la modalità di esecuzione utilizzata da questa primitiva.

Risultati

Modalità utilizzata da questa primitiva, oppure None se non viene utilizzata una modalità di esecuzione.

options

Opzioni di reso.

version

Valore predefinito: 2


Metodi

backend

backend()

GitHub

Restituisce il backend su cui verrà eseguita la query primitiva.

Tipo di restituzione

BackendV2

run

run(pubs, *, precision=None)

GitHub

Invia una richiesta allo stimatore primitivo.

Parametri

  • pubs (Iterable[EstimatorPubLike]) – Un iterabile di oggetti di tipo "pub" (blocchi unificati primitivi), come le tuple (circuit, observables) o (circuit, observables, parameter_values).
  • precision (float | None) – La precisione target per le stime del valore di aspettativa di ciascun Run Estimator Pub che non specifica la propria precisione. Se Nessuno, verrà utilizzato il valore di precisione predefinito dello stimatore.

Risultati

Lavoro presentato.

Aumenti

ValueError - se il valore di precisione non è strettamente superiore a 0.

Tipo di restituzione

RuntimeJobV2

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.