Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Qu’est-ce qu’un qubit ?

Après cette leçon: Je peux décrire l’état d’un qubit avec deux nombres et en tirer la chance de lire 0 ou 1.

Leçon de 50 min1 commandeLab simulateur quantique : qubits, portes et mesure dans JupyterLab

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

MotCe que ça veut direExemple
Qubitl’unité d’information quantique, décrite par deux amplitudes
Vecteur d’étatla liste des amplitudes d’un système[1, 0]
Amplitudeun 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
Simulateurun 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

ÉtatAmplitude de 0Amplitude de 1Chance de 0Chance de 1
|0>1010
|1>0101
Un état mêlé0,60,80,360,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>

Commande
docker exec jupyter python3 steps/qubit.py

Affiché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

Code: python
# 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]

ÉtapeCalculRésultat
Carrés3 au carré, 4 au carré9 et 16
Somme9 plus 1625
Racineracine de 255
Division3 divisé par 5, 4 divisé par 50,6 et 0,8

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Normaliser un état

Code: python
# 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 ?

À propos de ce labo et de sa source: Lab simulateur quantique : qubits, portes et mesure dans JupyterLab

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.