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

Les portes quantiques X, Z et H

Après cette leçon: Je peux appliquer une porte X, Z ou H à un qubit et écrire l’état obtenu.

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

Qu’est-ce qu’une porte quantique ?

Une porte quantique est une étape de calcul qui transforme l’état d’un qubit. Elle s’écrit comme un petit tableau de nombres, une matrice, et l’appliquer revient à une multiplication.

Trois portes suffisent pour commencer : X, Z et H. Après cette leçon, vous saurez calculer à la main ce que chacune fait à un qubit.

À la fin de cette leçon

Remarque

Je peux appliquer une porte X, Z ou H à un qubit et écrire l’état obtenu.

Mots clés

MotCe que ça veut dire
Porteune étape qui change les amplitudes d’un qubit
Matriceun tableau de nombres, ici de 2 lignes et 2 colonnes
Porte Xla porte qui échange les amplitudes de 0 et de 1
Porte Zla porte qui change le signe de l’amplitude de 1
Porte Hla porte qui fait un mélange égal de 0 et de 1

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

Appliquer une porte, c’est multiplier une matrice

Une porte est une matrice de deux lignes. Pour l’appliquer à l’état [a, b], calculez deux nouvelles amplitudes.

La première est la ligne 1 de la porte fois [a, b]. La seconde est la ligne 2 fois [a, b]. Chaque ligne multiplie ses deux nombres par a et b, puis additionne.

Exemple travaillé : X sur un état mêlé

Nouvelle amplitudeLigne de XCalculRésultat
Première[0, 1]0 fois 0,6 plus 1 fois 0,80,8
Seconde[1, 0]1 fois 0,6 plus 0 fois 0,80,6

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

Appliquer X et H à la main

Code: python
# Une porte est un tableau 2 sur 2. L'appliquer, c'est le multiplier par l'état.
R = 0.5 ** 0.5
X = [[0, 1], [1, 0]]
H = [[R, R], [R, -R]]

def appliquer(porte, etat):
    a = porte[0][0] * etat[0] + porte[0][1] * etat[1]
    b = porte[1][0] * etat[0] + porte[1][1] * etat[1]
    return [round(a, 3), round(b, 3)]

zero = [1, 0]
print("X sur |0> :", appliquer(X, zero))
print("H sur |0> :", appliquer(H, zero))
# Appliquez X à l'état [0, 1], puis relancez.

X, Z et H font trois choses différentes

La porte X échange les deux amplitudes : elle fait de |0> un |1>, comme un NON en logique. La porte H (Hadamard) fait un mélange égal : |0> devient deux amplitudes de 0,707.

La porte Z laisse l’amplitude de 0 et change le signe de celle de 1. Sur |0>, elle ne fait rien. Son effet se voit surtout sur un état mêlé.

Ce que font les trois portes

PorteSur [1, 0]Sur [0, 1]En une phrase
X[0, 1][1, 0]échange 0 et 1
Z[1, 0][0, -1]change le signe de 1
H[0,707, 0,707][0,707, -0,707]mélange à parts égales

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

Ce que le script va afficher

Le script gates.py applique X puis H à un qubit dans l’état |0>. Ses lignes sont en anglais : X on |0> veut dire « X sur |0> » et H on |0> « H sur |0> ».

chance of 0 and of 1 veut dire « chance de 0 et de 1 ». La notation 0.707|0> + 0.707|1> se lit : amplitude 0,707 pour 0 et 0,707 pour 1.

Appliquer X puis H à |0>

Commande
docker exec jupyter python3 steps/gates.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 porte Z change un signe

Code: python
# La porte Z change le signe de l'amplitude de 1, et laisse celle de 0.
R = 0.5 ** 0.5
Z = [[1, 0], [0, -1]]
H = [[R, R], [R, -R]]

def appliquer(porte, etat):
    a = porte[0][0] * etat[0] + porte[0][1] * etat[1]
    b = porte[1][0] * etat[0] + porte[1][1] * etat[1]
    return [round(a, 3), round(b, 3)]

melange = appliquer(H, [1, 0])
apres_z = appliquer(Z, melange)
print("après H :", melange)
print("après H puis Z :", apres_z)
# Les chances sont les mêmes avant et après Z. Changez H en [[1, 0], [0, 1]], puis relancez.

Une erreur fréquente

Attention

Beaucoup pensent que Z ne sert à rien, puisqu’elle ne change aucune chance. Elle change un signe, et un signe se voit plus tard. Placée entre deux portes H, elle change le résultat : c’est le sujet de la leçon 5.

Pour aller plus loin

Dans un carnet du labo, essayez show(apply(H, zero(1), 0)) puis show(apply(Y, zero(1), 0)). Le labo offre aussi les portes Y, S et T.

Appliquez H deux fois de suite à zero(1). Que remarquez-vous ? Écrivez une phrase qui explique le résultat avec les amplitudes.

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