IBM Quantum Composer
Qu'est-ce que c'est ?
IBM Quantum® Composer est un outil graphique de programmation quantique qui te permet de glisser et déposer des opérations pour construire des circuits quantiques et les exécuter sur du matériel quantique.
Qu'est-ce qu'il peut faire ?
Visualiser les états des qubits
Vois comment les modifications de ton circuit affectent l'état des qubits, affichés comme une q-sphere interactive ou des histogrammes montrant les probabilités de mesure ou les simulations du vecteur d'état.
Exécuter sur du matériel quantique
Exécute tes circuits sur du vrai matériel quantique pour comprendre les effets du bruit du dispositif.
Générer du code automatiquement
Au lieu d'écrire du code à la main, génère automatiquement du code OpenQASM ou Python qui se comporte de la même façon que le circuit que tu as créé avec le Composer.
Visite guidée de l'interface
IBM Quantum Composer dispose d'un ensemble d'outils personnalisable qui te permet de construire, visualiser et exécuter des circuits quantiques sur des unités de traitement quantique (QPUs). Utilise le menu "More options" sur chaque fenêtre pour accéder à des outils et actions supplémentaires.
-
Catalogue d'opérations - Ce sont les éléments constitutifs des circuits quantiques. Glisse et dépose ces portes et autres opérations sur l'éditeur graphique de circuit. Différents types de portes sont groupés par couleur. Par exemple, les portes classiques sont bleu foncé, les portes de phase sont bleu clair et les opérations non unitaires sont grises.
Pour en savoir plus sur les portes et opérations disponibles, clique avec le bouton droit sur une opération et sélectionne Info pour lire sa définition.
-
Éditeur de code - Utilise le menu View pour ouvrir ou fermer l'éditeur de code, qui te permet de voir le code OpenQASM ou Qiskit pour le circuit. Tu peux modifier le code OpenQASM ; le code Qiskit est en lecture seule.
-
Éditeur graphique de circuit - C'est ici que tu construis un circuit. Glisse des portes et autres opérations sur les "fils" horizontaux de qubit qui composent ton registre quantique.
Pour supprimer une porte d'un fil, sélectionne la porte et clique sur l'icône de corbeille.
Pour modifier les paramètres et les paramètres des portes qui le permettent, sélectionne la porte dans l'éditeur graphique et clique sur Edit.
-
Barre d'outils - Accède aux outils les plus utilisés pour annuler et rétablir les actions, modifier l'alignement des portes et basculer en mode inspection. Avec le mode inspection, tu vois une vue étape par étape de l'état des qubits au fur et à mesure que ton calcul de circuit évolue. Pour en savoir plus, consulte Inspecte ton circuit, étape par étape.
-
Disques de phase - La phase du vecteur d'état du qubit dans le plan complexe est donnée par la ligne qui s'étend du centre du diagramme au bord du disque gris (qui tourne dans le sens inverse des aiguilles d'une montre autour du point central).
Utilise le menu View pour afficher ou masquer les disques de phase.
-
Visualisations - Les visualisations caractérisent ton circuit au fur et à mesure que tu le construis. Elles utilisent un simulateur de vecteur d'état à un coup, qui est différent de la QPU spécifiée dans les paramètres "Run circuit". Note que les visualisations ignorent les opérations de mesure que tu ajoutes. Connecte-toi et clique sur Run circuit pour obtenir les résultats du backend spécifié.
En savoir plus dans la section Visualisations.
Construire, modifier et inspecter des circuits quantiques
Si tu veux continuer à travailler avec un circuit plus tard, assure-toi de télécharger ton fichier de circuit et de le stocker localement avant de quitter ta session actuelle du Composer. Utilise le lien "Save file" dans le coin supérieur droit, ou va au menu File et choisis "Save file". Lorsque tu es prêt à rédémarrer avec le circuit, va au menu File et choisis "Upload .qasm file", puis navigue vers ton fichier de circuit sur ton lecteur local et clique sur Open.
1. Ouvre IBM Quantum Composer
- (Facultatif) Si tu n'es pas actuellement connecté à IBM Quantum, sélectionne Sign in dans le coin supérieur droit. Ensuite, tu peux soit te connecter, soit Create an IBM Cloud account.
Si tu ne te connectes pas, les visualisations affichent automatiquement les résultats simulés pour jusqu'à quatre qubits. Si tu veux exécuter ton circuit sur un ordinateur quantique, ou si tu veux visualiser un circuit avec plus de quatre qubits, tu dois te connecter.
-
Ouvre IBM Quantum Composer en cliquant sur le lien de la page de navigation Learning. L'espace de travail affiche un circuit vide sans titre. Tu peux créer un nouveau circuit ou télécharger un fichier .qasm pour continuer à travailler avec un circuit que tu as déjà créé.
-
Nomme ton circuit en cliquant sur les mots Untitled circuit et en tapant un nom pour ton circuit. Clique sur la coche pour enregistrer le nom.
-
(Facultatif) Personnalise ton espace de travail :
- Utilise le menu View pour passer du thème par défaut à un thème monochrome. Tu peux aussi sélectionner les panneaux à inclure dans ton espace de travail, puis utiliser le menu dans le coin droit de tout panneau pour accéder à d'autres options de personnalisation. Les options pour afficher ou masquer les disques de phase, choisir l'alignement des qubits sur ton circuit et réinitialiser l'espace de travail par défaut sont également dans le menu View.
- Bascule entre les thèmes d'espace de travail sombre et clair dans le coin inférieur droit du pied de page.
Pour construire un circuit, tu peux soit glisser et déposer des opérations, soit entrer du code OpenQASM dans l'éditeur de code.
2. Construis ton circuit avec glisse et dépose
Catalogue d'opérations
Glisse et dépose les opérations du catalogue d'opérations sur les registres quantiques et classiques. Clique sur l'icône de recherche et entre un terme dans la barre de recherche pour trouver rapidement une opération.
Réduis et développe le catalogue d'opérations en cliquant sur l'icône dans le coin supérieur droit du panneau des opérations. Clique sur l'icône à côté pour basculer entre la vue de grille et la vue de liste du catalogue.
Clique avec le bouton droit sur une icône d'opération et sélectionne Info pour voir la définition d'une opération, ainsi que sa référence QASM.
Pour annuler ou rétablir, utilise les flèches courbes dans la barre d'outils.
Alignement
Choisis l'alignement Freeform pour placer des opérations n'importe où sur le circuit. Pour une vue plus compacte de ton circuit, choisis l'alignement Left. Pour voir l'ordre dans lequel les opérations seront exécutées, choisis l'alignement Layers, qui appliquera l'alignement gauche et ajoutera des séparateurs de colonnes qui indiquent l'ordre d'exécution, de gauche à droite et de haut en bas.
Une fois les opérations placées sur ton circuit, tu peux continuer à les glisser et les déposer à de nouvelles positions.
Copier et coller
Clique sur une opération et utilise les icônes du menu contextuel pour la copier et la coller.
Sélectionner plusieurs opérations
Tu peux sélectionner plusieurs opérations pour les copier et les coller, les glisser vers un nouveau lieu ou les regrouper dans une opération unitaire personnalisée qui s'affiche dans ton catalogue d'opérations et fonctionne comme une seule porte.
Pour sélectionner plus d'une opération, place ton curseur juste à l'extérieur de l'une des opérations, puis clique et glisse dans la zone pour sélectionner. Maj-clique sur les opérations individuelles pour les sélectionner ou les désélectionner. Une ligne pointillée délimite l'ensemble des opérations que tu sélectionnes, et chaque opération qui fait réellement partie de la sélection est entourée d'un cadre bleu.
Par exemple, dans l'image suivante, la porte Hadamard sur q1 et la porte CX sont sélectionnées. La porte Hadamard sur q0 n'est pas sélectionnée.
Sélectionne Copy dans le menu contextuel pour copier le groupe.
Pour coller le groupe d'opérations, clique avec le bouton droit sur le circuit et sélectionne Paste.
Construis une opération personnalisée à l'aide de la fonction de groupe
Pour regrouper plusieurs opérations et les enregistrer comme une opération personnalisée, sélectionne d'abord les opérations comme décrit précédemment, puis sélectionne Group dans le menu contextuel. On te demandera de nommer l'opération personnalisée ou tu peux accepter le nom par défaut. Clique sur OK et l'opération personnalisée sera représentée par une seule boîte, à la fois dans ton circuit et dans le catalogue d'opérations.
Tu peux maintenant glisser et déposer la nouvelle opération n'importe où dans ton circuit. Note que l'opération est enregistrée sur ce circuit mais n'apparaît pas dans le catalogue d'opérations pour les autres circuits.
Tu peux aussi construire une opération personnalisée directement dans l'éditeur de code OpenQASM ; consulte Crée une opération personnalisée en OpenQASM pour plus d'informations.
Dégrouper une opération personnalisée ou prédéfinie
Pour dégrouper les portes dans une opération personnalisée ou prédéfinie, clique sur l'opération dans le Composer et sélectionne Ungroup dans le menu contextuel. Tu peux maintenant déplacer les opérations séparées individuellement. Lorsque tu dégroupes une opération, chaque élément du groupe ancien s'exécute indépendamment, ce qui peut signifier qu'ils s'exécutent dans un ordre différent de celui où ils étaient groupés ensemble.
Développe la définition d'une opération
Pour voir les opérations qui constituent une opération personnalisée ou prédéfinie sans la dégrouper, clique sur Expand definition dans le menu contextuel pour voir les portes qui la définissent. Clique à nouveau sur l'icône pour réduire la définition.
Renomme ou supprime une opération personnalisée
Pour renommer ou supprimer une opération personnalisée, clique avec le bouton droit sur l'opération dans le catalogue d'opérations et sélectionne Rename ou Delete. Supprimer une opération personnalisée du catalogue d'opérations supprime également toutes ses instances sur ton circuit.
Supprimer une opération personnalisée du circuit lui-même ne la supprime pas du catalogue d'opérations ; tu peux seulement supprimer une opération personnalisée du catalogue en cliquant avec le bouton droit et en sélectionnant Delete.
Ajoute ou supprime des registres
Pour ajouter ou supprimer des registres quantiques ou classiques, clique sur Edit → Manage registers. Tu peux augmenter ou diminuer le nombre de qubits ou de bits dans ton circuit et renommer les registres. Clique sur Ok pour appliquer les modifications. Tu peux aussi cliquer simplement sur le nom du registre (par exemple, q[0]) et utiliser les options du menu contextuel pour ajouter ou supprimer rapidement des registres ou des qubits.
Ajoute un conditionnel
Pour ajouter un conditionnel à une porte, glisse l'opération if sur la porte et définis les paramètres dans le panneau Edit operation qui s'ouvre automatiquement. Tu peux aussi double-cliquer sur une porte pour accéder au panneau Edit operation et définir les paramètres du conditionnel de cette façon.
Ajoute un modificateur de contrôle
Un modificateur de contrôle donne une porte dont l'opération originale dépend maintenant de l'état du qubit de contrôle. Pour plus de détails, clique avec le bouton droit sur le symbole du modificateur de contrôle dans le catalogue d'opérations, puis clique sur Info.
Glisse le modificateur de contrôle sur une porte pour lui ajouter un contrôle. Un point apparaît sur le qubit de contrôle et une ligne le relie au qubit cible. Pour modifier le qubit de contrôle ou la cible, clique sur la porte et sélectionne l'icône Edit operation (ou double-clique sur la porte) pour ouvrir le panneau Edit operation, puis spécifie tes paramètres. À partir du panneau Edit operation, tu peux aussi supprimer un contrôle d'un qubit en cliquant sur le x à côté du nom du qubit.
Visualise avec les disques de phase tout au long de ton circuit
Pour visualiser l'état de tous les qubits à n'importe quel point de ton circuit, glisse l'icône du disque de phase du catalogue d'opérations et place-le n'importe où dans ton circuit. Une colonne d'opérations de barrière et une colonne de disques de phase sont ajoutées (une opération de barrière et un disque de phase par qubit). Passe ta souris sur chaque disque de phase pour lire l'état du qubit à ce stade du circuit. Note que l'ajout des disques de phase ne modifie pas ton circuit ; ce ne sont que des outils de visualisation.
En savoir plus sur la visualisation du disque de phase ici.
Exporte une image du circuit
Pour exporter une image de ton circuit, sélectionne File → Export circuit image. La fenêtre Export options s'ouvre, où tu peux choisir un thème (clair, sombre, blanc sur noir ou noir sur blanc), un format (.svg ou .png) et si tu veux appliquer une enveloppe de ligne. Une fois que tu as choisi tes options, clique sur Export.
3. Construis ton circuit avec le code OpenQASM
IBM Quantum Composer prend actuellement en charge OpenQASM 2.0.
- Pour ouvrir l'éditeur de code, clique sur View → Panels → Code Editor.
- Consulte le Glossaire des opérations du Composer pour les références OpenQASM des portes et autres opérations.
- Tu peux définir tes propres opérations personnalisées ; consulte Crée une opération personnalisée en OpenQASM.
- Pour plus d'informations sur l'utilisation du langage OpenQASM, y compris des exemples de lignes de code, consulte le guide Introduction à OpenQASM, ou lis l'article de recherche original, Open Quantum Assembly Language. Le tableau des déclarations du langage OpenQASM de l'article est reproduit ci-dessous. La grammaire OpenQASM se trouve dans l'Appendice A de l'article.
| Déclaration | Description | Exemple |
|---|---|---|
OPENQASM 2.0; | Dénote un fichier au format OpenQASM (voir [a]) | OPENQASM 2.0; |
qreg name[size]; | Déclare un registre nommé de qubits | qreg q[5]; |
creg name[size]; | Déclare un registre nommé de bits | creg c[5]; |
include "filename"; | Ouvre et analyse un autre fichier source | include "qelib1.inc"; |
gate name(params) qargs | Déclare une porte unitaire | (voir le texte de l'article) |
opaque name(params) qargs; | Déclare une porte opaque | (voir le texte de l'article) |
// comment text | Commente une ligne de texte | // oops! |
U(theta,phi,lambda) qubit|qreg; | Applique une ou plusieurs portes monoqubit intégrées (voir [b]) | U(pi/2,2*pi/3,0) q[0]; |
CX qubit|qreg,qubit|qreg; | Applique une ou plusieurs portes CNOT intégrées | CX q[0],q[1]; |
measure qubit|qreg -> bit|creg; | Effectue une ou plusieurs mesure(s) en base | measure q -> c; |
reset qubit|qreg; | Prépare un ou plusieurs qubit(s) dans l'état | reset q[0]; |
gatename(params) qargs; | Applique une porte unitaire définie par l'utilisateur | crz(pi/2) q[1],q[0]; |
if(creg==int) qop; | Applique conditionnellement une opération quantique | if(c==5) CX q[0],q[1]; |
barrier qargs; | Empêche les transformations à travers cette ligne source | barrier q[0],q[1]; |
[a] Cela doit apparaître comme la première ligne sans commentaire du fichier.
[b] Les paramètres theta, phi et lambda sont donnés par des expressions de paramètre ; pour plus d'informations, consulte la page 5 de l'article et l'Appendice A.
Crée une opération personnalisée en OpenQASM
Tu peux définir de nouvelles opérations unitaires dans l'éditeur de code (consulte la figure ci-dessous pour un exemple). Les opérations sont appliquées en utilisant l'instruction name(params) qargs; tout comme les opérations intégrées. Les parenthèses sont optionnelles s'il n'y a pas de paramètres.
Pour définir une opération personnalisée, entre-la dans l'éditeur de code OpenQASM en utilisant ce format : gatename(params) qargs;. Si tu cliques sur +Add dans la liste des opérations, on te demandera d'entrer un nom pour ton opération personnalisée, que tu peux ensuite construire dans l'éditeur de code.
Une fois que tu as défini ton opération personnalisée, glisse-la sur l'éditeur graphique et utilise l'icône de modification pour affiner les paramètres.
| Exemple d'une opération personnalisée | |
|---|---|
| Les portes à inclure dans l'opération personnalisée : | |
| Le code pour la nouvelle opération : | |
| La nouvelle opération dans l'éditeur graphique : |
4. Inspecte ton circuit, étape par étape
Le mode inspection démystifie le fonctionnement interne des circuits que tu crées. Il progresse à travers une simulation de ton circuit, une couche à la fois, afin que tu puisses voir l'état des qubits au fur et à mesure que le calcul évolue.
-
Dans le menu View, sélectionne les panneaux des visualisations que tu veux utiliser.
-
Clique sur le bouton bascule Inspect dans la barre d'outils. Note qu'une fois le mode inspection activé, tu ne peux pas ajouter d'autres opérations jusqu'à ce que tu le désactives.
-
Si tu as construit ton circuit avec l'alignement Freeform activé, note que le mode inspection active automatiquement l'alignement Left.
-
Pour progresser étape par étape à travers les visualisations des composants de ton circuit, utilise les boutons d'avance et de rembobinage.
-
Pour inspecter seulement certaines opérations, clique sur les opérations que tu veux inspecter, et une superposition colorée apparaît sur chacune, indiquant qu'elles seront incluses lorsque tu exécutes en mode inspection. Pour désélectionner une opération, clique à nouveau dessus, et la superposition disparaît.
-
Pour en savoir plus sur l'interprétation des visualisations, consulte le sujet Visualisations.
-
Pour quitter le mode inspection et revenir à l'édition de ton circuit, clique sur le bouton bascule Inspect dans la barre d'outils.
Le simulateur crée de l'aléatoire en générant des résultats basés sur une graine. La graine est la valeur initiale introduite dans l'algorithme qui génère des nombres pseudo-aléatoires. Tu peux voir le nombre de graine en sélectionnant "Visualizations seed" dans le menu Edit. Tu peux aussi définir la graine toi-même en modifiant la valeur dans la boîte.
Exécute les circuits et vois les résultats
Suis les étapes ci-dessous pour exécuter des circuits quantiques sur des QPUs et voir les résultats.
Choisis tes paramètres de travail
Clique sur Run circuit dans le coin supérieur droit. Dans la fenêtre qui s'ouvre, sélectionne une QPU disponible. Tu peux aussi choisir une instance, qui est associée à un plan (tel que les plans Open, Flex ou Premium). L'instance que tu choisis affecte les QPUs qui sont disponibles pour toi. Clique sur le lien "View details" dans le tableau des QPUs pour voir plus d'informations sur chaque QPU.
Ensuite, tu peux définir le nombre de shots (exécutions) de ton circuit que le backend effectuera.
Tu peux aussi choisir de nommer le travail et d'ajouter des balises dans ce panneau. Cela ne changera pas le nom du circuit. Une balise "Composer" préremplie facilite le filtrage de ton tableau Workloads par les jobs du Composer. Tu peux supprimer cette balise.
Lorsque tu exécutes un circuit, il est automatiquement envoyé à la QPU la moins occupée, sauf si tu spécifies une QPU dans les paramètres Run. Si tu exécutes le même circuit à nouveau, la fenêtre de sélection de la QPU par défaut au choix de ta précédente.
Clique sur "Run on (nom de la QPU)"
Tu peux voir la progression du travail en cliquant sur le bouton "View jobs" dans le coin supérieur droit, qui ouvrira la page Workloads dans IBM Quantum Platform.
Vois les résultats
Une fois ton travail terminé, les détails sont mis à jour dans le tableau Workloads dans IBM Quantum Platform.
La page des résultats des jobs affiche les détails de l'exécution, les diagrammes du circuit original et du circuit transpilé, un histogramme des résultats et les onglets OpenQASM et Qiskit pour voir les circuits original et transpilé en OpenQASM ou Qiskit.
Tu peux télécharger les circuits et l'histogramme en cliquant sur le menu dans le coin supérieur droit de chaque diagramme, puis en sélectionnant un format pour le téléchargement (PNG, PDF ou SVG ; en outre, tu peux exporter l'histogramme en tant que fichier CSV). Tu peux ouvrir les circuits OpenQASM directement dans le Composer.
Visualisations
Les visualisations en direct dans IBM Quantum Composer te montrent différentes vues de la façon dont les circuits quantiques affectent l'état d'une collection de qubits. Chaque type de visualisation en direct est expliqué en détail ci-dessous.
Les visualisations en direct proviennent d'un simulateur de vecteur d'état à un coup, qui est différent de la QPU spécifiée dans les paramètres Run, qui peut avoir plusieurs shots. Le simulateur crée de l'aléatoire en générant des résultats basés sur une graine. La graine est la valeur initiale introduite dans l'algorithme qui génère des nombres pseudo-aléatoires. Tu peux voir le nombre de graine en sélectionnant "Visualizations seed" dans le menu Edit. Tu peux aussi définir la graine toi-même en modifiant la valeur dans la boîte.
Vois les visualisations
Les visualisations en direct sont affichées dans des fenêtres au bas de l'espace de travail du Composer (sauf le disque de phase, qui apparaît à la fin de chaque fil de qubit). Tu peux choisir n'importe quelle combinaison de visualisations de vecteur d'état, de probabilités et de q-sphere pour apparaître au bas de l'espace de travail. Sélectionne ou désélectionne les visualisations dans le menu View.
Télécharge les visualisations
Télécharge l'une des visualisations au bas de l'espace de travail du Composer en cliquant sur le menu "More options" dans la fenêtre de visualisation. Tu peux télécharger les visualisations sous forme de SVG, de PNG ou de CSV des données sous-jacentes. Tu peux aussi télécharger les images de visualisation des probabilités de mesure et des histogrammes du vecteur d'état au format PDF.
Disque de phase
Un état de qubit unique peut être représenté comme
où est la probabilité que le qubit soit dans l'état , et est la phase quantique. est fortement analogue à un bit probabiliste classique. Pour , le qubit est dans l'état , pour le qubit est dans l'état , et pour le qubit est un mélange 50/50. On appelle cela une superposition car, contrairement aux bits classiques, ce mélange peut avoir une phase quantique. Le disque de phase visualise cet état.
Le disque de phase à la fin de chaque qubit dans IBM Quantum Composer donne l'état local de chaque qubit à la fin du calcul. Les composants du disque de phase sont décrits ci-dessous.
Probabilité que le qubit soit dans l'état
La probabilité que le qubit soit dans l'état est représentée par le remplissage bleu du disque.
Phase quantique
La phase quantique de l'état du qubit est donnée par la ligne qui s'étend du centre du diagramme au bord du disque gris (qui tourne dans le sens inverse des aiguilles d'une montre autour du point central).
Exemple : disques de phase pour deux qubits différents

Deux exemples de la visualisation du disque de phase. Le premier exemple est un état et le second montre l'état avec une phase relative non nulle.
Connexion à la sphère de Bloch
Le disque de phase, qui contient toutes les informations de la sphère de Bloch, est une représentation bidimensionnelle d'un qubit. Pour convertir à la représentation de la sphère de Bloch : , , et .
États à N qubits : maximum 15 qubits
Un état quantique à N qubits prend la forme
où est la probabilité que les qubits soient dans l'état avec phase quantique par rapport à l'état . est la probabilité que les qubits ne soient pas dans l'état fondamental . Ici, il est simple de voir que pour un état quantique à N qubits, il y a probabilités et phases. Le disque de phase échoue à représenter cet état, car les disques de phase à N qubits ne contiendraient que probabilités et phases ; c'est parce que la plupart des états sont intriqués et ne sont pas séparables en états quantiques monoqubit indépendants. Pour représenter que les informations complètes ne sont pas contenues dans cette visualisation, nous introduisons la pureté réduite en tant que composante du disque de phase.
Pureté réduite de l'état du qubit
Le rayon de l'anneau noir représente la pureté réduite de l'état du qubit, qui pour le qubit dans un état à qubits est donné par . La pureté réduite pour un qubit unique est dans la plage ; une valeur de un indique que le qubit n'est pas intriqué avec aucune autre partie. En revanche, une pureté réduite de montre que le qubit se trouve dans l'état complètement mixte et a un certain niveau d'intrication sur les qubits restants et éventuellement même l'environnement.
Vue des probabilités
Limite de 8 qubits
Cette vue visualise les probabilités de l'état quantique sous forme de graphique à barres. L'axe horizontal libelle les états de base computationnelle. L'axe vertical mesure les probabilités en termes de pourcentages. Dans cette vue, les phases quantiques ne sont pas représentées, et c'est donc une représentation incomplète. Cependant, c'est utile pour prédire les résultats si tu mesures chaque qubit et la valeur stockée dans son propre bit classique.
Considère le circuit quantique suivant et sa vue des probabilités :
Le circuit met les deux qubits dans l'état Les états de la base computationnelle sont et