Skip to main content
IBM Quantum Platform

QuantumProgram

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

GitHub

Bases : object

Un exécutable d'environnement d'exécution quantique.

Un programme quantique se compose d'une liste d'éléments ordonnés, dont chacun contient un circuit unique et un tableau de valeurs de paramètres associées. L'exécution d'un programme quantique échantillonnera le résultat de chaque circuit pour le nombre spécifié de shots fois, pour chaque ensemble d'arguments de circuit fourni.

Paramètres

  • shots (int) – Le nombre d'itérations pour chaque exécution du circuit.

  • items (Iterable[QuantumProgramItem] | None) – Les éléments qui composent le programme.

  • noise_maps (dict[str, PauliLindbladMap] | None) – Cartes de bruit à utiliser avec les éléments Samplex.

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

    Le niveau auquel renvoyer tous les résultats de mesure des registres classiques. Cette valeur définit le type de retour de tous les registres classiques dans tous les éléments du programme quantique et détermine si les données complexes brutes provenant des dispositifs de mesure de bas niveau sont décomposées en bits ou non. Les valeurs prises en charge sont les suivantes :

    • « classifié » : les données du registre classique sont renvoyées sous forme de tableaux de valeurs booléennes avec le

      (num_shots, creg_size)forme intrinsèque.

    • « kerneled » : les données du registre classique sont renvoyées sous la forme d'un tableau complexe contenant le

      (num_shots, creg_size)forme intrinsèque, où chaque entrée représente un point de données de QI (issu de l'application d'un noyau à la courbe de mesure) en unités arbitraires.

    • « avg_kerneled » : les données du registre classique sont renvoyées sous la forme d'un tableau complexe contenant le

      (creg_size,)forme intrinsèque, où les données sont équivalentes à celles obtenues par « kerneling », mais en plus moyennées sur l'ensemble des prises de vue.

    passthrough_data : Données imbriquées arbitraires transmises lors de l'exécution sans modification.

  • passthrough_data (DataTree | None)


Méthodes

append_circuit_item

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

GitHub

Ajoutez un nouvel CircuitItem élément à ce programme.

Paramètres

  • circuit (QuantumCircuit) – Le circuit de cet article.
  • circuit_arguments (ndarray | None) – Un tableau de valeurs réelles correspondant aux paramètres du circuit. Le dernier axe est intrinsèque et sa dimension correspond au nombre de paramètres du circuit. Les axes principaux sont extrinsèques et définissent la grille de balayage.
  • chunk_size (int | None) – Le nombre maximal de circuits liés lors de chaque exécution de la boucle de prise de vue, ou None le recours à une heuristique côté serveur pour optimiser la vitesse. Lorsqu'il n'y a pas d'exécution en session, l'algorithme côté serveur est toujours utilisé et cette valeur est ignorée.

Type de retour

Aucun

append_samplex_item

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

GitHub

Ajoutez un nouvel SamplexItem élément à ce programme.

Paramètres

  • circuit (QuantumCircuit) – Le circuit de cet article.
  • samplex (Samplex) – Un exemple de code permettant de générer des paramètres aléatoires pour le circuit.
  • samplex_arguments (dict[str, Any] | None) – Une correspondance entre les noms des arguments et leurs valeurs pour le samplex. Chaque tableau d'arguments possède des axes intrinsèques déterminés par son type (par exemple, parameter_values a une forme (n,) intrinsèque pour n paramètres). Les formes extrinsèques de tous les arguments sont diffusées ensemble.
  • shape (tuple[int, ...] | None) – Une forme à laquelle la forme extrinsèque de l'élément doit pouvoir être adaptée. Les axes pour lesquels shape dépasse la forme implicite de samplex_arguments énumèrent des randomisations indépendantes.
  • chunk_size (int | None) – Le nombre maximal de circuits liés lors de chaque exécution de la boucle de prise de vue, ou None le recours à une heuristique côté serveur pour optimiser la vitesse. Lorsqu'il n'y a pas d'exécution en session, l'algorithme côté serveur est toujours utilisé et cette valeur est ignorée.

Type de retour

Aucun

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.