Skip to main content
IBM Quantum Platform

Stimatore

class Estimator(mode=None, options=None)

GitHub

Basi: BaseEstimatorV2

Primitiva di calcolo lato client per IBM Quantum Compute (precedentemente Qiskit Runtime ).

Si tratta di un'implementazione di Estimator basata sulla primitiva Executor, che consente un'elaborazione trasparente lato client con cicli di feedback più rapidi e un maggiore controllo da parte dell'utente.

Esempio

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Create a simple circuit
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)

# Define observable
observable = SparsePauliOp.from_list([("ZZ", 1), ("XX", 1)])

# Run the estimator with options
estimator = Estimator(mode=backend)
estimator.options.default_precision = 0.01
estimator.options.execution.init_qubits = True
job = estimator.run([(circuit, observable)])
result = job.result()

Parametri


Attributi

mode

Restituisce la modalità di esecuzione utilizzata da questa primitiva.

Risultati

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

options

Tipo: EstimatorOptions

Le opzioni di questo strumento di stima.


Metodi

backend

backend()

GitHub

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

Tipo di restituzione

BackendV2

finalize_options

finalize_options()

GitHub

Configurare e definire le opzioni di Estimator.

Questo metodo combina il livello di resilienza configurato con l'opzione specificata dall'utente per generare l'istanza EstimatorOptions finale utilizzata all'interno di una chiamata a run().

Il processo utilizzato per elaborare le opzioni definitive è il seguente:

  1. Inizializza un nuovo EstimatorOptions oggetto con i valori predefiniti determinati da resilience_level.

  2. Applicare le opzioni specificate dall'utente, tralasciando i campi lasciati vuoti None che sono destinati a ereditare i valori predefiniti relativi al livello di resilienza.

  3. Applicare le dipendenze obbligatorie tra le opzioni. In particolare:

    • L'attivazione della mitigazione delle misurazioni abilita automaticamente la rotazione delle misurazioni.
    • L'attivazione delle tecniche di mitigazione basate sui gate (come ZNE basato su PEA o PEC) abilita automaticamente sia il twirling dei gate che quello delle misurazioni.

Risultati

L'oggetto EstimatorOptions definitivo.

Tipo di restituzione

EstimatorOptions

find_unique_layers

find_unique_layers(pubs, types='gates')

GitHub

Restituisce i livelli incorniciati univoci presenti nei PUB specificati.

Il numero di types livelli può essere pari a o "gates" "all", corrispondente rispettivamente solo ai livelli di gate o a tutti i livelli. L'elenco restituito contiene quindi un'istanza di ciascun livello incapsulato distinto (rappresentato come un CircuitInstruction) presente nei PUB di input.

Ad esempio, per l'apprendimento del rumore, mantenere solo gli strati di gate dei qubit:

est = Estimator(mode, options)
est.options.resilience.pec_mitigation = True

layers = est.find_unique_layers(pubs, types="gates")

results = NoiseLearnerV3(mode).run(layers).result()
pauli_linblad_maps = results.to_pauli_lindblad_maps()

# Assign the learned model so PEC uses it on the next run.
est.options.resilience.layer_noise_model = zip(layers, pauli_linblad_maps)

Parametri

  • pubs (Iterable[EstimatorPubLike]) – L'elenco dei PUB per i quali restituire un elenco di caselle univoche.
  • types (Literal['gates', 'all']) – I tipi di livelli da restituire. Può essere sia che "gates" "all".

Risultati

Gli strati a forma di scatola, caratteristici di un determinato tipo, riscontrati nei PUB indicati.

Tipo di restituzione

elenco[CircuitInstruction]

run

run(pubs, *, precision=None, dry_run=False)

GitHub

Invia una richiesta alla primitiva "estimator".

Per carichi di lavoro moderati e complessi, l'elaborazione lato client necessaria per mappare gli input dello stimatore agli input dell'esecutore può richiedere molte risorse e causare un ritardo tra l'invocazione della funzione e l'invio job della stessa. Per verificare lo stato di avanzamento della chiamata, si consiglia di configurare la registrazione (con un livello INFO ) – per ulteriori informazioni, consultare la documentazione all'indirizzo IBM Quantum Compute.

Parametri

  • pubs (Iterable[EstimatorPubLike]) – Un iterabile di oggetti simili a pub. Ad esempio, un elenco di circuiti e grandezze osservabili o tuple (circuit, observables, parameter_values).
  • precision (float | None) – La precisione target per le stime del valore atteso di ciascun stimatore pub che non specifica la propria precisione. In tal caso None, options.default_precision verrà utilizzato il valore proveniente da.
  • dry_run (bool) – Se True, esegue una simulazione senza eseguire il processo su una QPU. Questa modalità può essere utilizzata per verificare la validità del processo, stimare i consumi e recuperare i metadati relativi alla temporizzazione dei circuiti. I risultati restituiti mantengono lo schema previsto, ma contengono dati fittizi generati in modo casuale anziché risultati di misurazione reali o simulati. A differenza dei backend fittizi, l'elaborazione di questa simulazione avviene lato server, pertanto l'operazione potrebbe non concludersi immediatamente e l'accesso a questa funzionalità potrebbe essere limitato.

Risultati

Il lavoro inviato.

Aumenti

  • ValueError – Se il backend non è disponibile.
  • IBMInputValueError – Se non vengono forniti valori di intervallo, se la precisione non è specificata correttamente o se vengono rilevate opzioni non supportate.

Tipo di restituzione

RuntimeJobV2 | LocalRuntimeJob

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