Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les diagrammes de circuit quantique sont une représentation visuelle des algorithmes quantiques. Les diagrammes de circuit montrent le flux de qubits à travers un programme quantique, y compris les portes et les mesures que le programme applique aux qubits.
Dans cet article, vous allez apprendre à créer des diagrammes de circuit pour les programmes Q# et OpenQASM avec l’utilisation Microsoft Quantum Development KitQDK (Visual Studio CodeVS Code) et Jupyter Notebook.
Pour plus d’informations sur les diagrammes de circuits quantiques, consultez les conventions de diagramme de circuit quantique.
Prérequis
Pour créer des diagrammes de circuit à partir de fichiers VS CodeQ# et OpenQASM, installez les éléments suivants :
- Dernière version de VS Code, ou ouvrir VS Code pour le Web.
- Dernière version de l’extensionQDK en VS Code.
Pour créer des diagrammes de circuit à partir de programmes Python, Jupyter Notebookinstallez les éléments suivants :
La dernière version de la
qdkbibliothèque Python avec l'optionjupyteren supplément.python -m pip install --upgrade "qdk[jupyter]"
Visualiser les circuits quantiques dans VS Code
Avec l’extension QDK dans VS Code, vous pouvez créer des diagrammes de circuit pour les fichiers Q# (.qs) et OpenQASM (.qasm).
Pour afficher un diagramme de circuit dans VS Code, procédez comme suit :
- Ouvrez un fichier Q# ou OpenQASM dans VS Code, ou chargez l'un des échantillons quantiques à partir du QDK.
- Choisissez la commande Circuit dans le code Lens qui précède votre programme.
La QDK fenêtre Circuit s’ouvre et affiche le diagramme de circuit pour votre programme. Par exemple, le diagramme de circuit suivant correspond à un programme qui produit un bit aléatoire. Le circuit place le qubit dans un état de superposition, puis mesure le qubit.
Conseil / Astuce
Sélectionnez un élément dans le diagramme de circuit pour mettre en surbrillance le code qui crée l’élément de circuit.
Afficher les diagrammes de circuit pour les opérations Q# individuelles
Pour visualiser le circuit quantique d’une opération individuelle dans un fichier Q#, choisissez la commande Circuit à partir de l’objectif de code qui précède l’opération.
Afficher les diagrammes de circuit lorsque vous déboguez
Lorsque vous utilisez le VS Code débogueur dans un programme Q#, vous pouvez visualiser le circuit quantique en fonction de l’état du programme au point d’arrêt actuel du débogueur.
- Choisissez la commande Debug de CodeLens qui précède le fonctionnement de votre point d'entrée.
- Dans le volet Exécuter et déboguer, développez la liste déroulante Circuit quantique dans le menu VARIABLES. Le QDK panneau Circuit s’ouvre, ce qui montre le circuit pendant que vous parcourez le programme.
- Définissez des points d’arrêt et parcourez votre code pour voir comment le circuit est mis à jour au fur et à mesure que votre programme s’exécute.
Visualiser les circuits quantiques dans Jupyter Notebook
Dans Jupyter Notebook, vous pouvez visualiser des circuits quantiques pour les programmes Q# et OpenQASM avec les modules qdk.qsharp et qdk.widgets Python. Le widgets module fournit un widget qui affiche un diagramme de circuit quantique en tant qu’image SVG.
Pour plus d’exemples de génération de diagrammes de circuits dans Jupyter Notebook, consultez l'exemple de notebook Circuits sur le dépôt QDK GitHub.
Afficher les diagrammes de circuit pour les programmes Q#
Pour afficher un diagramme de circuit pour un programme Q#, suivez ces étapes :Jupyter Notebook
Dans VS Code, ouvrez le menu Affichage et choisissez Palette de commandes.
Entrez Créer : Nouveau Jupyter Notebook. Un fichier vide Jupyter Notebook s’ouvre dans un nouvel onglet.
Dans la première cellule du notebook, exécutez le code suivant pour importer le
qsharpmodule.from qdk import qsharpCréez une cellule et entrez votre code Q#. Par exemple, le code suivant prépare un état Bell :
%%qsharp // Prepare a Bell State. operation BellState() : Unit { use register = Qubit[2]; H(register[0]); CNOT(register[0], register[1]); }Pour afficher un diagramme de circuit quantique, passez l’opération Q# à la
qsharp.circuitfonction. Exécutez le code suivant dans une nouvelle cellule :qsharp.circuit("BellState()")Le résultat se présente ainsi :
q_0 ── H ──── ● ── q_1 ───────── X ──Pour afficher une image SVG du circuit quantique, utilisez le
widgetsmodule. Créez une cellule, puis exécutez le code suivant pour visualiser le même circuit que celui que vous avez créé dans la cellule précédente.from qdk.widgets import Circuit Circuit(qsharp.circuit("BellState()"))Le diagramme de circuit ressemble à ceci :
Afficher les diagrammes de circuit pour les opérations qui prennent des qubits comme entrée
Dans l’exemple d’état Bell précédent, l’opération BellState ne prend pas de qubits comme entrée. Si l’opération prend des qubits ou des tableaux de qubits comme entrée, omettez les parenthèses lorsque vous dessinez des diagrammes de circuit.
Par exemple, procédez comme suit pour dessiner des diagrammes de circuit pour une opération qui prend des qubits :
Dans une nouvelle cellule, exécutez le code Q# suivant. Ce code prépare un état chat.
%%qsharp operation PrepareCatState(register : Qubit[]) : Unit { H(register[0]); ApplyToEach(CNOT(register[0], _), register[1...]); }Pour dessiner le circuit en tant que diagramme de texte, exécutez le code suivant :
Circuit(qsharp.circuit(operation="PrepareCatState"))Pour afficher le diagramme de circuit en tant qu’image SVG, exécutez le code suivant :
Circuit(qsharp.circuit(operation="PrepareCatState"))
Lorsque l’opération prend un tableau de qubits (Qubit[]), le circuit affiche le tableau comme un registre de deux qubits.
Afficher les diagrammes de circuit pour les programmes OpenQASM
Pour afficher un diagramme de circuit pour un programme OpenQASM, Jupyter Notebookprocédez comme suit :
Dans VS Code, ouvrez le menu Affichage et choisissez Palette de commandes.
Entrez Créer : Nouveau Jupyter Notebook. Un fichier vide Jupyter Notebook s’ouvre dans un nouvel onglet.
Dans la première cellule du notebook, exécutez le code suivant pour importer les objets nécessaires pour créer et appeler des fonctions OpenQASM avec la QDK bibliothèque Python :
from qsharp.openqasm import import_openqasm, ProgramTypeDans une nouvelle cellule, écrivez votre programme OpenQASM dans une chaîne Python et transmettez la chaîne à la
import_openqasmfonction. Pour appeler le programme dans votre code Python, donnez un nom à la fonction, puis définissezprogram_typeàProgramType.File.source = """ include "stdgates.inc"; bit[2] c; qubit[2] q; h q[0]; cx q[0], q[1]; c = measure q; """ import_openqasm(source, name="bell", program_type=ProgramType.File)Dans une nouvelle cellule, importez le programme OpenQASM en tant que fonction Python et appelez le programme pour obtenir les résultats de mesure.
from qsharp.code.qasm_import import bell bell()Pour dessiner le circuit en tant que diagramme de texte, exécutez le code suivant dans une nouvelle cellule :
from qdk.qsharp import circuit circuit(bell)Le résultat se présente ainsi :
q_0 ── H ──── ● ──── M ── │ ╘═══ q_1 ───────── X ──── M ── ╘═══Pour afficher le diagramme de circuit en tant qu’image SVG, exécutez le code suivant dans une nouvelle cellule :
from qsharp_widgets import Circuit Circuit(qsharp.circuit(bell))Le diagramme de circuit ressemble à ceci :
Note
Pour les programmes OpenQASM, vous ne pouvez pas afficher les diagrammes de circuit pour des fonctions individuelles. Vous pouvez afficher des diagrammes de circuits uniquement pour l’ensemble du programme.