Que sait faire un qubit que ne sait pas faire un bit ?
Un bit vaut 0 ou 1. Un qubit est décrit par deux nombres, un pour chaque réponse, et une mesure les transforme en un seul 0 ou 1, au hasard. Tu vas construire cette règle toi-même, dans un court fichier Python que tu peux lire. Il tourne sur un ordinateur ordinaire : c'est un simulateur, pas un ordinateur quantique, et il ne peut pas montrer si un ordinateur quantique est plus rapide. Ce qu'il montre, ce sont les règles.
À la fin de cette leçon
Remarque
Je peux créer un qubit, appliquer une porte, le mesurer et dire ce que montrent les comptages.
Mots clés
- Qubit : la version quantique d'un bit, décrite par deux amplitudes.
- Amplitude : un nombre pour un résultat. Son carré est la probabilité de ce résultat.
- Porte : une étape qui change les amplitudes, comme X ou H.
- Mesure : lire le qubit, ce qui donne un seul 0 ou 1, au hasard.
- Tirage (shot) : une exécution complète, qui se termine par une mesure.
- Simulateur : un programme sur un ordinateur ordinaire qui suit les règles.
Pour commencer : ce que tu sais déjà
Remarque
Réponds dans ta tête. 1. Combien de valeurs différentes 2 bits peuvent-ils représenter ? 2. Si l'on lance 1000 fois une pièce équilibrée, environ combien de piles attend-on ? 3. Que vaut 0,5 au carré ? Réponses : 4 combinaisons, mais une seule à la fois ; environ 500 ; 0,25.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de la leçon et attends qu'il indique qu'il est en marche. Il y a un seul conteneur, jupyter, et le terminal atteint son Python avec docker exec jupyter, qui lance une commande à l'intérieur. Le lien JupyterLab ouvre sa page web, sur le port 8888. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de ton lab, l'une après l'autre, dans la même session. Pour suivre les commandes ou taper les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
Un simulateur, c'est un fichier qu'on peut lire
ls liste le dossier de travail : qsim.py, le simulateur, moins de 70 lignes de NumPy, le notebook start.ipynb et le dossier steps. Le premier script crée un qubit dans l'état |0>. La première ligne affichée, 1.000|0>, se lit « amplitude 1 pour la réponse 0 ». Les probabilités sont [1. 0.] : on est sûr de lire 0. Deux qubits prennent 4 amplitudes, une pour chacun de 00, 01, 10 et 11.
docker exec jupyter lsAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
docker exec jupyter python3 steps/qubit.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une porte change les amplitudes
La porte X fait passer 0 à 1 : |0> devient 1.000|1>. La porte H fait un mélange égal : 0.707|0> + 0.707|1>. Chaque amplitude vaut 0,707, et 0,707 au carré vaut 0,5 : les probabilités sont [0.5 0.5].
docker exec jupyter python3 steps/gates.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une mesure donne une seule réponse, au hasard
Le script mesure 1000 fois l'état H, avec une graine fixe pour que chaque exécution soit identique. La graine 1 donne 507 zéros et 493 uns. La graine 2 donne 503 et 497. La graine 1 de nouveau redonne exactement le premier résultat. Près de la moitié chacun, jamais exactement la moitié : c'est le hasard.
docker exec jupyter python3 steps/measure.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérifie
Astuce
L'état H a une amplitude de 0,707 pour chaque réponse. Pourquoi les comptages sont-ils proches de 500 et 500, et pas de 707 et 707 ? Réponse : la probabilité est l'amplitude au carré, 0,707 au carré vaut 0,5, et les deux probabilités font 1 en tout.
Deux qubits peuvent être liés
H sur le premier qubit, puis CNOT, donne un état de Bell : 0.707|00> + 0.707|11>. Les comptages ne contiennent que 00 et 11 (507 et 493). Jamais 01 ni 10 : les deux qubits sont toujours d'accord, alors que chacun, seul, est un tirage à pile ou face.
docker exec jupyter python3 steps/bell.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Les amplitudes peuvent s'annuler
H puis H redonne 1.000|0>, et H puis Z puis H donne 1.000|1>. Le second H additionne les amplitudes, et avec le Z entre les deux, l'une des deux réponses s'annule. C'est l'interférence, et c'est ainsi qu'un programme quantique oriente les probabilités.
docker exec jupyter python3 steps/interfere.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Orienter les probabilités vers une réponse
Quatre éléments sont numérotés 00, 01, 10 et 11, et 11 est marqué. Chacun commence avec une amplitude de 0,500, donc une probabilité de 0,25. Changer le signe de l'élément marqué ne change aucune probabilité, mais une étape de plus, qui reflète chaque amplitude par rapport à la moyenne, laisse 1.000|11> : l'élément marqué est maintenant certain.
docker exec jupyter python3 steps/amplify.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup pensent qu'un ordinateur quantique essaie toutes les réponses à la fois et montre simplement la meilleure. Une mesure donne une réponse, tirée au hasard selon les amplitudes au carré. Tout l'art est d'arranger les amplitudes, avec des portes et de l'interférence, pour que la réponse voulue soit la plus probable.
Ce qu'un simulateur ne peut pas montrer
C'est qsim.py qui tourne sur un ordinateur ordinaire. Il garde chaque amplitude en mémoire, donc chaque qubit de plus double le travail, et il ne peut montrer aucune accélération. Il suit les règles exactement, ce qui le rend bon pour les apprendre, et il ne dit rien de la façon dont une vraie machine est construite ni de sa vitesse.
Le même travail dans un notebook
Ouvre JupyterLab depuis la barre et double-clique sur start.ipynb. Il fait ce que faisaient les scripts, une cellule à la fois, et finit par un diagramme en barres des comptages d'un état de Bell. Clique sur une cellule et appuie sur Maj et Entrée pour l'exécuter. La dernière cellule attend ta propre question.
Vérification finale
Astuce
Réponds sans revenir en arrière. 1. Quelle est la probabilité d'un résultat, d'après son amplitude ? 2. Que fait la porte H à |0> ? 3. Dans un état de Bell, quelles paires de réponses apparaissent ? 4. Ce simulateur peut-il montrer qu'un ordinateur quantique est plus rapide ? Réponses : l'amplitude au carré ; elle fait un mélange égal, 0,707 chacun ; 00 et 11 seulement ; non, c'est un simulateur sur un ordinateur ordinaire.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie de chaque élève. Le lab est un seul service, JupyterLab avec un petit simulateur NumPy que les élèves peuvent lire, et rien ici ne se corrige tout seul : l'élève rend un notebook à lui qui utilise qsim.py, téléchargé depuis JupyterLab, et une phrase sur ce qu'il a montré. Points clés : 1. Un qubit, ce sont deux amplitudes, et la probabilité est leur carré. 2. Les portes changent les amplitudes et une mesure donne une réponse au hasard. 3. L'interférence oriente les probabilités. Erreur fréquente : « essaie toutes les réponses à la fois ». Matériel : le lab et un navigateur. Conseil : demandez aux élèves de prévoir chaque résultat avant d'appuyer sur Exécuter. Les graines sont fixes, donc chaque copie affiche les mêmes nombres, et le lab dit clairement qu'il ne peut pas montrer la vitesse. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.