Skip to main content
IBM Quantum Platform

QuantumProgram

class QuantumProgram(shots, items=None, noise_maps=None, meas_level='classified', passthrough_data=None)

GitHub

Basi: object

Un eseguibile per l'ambiente di esecuzione Quantum.

Un programma quantistico è costituito da un elenco di elementi ordinati, ciascuno dei quali contiene un singolo circuito e una matrice di valori dei parametri associati. L'esecuzione di un programma quantistico campionerà il risultato di ciascun circuito per il numero specificato di shots volte per ogni insieme di argomenti del circuito fornito.

Parametri

  • shots (int) – Il numero di cicli per ogni esecuzione del circuito.

  • items (Iterable[QuantumProgramItem] | None) – Elementi che compongono il programma.

  • noise_maps (dict[str, PauliLindbladMap] | None) – Mappe di rumore da utilizzare con gli articoli Samplex.

  • meas_level (Literal['classified', 'kerneled', 'avg_kerneled', 'both']) –

    Il livello al quale restituire tutti i risultati delle misurazioni dei registri classici. Questo valore definisce il tipo di ritorno di tutti i registri classici in tutte le istruzioni del programma quantistico e determina se i dati complessi grezzi provenienti dai dispositivi di misurazione di basso livello vengano scomposti in bit oppure no. I valori supportati sono

    • ”classified”: I dati del registro classico vengono restituiti sotto forma di array booleani con il

      (num_shots, creg_size)forma intrinseca.

    • ”kerneled”: I dati del registro classico vengono restituiti sotto forma di array complesso con il

      (num_shots, creg_size)forma intrinseca, in cui ogni voce rappresenta un valore relativo al QI (ottenuto tramite kerneling della traccia di misurazione) in unità arbitrarie.

    • ”avg_kerneled”: I dati del registro classico vengono restituiti come array complesso con il

      (creg_size,)forma intrinseca, in cui i dati sono equivalenti a quelli “kernelizzati”, ma con l’aggiunta di una media calcolata sugli scatti.

    passthrough_data: dati arbitrari annidati che vengono trasmessi durante l'esecuzione senza subire modifiche.

  • passthrough_data (DataTree | None)


Metodi

append_circuit_item

append_circuit_item(circuit, *, circuit_arguments=None, chunk_size=None)

GitHub

Aggiungi un nuovo CircuitItem elemento a questo programma.

Parametri

  • circuit (QuantumCircuit) – Lo schema di questo articolo.
  • circuit_arguments (ndarray | None) – Un array di valori reali dei parametri del circuito. L'ultimo asse è intrinseco e ha una dimensione pari al numero dei parametri del circuito. Gli assi principali sono estrinseci e definiscono la griglia di scansione.
  • chunk_size (int | None) – Il numero massimo di circuiti associati in ogni esecuzione del ciclo di acquisizione, oppure None utilizzare un algoritmo euristico lato server per ottimizzare la velocità. Quando non si esegue una sessione, viene sempre utilizzata l'euristica lato server e questo valore viene ignorato.

Tipo di restituzione

Nessuna

append_samplex_item

append_samplex_item(circuit, *, samplex, samplex_arguments=None, shape=None, chunk_size=None)

GitHub

Aggiungi un nuovo SamplexItem elemento a questo programma.

Parametri

  • circuit (QuantumCircuit) – Lo schema di questo articolo.
  • samplex (Samplex) – Un esempio di codice per generare parametri casuali per il circuito.
  • samplex_arguments (dict[str, Any] | None) – Una mappatura dai nomi degli argomenti ai valori degli argomenti per il samplex. Ogni array argomento ha assi intrinseci determinati dal proprio tipo (ad esempio, parameter_values ha una forma (n,) intrinseca per n parametri). Le forme estrinseche di tutti gli argomenti vengono trasmesse insieme.
  • shape (tuple[int, ...] | None) – Una forma alla quale la forma estrinseca dell'oggetto deve poter essere trasmessa. Gli assi in cui shape supera la forma implicita in samplex_arguments enumerano le randomizzazioni indipendenti.
  • chunk_size (int | None) – Il numero massimo di circuiti associati in ogni esecuzione del ciclo di acquisizione, oppure None utilizzare un algoritmo euristico lato server per ottimizzare la velocità. Quando non si esegue una sessione, viene sempre utilizzata l'euristica lato server e questo valore viene ignorato.

Tipo di restituzione

Nessuna

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