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

Ce que les algorithmes quantiques accélèrent

Après cette leçon: Je peux dire ce que les algorithmes quantiques accélèrent et ce qu’ils n’accélèrent pas.

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

Un ordinateur quantique est-il plus rapide ?

Un algorithme quantique n’essaie pas toutes les réponses à la fois. Il arrange les amplitudes pour que la bonne réponse devienne probable, et il n’accélère que certains problèmes.

Après cette leçon, vous saurez dire ce que le quantique accélère, ce qu’il n’accélère pas, et pourquoi un simulateur ne peut pas le montrer.

À la fin de cette leçon

Remarque

Je peux dire ce que les algorithmes quantiques accélèrent et ce qu’ils n’accélèrent pas.

Mots clés

MotCe que ça veut dire
Amplificationune étape qui augmente l’amplitude de la bonne réponse
Oracleune boîte qui reconnaît la bonne réponse sans la donner
Accélérationle gain de temps par rapport au meilleur programme ordinaire
Bruitles petites erreurs d’une machine réelle
Factorisationtrouver les deux nombres premiers dont un nombre est le produit

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

L’amplification pousse l’amplitude de la bonne réponse

Imaginez quatre éléments, dont un seul est le bon. L’oracle reconnaît le bon : il change le signe de son amplitude, sans changer aucune chance.

Puis une seconde étape reflète chaque amplitude par rapport à la moyenne. La bonne amplitude, devenue négative, bondit vers le haut. Les autres tombent vers 0.

Exemple travaillé : quatre éléments, le 3 est marqué

ÉtapeÉléments 0, 1, 2Élément 3Chance du 3
Départ0,5 chacun0,50,25
Signe retourné0,5 chacun-0,50,25
Moyenne0,25
Reflet : 2 × 0,25 moins l’amplitude011

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

Une étape d’amplification

Code: python
# Quatre éléments, numérotés de 0 à 3. L'élément 3 est le marqué.
etat = [0.5, 0.5, 0.5, 0.5]
marque = 3

# Étape 1 : retourner le signe de l'amplitude du marqué.
etat[marque] = -etat[marque]

# Étape 2 : refléter chaque amplitude par rapport à la moyenne.
moyenne = sum(etat) / len(etat)
nouvel_etat = []
for a in etat:
    nouvel_etat.append(2 * moyenne - a)
print("amplitudes :", nouvel_etat)
# Changez marque = 3 en marque = 1, puis relancez.

Ce que le script va afficher

Le script amplify.py refait cette étape avec des portes. Ses lignes sont en anglais : start, every item equal veut dire « départ, tous les éléments égaux ». sign of the marked item flipped veut dire « signe de l’élément marqué retourné ».

after one amplification step veut dire « après une étape d’amplification ». chance of each veut dire « chance de chacun ».

Amplifier un élément parmi quatre

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

La recherche gagne en racine carrée, pas plus

Avec N éléments, une recherche ordinaire en essaie environ N, au pire. L’amplification demande de l’ordre de la racine carrée de N étapes.

C’est une vraie accélération, mais modeste : la racine de un million vaut mille. Elle ne rend pas un problème difficile facile.

Combien d’étapes pour N éléments ?

Éléments NEssais ordinaires, au pireÉtapes quantiques, de l’ordre de
10010010
10 00010 000100
1 000 0001 000 0001 000

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

Une erreur fréquente

Attention

Beaucoup pensent qu’un ordinateur quantique est plus rapide pour tout. Ce n’est pas le cas. Un tableur, une page web ou un tri n’y gagnent rien. L’accélération existe pour quelques problèmes précis, et elle est souvent modeste.

La factorisation est l’autre cas célèbre

Factoriser un grand nombre, c’est retrouver les deux nombres premiers dont il est le produit. Un ordinateur ordinaire met un temps énorme. Un algorithme quantique, celui de Shor, ferait la tâche bien plus vite.

Mais il demande une machine très grande, avec des erreurs corrigées. Aucune machine actuelle n’en est là. Les chercheurs préparent déjà de nouveaux codes secrets pour le jour où ce serait possible.

Le bruit limite les machines réelles

Un qubit réel est fragile : la chaleur, les vibrations et les erreurs de portes abîment son état. Ces petites erreurs forment le bruit.

Plus un programme a de portes, plus le bruit s’accumule. Pour le corriger, il faut beaucoup de qubits physiques pour un seul qubit fiable.

Pourquoi un simulateur s’arrête vers 30 qubits

QubitsAmplitudes (2 puissance n)Mémoire, 16 octets chacune
101 024environ 16 Ko
201 048 576environ 17 Mo
301 073 741 824environ 17 Go

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

Compter la mémoire d’un simulateur

Code: python
# Chaque qubit en plus double le nombre d'amplitudes à garder en mémoire.
for n in [10, 20, 30]:
    amplitudes = 2 ** n
    mega_octets = amplitudes * 16 / 1000000
    print(n, "qubits :", amplitudes, "amplitudes, environ", round(mega_octets, 2), "Mo")
# Chaque amplitude complexe prend 16 octets. Ajoutez 40 dans la liste, puis relancez.

Pour aller plus loin

Faites tourner l’étape sur huit éléments, puis une deuxième fois, puis une troisième. La chance du marqué monte-t-elle toujours ?

Écrivez en une phrase ce qui arrive quand on fait trop d’étapes. Que dit cela du nombre d’étapes qu’un programme doit prévoir ?

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