Skip to main content
IBM Quantum Platform

Riferimento all'API di mitigazione degli errori della rete Tensor di Algorithmiq

  • Qiskit Functions

    Qiskit Functions — strumenti preconfigurati realizzati da organizzazioni partner — astraggono alcune parti del flusso di lavoro dello sviluppo software per semplificare e accelerare l'individuazione di algoritmi su larga scala e lo sviluppo di applicazioni. Clicca qui per visualizzare la guida relativa a questa funzione di Qiskit.


Input

Caution

Attualmente TEM presenta le seguenti limitazioni:

  • I circuiti parametrizzati non sono supportati. Se viene specificata la precisione, l'argomento None "parameters" deve essere impostato su. Questa limitazione verrà eliminata nelle versioni future.
  • Sono supportati solo i circuiti senza anelli. Questa limitazione verrà eliminata nelle versioni future.
  • I gate non unitari, come i gate di reset, di misurazione e tutte le forme di controllo del flusso, non sono supportati. Il supporto per il ripristino verrà aggiunto nelle prossime versioni.

Parametri

pubs

Tipo: Iterable[EstimatorPubLike]

Un iterabile di oggetti simili a quelli di PUB (blocchi unificati primitivi), come le tuple (circuit, observables) o (circuit, observables, parameters, precision). Per ulteriori informazioni, consultare la panoramica sui PUB. Se viene superato un circuito non ISA, verrà transpilato con impostazioni ottimali. Se un circuito ISA viene eseguito, non verrà transpilato; in questo caso, l'osservabile deve essere definito sull'intera QPU.

  • Obbligatorio: sì
  • Esempio: (circuit, observables)

backend_name

Tipo: str

Valore predefinito: Least busy backend

Nome del backend su cui eseguire la query

  • Obbligatorio: No
  • Esempio: "ibm_fez"

Opzioni

Tipo: dict

I parametri di input per questa funzione sono specificati sotto forma di dizionario annidato. Consulta l 'elenco completo delle opzioni e i relativi valori predefiniti.

  • Obbligatorio: No
  • Esempio: {"max_bond_dimension": 100}

Un elenco contenente le opzioni avanzate del TEM. Il dizionario può contenere le chiavi elencate di seguito. Se una delle opzioni non viene specificata, verrà utilizzato il valore predefinito indicato nell'elenco. I valori predefiniti sono adeguati per un utilizzo standard di TEM.

Elenco opzioni

tem_max_bond_dimension

Tipo: int

Valore predefinito: 500

La dimensione massima dei legami da utilizzare per le reti tensoriali.

tem_compression_cutoff

Tipo: float

Valore predefinito: 1e-16

Il valore di soglia da utilizzare per le reti tensoriali.

compute_shadows_bias_from_observable

Tipo: bool

Valore predefinito: False

Un flag booleano che indica se la correzione per il protocollo di misurazione delle ombre classiche debba essere adattata all'osservabile " PUB " oppure no. Se il valore è False, verrà utilizzato il protocollo delle ombre classico (probabilità uguale di misurare Z, X, Y).

shadows_bias

Tipo: np.ndarray

Valore predefinito: np.array([1 / 3, 1 / 3, 1 / 3])

Il bias da utilizzare per il protocollo di misurazione delle ombre classiche randomizzate, ovvero una matrice di tipo 1d o 2d di dimensione 3 o di forma (num_qubits, 3) rispettivamente. L'ordine è ZXY.

max_execution_time

Tipo: int or None

Valore predefinito: None

Il tempo massimo di esecuzione sulla QPU, espresso in secondi. Se il tempo di esecuzione supera tale valore, il processo verrà annullato. In tal caso None, verrà applicato il limite predefinito stabilito dal servizio Compute di IBM Quantum.

num_randomizations

Tipo: int

Valore predefinito: 32

Il numero di randomizzazioni da utilizzare per l'apprendimento del rumore e il gate twirling.

max_layers_to_learn

Tipo: int

Valore predefinito: True

Il numero massimo di livelli distinti da apprendere.

mitigate_readout_error

Tipo: bool

Valore predefinito: True

Un flag booleano che indica se applicare o meno la mitigazione degli errori di lettura.

num_readout_calibration_shots

Tipo: int

Valore predefinito: 10000

Il numero di campioni da utilizzare per ridurre l'errore di lettura.

default_precision

Tipo: float

Valore predefinito: 0.02

La precisione predefinita da utilizzare per i PUB per i quali non è specificata alcuna precisione.

seed

Tipo: int or None

Valore predefinito: None

Imposta il seme del generatore di numeri casuali per garantire la riproducibilità. In tal caso None, non impostare il seme.

shots_per_randomization

Tipo: int

Valore predefinito: 128

Il numero totale di tentativi da utilizzare per ogni ciclo di apprendimento casuale.

layer_pair_depths

Tipo: list[int]

Valore predefinito: [0, 1, 2, 4, 16, 32]

Il numero di livelli del circuito (misurato in numero di coppie) da utilizzare negli esperimenti di apprendimento.

layer_noise_model

Tipo: NoiseLearnerResult, Sequence[LayerError], or None

Valore predefinito: None

Il modello di apprendimento del rumore precalcolato derivante da un'esecuzione precedente.

private

Tipo: bool

Valore predefinito: False

Se i lavori della QPU debbano essere privati. Impostando questo valore su True si impedirà il download successivo dei dati dell'esperimento; questa opzione è consigliata per i lavori riservati.

tem_enforce_linear_circuit

Tipo: bool

Valore predefinito: False

Se imporre che il circuito abbia una topologia lineare.

Precisione

È possibile richiedere la precisione dei risultati in tre modi. È possibile specificare la precisione nell' PUB; tale impostazione verrà applicata solo a quell' PUB. In alternativa, è possibile default_precision specificare un nelle opzioni come indicato sopra. Infine, per un utilizzo avanzato, è possibile specificare il numero esatto di scatti per ogni " PUB " tramite le opzioni default_shots, e tale impostazione avrà la precedenza su qualsiasi altra opzione relativa alla precisione.

Se viene passato un valore default_precision o un valore per PUB, il numero di prove viene stimato in modo da ottenere la precisione desiderata. Ciò avviene in base ai parametri della QPU e ai tassi di errore selezionati, come segue:

  • Calcolo dell'errore per gate a più livelli (EPLG), che quantifica il rumore introdotto dagli strati di gate a due qubit. Se sono disponibili proprietà del backend, estrae il valore di precisione corrispondente; in caso contrario, utilizza un valore predefinito.
  • Contare il numero di porte a due qubit presenti nel circuito, poiché sono solitamente le principali responsabili del rumore.
  • Calcolo di un prefattore di rumore basato sul numero di porte a due qubit e sull'EPLG.
  • Utilizzando la precisione richiesta, calcola il numero di misurazioni necessarie moltiplicando il valore per il prefattore di rumore e l'inverso del quadrato della precisione.

Questo approccio garantisce che il numero di cicli sia sufficiente per ottenere la precisione desiderata, tenendo conto sia della struttura del circuito che delle caratteristiche di rumore del backend.


Output

Un Qiskit PrimitiveResults contenente il risultato corretto con il metodo TEM. Il risultato per ogni PUB viene restituito come un oggetto PubResult contenente i seguenti campi:

dati

Tipo: Databin

Un oggetto Qiskit DataBin contenente l'osservabile corretto con il metodo TEM e il suo errore standard. L' DataBin e presenta i seguenti campi:

  • evs: Il valore osservabile corretto mediante TEM.
  • stds: L'errore standard dell'osservabile corretto per il TEM.

metadati

Tipo: dict

Un dizionario contenente ulteriori risultati. Il dizionario contiene le seguenti voci:

  • "evs_non_mitigated": Il valore osservabile senza mitigazione dell'errore.
  • "stds_non_mitigated": L'errore standard del risultato senza mitigazione dell'errore.
  • "evs_mitigated_no_readout_mitigation": Il valore osservabile con mitigazione dell'errore, ma senza mitigazione dell'errore di lettura.
  • "stds_mitigated_no_readout_mitigation": L'errore standard del risultato con mitigazione dell'errore, ma senza mitigazione dell'errore di lettura.
  • "evs_non_mitigated_with_readout_mitigation": Il valore osservabile senza mitigazione degli errori, ma con mitigazione degli errori di lettura.
  • "stds_non_mitigated_with_readout_mitigation": L'errore standard del risultato senza mitigazione degli errori, ma con mitigazione degli errori di lettura.
  • "resource_usage": Un dizionario contenente le risorse temporali utilizzate dal TEM.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.