Programmation quantique
Prérequis : complexes, vecteurs et matrices, probabilités et Python élémentaire. But : calculer un état, construire un circuit, prévoir une mesure et confronter un programme à cette prévision. Le socle utilise des vecteurs d’état locaux; aucun ordinateur quantique distant requis.
5 visuels et 10 exercices interactifs
Ces leçons forment un premier socle, sans équivalence de crédits universitaires. Les durées sont indicatives et incluent la pratique.
Qubit, amplitude et mesure
Normaliser et calculer les probabilités de mesure
État préparé : α=√3/2 et β=i/2. La mesure est dans la base |0⟩, |1⟩.
Le rappel qui sert ici. Pour a+ib, le module au carré vaut a²+b². La probabilité porte sur le module au carré, jamais sur le signe seul.
Calculer le poids de la composante zéro
Pourquoi cette étape ? α est réel ici. Le carré porte sur le numérateur et le dénominateur.
Calculer le poids de la composante un
Pourquoi cette étape ? i² vaut −1, mais |i|² vaut +1. Une probabilité ne devient pas négative parce qu’une amplitude est imaginaire.
Vérifier la norme totale
Pourquoi cette étape ? Un état pur doit être normalisé avant d’appliquer la règle de mesure. Le vecteur nul ne peut pas être normalisé.
Prévoir les résultats de nombreuses préparations
Pourquoi cette étape ? 250 est une espérance, pas une promesse de comptage. Chaque répétition statistique repart d’une nouvelle préparation identique.
Distinguer mesure et nouvelle préparation
Pourquoi cette étape ? Mesurer encore ce même qubit idéal dans la même base redonne 1. Pour retrouver la distribution 75 %/25 %, il faut repréparer l’état initial.
Règles, cas particuliers et autre exemple
Un qubit pur est |ψ⟩=α|0⟩+β|1⟩ avec α,β complexes et |α|²+|β|²=1. Une mesure dans la base de calcul donne 0 avec |α|² et 1 avec |β|²; elle ne retourne pas toutes les amplitudes. Après une mesure idéale, l’état conditionnel correspond au résultat observé. Une phase globale eⁱᵞ ne change aucune probabilité. Une phase relative peut changer les interférences ultérieures. La sphère de Bloch représente un seul qubit; elle ne représente pas à elle seule un registre intriqué.
Exemple résolu
α=√3/2, β=i/2. Norme au carré=3/4+1/4=1. P(0)=0,75 et P(1)=0,25. Sur 1000 répétitions, 250 résultats « 1 » est une espérance, pas un compte garanti. Chaque répétition doit repartir d’une préparation identique.
Amplitudes et mesures
α=√3/2 et β=i/2 : P(0)=3/4, P(1)=1/4.
Les équations et les explications au clic restent accessibles sans JavaScript. Active-le pour manipuler le visuel et choisir les réponses.
Portes, phase et interférence
Suivre les amplitudes entre trois portes
Départ |0⟩. On applique H, puis Z, puis H, sans mesure intermédiaire.
Le rappel qui sert ici. H(a;b)=((a+b)/√2;(a−b)/√2). Dans HZH|0⟩, la matrice la plus à droite agit en premier.
Appliquer le premier Hadamard
Pourquoi cette étape ? Les deux issues ont maintenant une probabilité 1/2, mais le simulateur conserve des amplitudes et leur phase.
Changer la phase relative avec Z
Pourquoi cette étape ? Seule la composante |1⟩ change de signe. Les probabilités en base de calcul restent 1/2,1/2 à cet instant.
Former la nouvelle amplitude de zéro
Pourquoi cette étape ? Le dernier H additionne les deux anciennes amplitudes pour la sortie zéro. Elles s’annulent : c’est une interférence destructive.
Former la nouvelle amplitude de un
Pourquoi cette étape ? La soustraction a−b devient une addition parce que b est négatif. Les anciennes valeurs doivent être lues avant toute écriture dans un programme.
Comparer au circuit sans phase relative
Pourquoi cette étape ? Deux distributions intermédiaires identiques ne suffisent pas à prévoir l’interférence. Multiplier toutes les amplitudes par une même phase globale n’aurait pas cet effet.
Règles, cas particuliers et autre exemple
Une porte idéale est une matrice unitaire U : U†U=I, ce qui conserve la norme. X échange |0⟩ et |1⟩; Z change le signe de la composante |1⟩; H=(1/√2)[[1,1],[1,−1]]. Les opérations agissent dans l’ordre du circuit, donc la première porte est la matrice la plus à droite dans un produit. H transforme |0⟩ en |+⟩. Deux états avec les mêmes probabilités dans la base de calcul peuvent produire des mesures différentes après H : les amplitudes, avec leurs signes et phases, interfèrent.
Exemple résolu
partir de |0⟩, appliquer H, Z, H. Après H : (1,1)/√2. Après Z : (1,−1)/√2. Après le dernier H : (0,1)=|1⟩. Sans Z, HH donne |0⟩. Les probabilités intermédiaires seules ne permettent pas de reconstituer cette différence.
La phase devient une interférence
Depuis |0⟩ : HH donne |0⟩, tandis que HZH donne |1⟩.
Les équations et les explications au clic restent accessibles sans JavaScript. Active-le pour manipuler le visuel et choisir les réponses.
Produit tensoriel et intrication
Préparer un état de Bell avec une convention explicite
Ordre des bits : |q0 q1⟩, q0 à gauche et de poids fort. Base : |00⟩, |01⟩, |10⟩, |11⟩.
Le rappel qui sert ici. Une porte sur q0 agit sur les paires d’indices (0,2) et (1,3). CNOT inverse q1 seulement lorsque q0 vaut 1.
Écrire le registre initial
Pourquoi cette étape ? Quatre amplitudes sont nécessaires pour deux qubits. Ce ne sont pas quatre qubits.
Appliquer H sur le bit de gauche
Pourquoi cette étape ? Le qubit q1 reste à zéro dans les deux termes. La convention est celle de ce cours et doit être vérifiée lors d’un export vers un SDK.
Appliquer CNOT de q0 vers q1
Pourquoi cette étape ? Le contrôle lit le bit de gauche. Il ne change pas |00⟩ et retourne le bit de droite dans |10⟩.
Passer des amplitudes aux probabilités conjointes
Pourquoi cette étape ? Les deux résultats sont corrélés. Le produit |+⟩⊗|+⟩ donnerait au contraire quatre issues de probabilité 1/4.
Lire une marginale puis un conditionnement
Pourquoi cette étape ? Chaque qubit seul paraît aléatoire. La corrélation ne permet pas de choisir le résultat local ni d’envoyer un message instantané.
Règles, cas particuliers et autre exemple
Deux qubits possèdent quatre amplitudes. Convention Craie : ordre |q0 q1⟩, base |00⟩,|01⟩,|10⟩,|11⟩, q0 bit de poids fort. Le produit tensoriel de (a,b) et (c,d) vaut (ac,ad,bc,bd). CNOT de contrôle q0 inverse q1 si q0=1. L’état de Bell ( |00⟩+|11⟩ )/√2 ne se factorise pas en deux états individuels purs. Ses mesures sont corrélées, mais chaque qubit seul donne 0 ou 1 avec probabilité 1/2; cette corrélation ne permet pas d’envoyer un message instantané.
Exemple résolu
partir de |00⟩. H sur q0 donne (1,0,1,0)/√2. CNOT(q0→q1) donne (1,0,0,1)/√2. P(00)=P(11)=1/2, les autres valent 0. Mesurer q0=1 conditionne q1 à 1 dans cette base.
Deux qubits, quatre amplitudes
H0 puis CX sur |00⟩ produit (|00⟩+|11⟩)/√2.
Les équations et les explications au clic restent accessibles sans JavaScript. Active-le pour manipuler le visuel et choisir les réponses.
Programmer et vérifier un circuit
Traduire un circuit en opérations sur un tableau
On programme H sur q0 puis CNOT, à partir de |10⟩. Base : [|00⟩,|01⟩,|10⟩,|11⟩].
Le rappel qui sert ici. Pour chaque paire, conserver a et b avant de calculer a+b et a−b. Le visuel exécute uniquement des portes prédéfinies.
Initialiser l’indice correct
Pourquoi cette étape ? q0 est le bit de poids fort : |10⟩ correspond à l’indice 2. Le programme affiché rappelle cette convention.
Lire la paire modifiée par H sur q0
Pourquoi cette étape ? La seconde paire est (1,3). Pour H sur q1, les paires seraient (0,1) et (2,3).
Écrire les deux nouvelles amplitudes ensemble
Pourquoi cette étape ? Si on écrase a avant de calculer a−b, on ne réalise plus la matrice H. La copie des anciennes valeurs évite cette erreur.
Permuter les indices contrôlés
Pourquoi cette étape ? CNOT échange les indices 2 et 3; il laisse les indices 0 et 1 inchangés. L’amplitude négative n’est pas perdue.
Vérifier norme et probabilités avant des tirages
Pourquoi cette étape ? Ces probabilités sont identiques à celles du Bell positif en base de calcul, malgré une phase relative différente. Le programme Python correspondant est consultable sans exécuter du code arbitraire dans la page.
Règles, cas particuliers et autre exemple
Un simulateur à vecteur d’état stocke 2ⁿ amplitudes complexes. Appliquer une porte à un qubit revient à combiner des paires d’amplitudes dont les indices diffèrent par le bit ciblé; les deux valeurs anciennes doivent être lues avant toute écriture. Un simulateur classique consomme donc une mémoire exponentielle, même si le circuit dessiné est court. Avant de tirer des mesures, vérifier la norme et les probabilités exactes. Le programme suivant fixe l’ordre des bits, applique H puis CNOT et affiche les probabilités sans bibliothèque externe.
from math import sqrt
# Base : |00>, |01>, |10>, |11>; q0 est à gauche.
state = [1+0j, 0j, 0j, 0j]
h = 1 / sqrt(2)
def h_q0(s):
out = s.copy()
for i in (0, 1):
a, b = s[i], s[i + 2]
out[i], out[i + 2] = h * (a + b), h * (a - b)
return out
def cx_0_1(s):
return [s[0], s[1], s[3], s[2]]
state = cx_0_1(h_q0(state))
probabilities = [abs(a)**2 for a in state]
assert abs(sum(probabilities) - 1) < 1e-12
assert all(abs(p - expected) < 1e-12
for p, expected in zip(probabilities, [0.5, 0, 0, 0.5]))
print(probabilities)
Exemple résolu
le premier H répartit l’amplitude sur les indices 0 et 2. CNOT permute les indices 2 et 3. La sortie numérique approche [0.5, 0, 0, 0.5] avec les arrondis flottants usuels. Un tirage aléatoire est une étape facultative ultérieure, jamais la preuve de cette distribution.
Construire un programme quantique
Sur |10⟩, H0 puis CX produit (|00⟩−|11⟩)/√2.
Les équations et les explications au clic restent accessibles sans JavaScript. Active-le pour manipuler le visuel et choisir les réponses.
Grover, mesure et bruit
Amplifier une cible en agissant sur les amplitudes
Quatre états de base, une seule cible |11⟩. L’état initial uniforme possède quatre amplitudes 1/2.
Le rappel qui sert ici. L’oracle de phase change un signe. La diffusion réfléchit chaque amplitude autour de leur moyenne.
Écrire la superposition uniforme
Pourquoi cette étape ? Chaque probabilité vaut 1/4, car elle est le carré de 1/2. Les amplitudes ne sont pas elles-mêmes des probabilités.
Appliquer l’oracle à la cible
Pourquoi cette étape ? La probabilité de la cible est encore 1/4. L’oracle n’a pas mesuré la cible : il a modifié sa phase.
Calculer la moyenne des amplitudes
Pourquoi cette étape ? La moyenne porte sur des amplitudes signées après l’oracle, pas sur les probabilités.
Réfléchir autour de la moyenne
Pourquoi cette étape ? La même opération de diffusion agit sur les quatre composantes. Ici elle annule les non-cibles et renforce la cible.
Vérifier la mesure et la limite de l’exemple
Pourquoi cette étape ? Une itération suffit pour N=4 avec une cible unique. En refaire une ne garantit pas une amélioration; le visuel compte les appels à l’oracle et traite le bruit comme un mélange séparé.
Règles, cas particuliers et autre exemple
Pour N=4 états équiprobables et une cible unique, l’oracle de phase change le signe de l’amplitude cible. La diffusion applique aᵢ→2ā−aᵢ, où ā est la moyenne des amplitudes après l’oracle. Une itération idéale suffit ici : ce résultat ne se généralise pas à n’importe quel N ou nombre de cibles. Le coût de construction de l’oracle doit compter dans une comparaison d’algorithmes. Un bruit de retournement de bit avec probabilité p est un mélange de transformations, pas une superposition cohérente; les probabilités s’additionnent entre branches du mélange.
Exemple résolu
état uniforme (1/2,1/2,1/2,1/2), cible |11⟩. Après oracle : (1/2,1/2,1/2,−1/2), moyenne=1/4. Diffusion : (0,0,0,1), mesure cible avec probabilité 1. Appliquer encore une itération n’améliore pas cette certitude; Grover fait une rotation, pas une accumulation monotone de succès.
Amplifier une cible et distinguer le bruit
Pour quatre états uniformes, un oracle puis une diffusion donne une probabilité 1 à la cible idéale.
Les équations et les explications au clic restent accessibles sans JavaScript. Active-le pour manipuler le visuel et choisir les réponses.
Pour aller plus loin
Deutsch–Jozsa, Simon, QFT et estimation de phase, Shor, matrices densité et canaux généraux, téléportation, non-clonage, Bell/CHSH, BB84, correction d’erreurs, circuits paramétrés et export vers un SDK. Ces thèmes figurent dans la perspective GTI650; ils ne sont pas prétendus couverts par les cinq leçons présentes.