EstimatorV2
class EstimatorV2(mode=None, options=None)
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 , - una o più osservabili (specificate come
ObservablesArrayLike, tra cuiPauli,SparsePauliOp,str) che specificano quali valori di aspettativa stimare, indicate con , e - un insieme di valori di parametri con cui vincolare il circuito, .
- 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
Backendse si utilizza la modalità lavoro. - A
Sessionse si utilizza la modalità di esecuzione della sessione. - A
Batchse si utilizza la modalità di esecuzione batch.
Per ulteriori informazioni su
Execution modes., consultare la documentazione di IBM Quantum Compute. - A
-
options (dict | EstimatorOptions | None) – Opzioni dello strumento di stima, vedere
EstimatorOptionsper 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
run
run(pubs, *, precision=None)
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