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

Mesurer un qubit : la règle de mesure

Après cette leçon: Je peux prévoir les résultats d’une mesure et les comptes attendus sur de nombreux tirages.

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

Que donne la mesure d’un qubit ?

Mesurer un qubit, c’est le lire : on obtient un seul résultat, 0 ou 1, tiré au hasard. La règle de mesure donne la chance de chaque résultat à partir des amplitudes.

Après cette leçon, vous saurez prévoir combien de 0 et de 1 sortent sur 1000 mesures. C’est le seul moyen de lire ce qu’un programme quantique a calculé.

À la fin de cette leçon

Remarque

Je peux prévoir les résultats d’une mesure et les comptes attendus sur de nombreux tirages.

Mots clés

MotCe que ça veut dire
Mesurela lecture d’un qubit, qui donne un seul résultat
Tirageune exécution complète, qui finit par une mesure
Comptescombien de fois chaque résultat est sorti
Chance cumuléela somme des chances jusqu’à un résultat
Graineun nombre qui fixe le hasard du simulateur

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

La mesure choisit un résultat selon les chances

La règle de mesure est simple. Chaque résultat sort avec la chance égale au carré de son amplitude. Un seul sort à chaque mesure.

Après la mesure, le qubit est dans l’état du résultat lu. Une seconde mesure donne alors la même réponse : l’état mêlé a disparu.

Exemple travaillé : trois états et leur mesure

ÉtatChance de 0Chance de 1Ce qu’on lit
[1, 0]10toujours 0
[0.707, 0.707]0,50,50 ou 1, à pile ou face
[0.6, 0.8]0,360,641 un peu plus souvent que 0

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

Ce que le script va afficher

Le script measure.py mesure 1000 fois l’état obtenu avec H. Ses lignes sont en anglais : 1000 shots, seed 1 veut dire « 1000 tirages, graine 1 ». seed 1 again veut dire « graine 1, de nouveau ».

Le résultat est un dictionnaire : {'0': 507, '1': 493} se lit « 507 fois le résultat 0, 493 fois le résultat 1 ».

Mesurer 1000 fois un qubit mélangé

Commande
docker exec jupyter python3 steps/measure.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.

Compte attendu : chance fois nombre de tirages

Sur beaucoup de tirages, chaque résultat sort à peu près autant que sa chance le prévoit. Le compte attendu est la chance multipliée par le nombre de tirages.

L’écart avec le compte réel est du hasard. Il pèse moins quand on tire plus : sur 10 tirages, un écart de 3 est courant ; sur 1000, il est rare.

Calculer les comptes attendus

Code: python
# Les comptes attendus sont la chance fois le nombre de tirages.
chances = [0.36, 0.64]
tirages = 1000
for n in range(len(chances)):
    attendu = chances[n] * tirages
    print("résultat", n, ": environ", round(attendu), "fois sur", tirages)
# Changez tirages en 50, puis relancez.

Une erreur fréquente

Attention

Beaucoup pensent qu’une mesure donne un mélange de 0 et de 1 en même temps. Une mesure donne un seul résultat, 0 ou 1. Le mélange ne se voit que dans les comptes de nombreux tirages, jamais dans un seul.

Comment le simulateur tire un résultat

Le simulateur tire un nombre r entre 0 et 1. Il additionne les chances une à une et s’arrête au premier résultat dont la chance cumulée dépasse r.

Pour l’état [0.6, 0.8], les chances cumulées sont 0,36 puis 1. Si r vaut 0,2, le résultat est 0. Si r vaut 0,5, le résultat est 1.

Tirer un résultat avec un nombre r

Code: python
# La règle du simulateur : un nombre r entre 0 et 1, et des chances cumulées.
etat = [0.6, 0.8]
chances = [0.36, 0.64]
cumul = [0.36, 1.0]

def resultat(r):
    for n in range(len(cumul)):
        if cumul[n] > r:
            return n
    return len(cumul) - 1

for r in [0.1, 0.35, 0.5, 0.9]:
    print("r =", r, "donne le résultat", resultat(r))
# Ajoutez 0.36 dans la liste, puis relancez : quel résultat sort ?

Pour aller plus loin

Dans un carnet du labo, mesurez l’état de H sur |0> avec measure(etat, 10000, seed=1). Les comptes se rapprochent-ils de 5000 et 5000 ?

Essayez ensuite 10 tirages. Dites en une phrase pourquoi un petit nombre de tirages donne des comptes moins proches des chances.

À 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.