Un qubit n’est pas seulement 0 ou 1
Un qubit, ou bit quantique, est l’unité d’information de l’informatique quantique. Son état se décrit par deux nombres, appelés amplitudes, et non par un simple 0 ou 1.
Ces deux nombres fixent la chance de lire 0 ou 1. Après cette leçon, vous saurez les calculer vous-même, en Python simple. Le labo est un simulateur, pas un ordinateur quantique.
À la fin de cette leçon
Remarque
Je peux décrire l’état d’un qubit avec deux nombres et en tirer la chance de lire 0 ou 1.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Qubit | l’unité d’information quantique, décrite par deux amplitudes | |
| Vecteur d’état | la liste des amplitudes d’un système | [1, 0] |
| Amplitude | un nombre attaché à un résultat possible | |
| Probabilité | la chance d’un résultat, de 0 à 1 | |
| Normalisé | dont les probabilités ont pour somme 1 | |
| Simulateur | un programme ordinaire qui suit les règles quantiques |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
L’état d’un qubit : deux amplitudes
Un bit vaut 0 ou 1. Un qubit a une amplitude pour le résultat 0 et une pour le résultat 1. On les range dans une liste, [a, b], le vecteur d’état.
Le qubit qui donnera à coup sûr 0 s’écrit [1, 0], noté |0>. Celui qui donnera à coup sûr 1 s’écrit [0, 1], noté |1>. Entre les deux, tout est possible.
Exemple travaillé : trois états et leurs chances
| État | Amplitude de 0 | Amplitude de 1 | Chance de 0 | Chance de 1 |
|---|---|---|---|---|
| |0> | 1 | 0 | 1 | 0 |
| |1> | 0 | 1 | 0 | 1 |
| Un état mêlé | 0,6 | 0,8 | 0,36 | 0,64 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Ce que le script va afficher
Le script qubit.py affiche des mots anglais. a qubit in |0> veut dire « un qubit dans l’état |0> ». chance of 0 and of 1 veut dire « chance de 0 et de 1 ». two qubits take 4 amplitudes veut dire « deux qubits demandent 4 amplitudes ».
La notation 1.000|0> se lit : amplitude 1 pour le résultat 0.
Créer un qubit dans l’état |0>
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.
Un simulateur, pas un ordinateur quantique
Important
Le labo de ce module est un simulateur : un petit programme Python sur un ordinateur ordinaire. Ce n’est pas un ordinateur quantique. Il suit les règles exactement, donc il sert à les apprendre, mais il ne peut montrer aucune accélération.
La chance est le carré de l’amplitude
Pour passer d’une amplitude à une chance, on prend sa taille et on l’élève au carré. En Python : abs(a) ** 2.
On écrit « la taille », car une amplitude peut être un nombre complexe, comme 0.5j. abs s’occupe de tout. Une amplitude négative donne aussi une chance positive : le carré efface le signe.
Des amplitudes aux chances
# Un état est une liste de deux amplitudes : [a, b].
etat = [0.6, 0.8]
total = 0
for n in range(len(etat)):
p = abs(etat[n]) ** 2
total = total + p
print("chance de lire", n, ":", round(p, 2))
print("somme des chances :", round(total, 2))
# Changez 0.8 en 0.6, puis relancez.
# La somme vaut-elle encore 1 ?
Les chances d’un état valide totalisent 1
Un qubit donne toujours 0 ou 1 : les deux chances s’additionnent donc à 1. Un état qui respecte cela est normalisé.
Pour normaliser un état, divisez chaque amplitude par la racine de la somme des carrés. L’état [1, 1] a pour somme 2 : on divise par la racine de 2, soit 1,414 environ.
Exemple travaillé : normaliser [3, 4]
| Étape | Calcul | Résultat |
|---|---|---|
| Carrés | 3 au carré, 4 au carré | 9 et 16 |
| Somme | 9 plus 16 | 25 |
| Racine | racine de 25 | 5 |
| Division | 3 divisé par 5, 4 divisé par 5 | 0,6 et 0,8 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Normaliser un état
# Un état dont la somme des carrés ne vaut pas 1 doit être normalisé.
etat = [1, 1]
total = 0
for a in etat:
total = total + abs(a) ** 2
taille = total ** 0.5
nouvel_etat = []
for a in etat:
nouvel_etat.append(a / taille)
print("avant :", etat, "après :", nouvel_etat)
# Changez [1, 1] en [3, 4], puis relancez.
Une erreur fréquente
Attention
Beaucoup pensent que les amplitudes sont déjà des chances. Ce n’est pas le cas : la chance est le carré de la taille de l’amplitude. L’état [0.6, 0.8] donne 0,36 et 0,64, jamais 0,6 et 0,8, dont la somme dépasserait 1.
Pour aller plus loin
Dans un carnet du labo, écrivez from qsim import * puis show(zero(3)). Combien d’amplitudes l’état de trois qubits compte-t-il ?
Doublez encore le nombre de qubits, de 3 à 6, et comptez de nouveau. Que devient le travail du simulateur chaque fois qu’on ajoute un qubit ?