Résumer les bases de l’informatique quantique est assez fastidieux, surtout qu’il existe d’excellents articles/ouvrages/blog spécialisés et très bien détaillés. (Voir la page bibliographie).
Balayons toutefois rapidement quelques concepts bien utiles pour comprendre les pages de ce blog.
J’espère que l’illustration de ces concepts unitaires sur IBM Q vous permettra de mieux les appréhender.
Prérequis
Pour comprendre cet article, il faut avoir un niveau « terminale S » en math : Les bases de la trigonométrie, du calcul matriciel, les nombres complexes (notation d’Euler, formule de Moivre), logique booléenne (principaux opérateurs).
Précisions sur les notations mathématiques
On travaille ici dans un espace de Hilbert (Hilbert Space). Par définition, c’est un espace vectoriel dans R ou dans C (complexe) qui a 1) un produit scalaire 2) qui est complet.
En quantique, c’est un espace d’Hilbert dans C, le produit scalaire est appelé hermitien. Il est noté <a,b> ou <a|b>.
Les opérateurs associés à la mesure des états quantiques (dans les portes quantiques) sont appelés des opérateurs Hermitiens (Hermitian operator). Les matrices de transformation associées, des matrices Hermitiennes (Hermitian matrix)
Le document [7] revient sur ces bases mathématiques qui ne sont pas vraiment utiles pour la compréhension de cette page.
Le Ket
Le Ket (ou notation de Dirac) est une notation définissant un état quantique (quantum state), noté |S> (c’est la motié d’un « bracket »). C’est une « matrice colonne. »
On note aussi les états fixes comme |0> et |1>
Vous comprenez maintenant le nom de ce blog. Première petite victoire dans le monde quantique ! 🙂
Le Bra, noté <b| est une « matrice ligne » ex :(0 1).
Du coup, <a|b> est un produit scalaire (produit hermitien).
et |b><a| est une transformation exprimée sous forme de matrice.
Le qubit
Le qubit est l’élément d’information quantique de base (concrètement, il peut être matérialisé par le spin d’un électron). Comme le bit, une fois mesuré, il ne prend que 2 valeurs : |0> ou |1>.
Toutefois, dans un état dit « superposé », il peut prendre une infinité de valeurs intermédiaires, combinaison linéaire de ces 2 états : a*|0> +b*|1>, avec, la probabilité a² d’être dans l’état |0> et la probabilité b² d’être dans l’état |1>. Avec a²+ b²=1 pour normer tout cela (sinon c’est le bordel, comme dirait Desproges). a et b sont 2 nombres complexes (voir plus bas, la sphère de Bloch).
L’état quantique d’un qubit peut alors être exprimé sous forme d’un vecteur à 2 dimensions (a,b). |0> = (1,0) et |1> = (0,1).
Pour simple qubit, on note généralement sous cette forme :
Pour imager (et ce n’est qu’une image : que les physiciens puristes me pardonnent), prenons une pièce de monnaie. A l’état stable, elle n’a que 2 valeurs possibles : pile ou face. Mais si vous la lancez en l’air, elle à une infinité de positions intermédiaires, pas vraiment pile, pas vraiment face, juste des rotations des ces 2 états d’équilibre.
Le temps où la pièce est en l’air est équivalent au temps (très court) de cohérence (coherence time), temps pendant lequel le qubit est dans un état superposé.
Quand la pièce touche par terre, elle se met dans une des 2 états stables : c’est la décohérence du qubit (perte des propriétés quantiques).

photo : radio-canada.ca
Plusieurs qubits
La notation de l’état quantique de plusieurs qubits s’exprime de façon similaire par une combinaison linéaire de tous les états possibles. Par exemple sur un système à 2 qubits:
L’état est donc caractérisé par un vecteur à 1 dimension avec 4 valeurs (les 4 alpha).
De façon générale, un système à n qubits, peut être représenté comme un vecteur à 1 dimension et 2^n valeurs (le nombre de configurations possibles). Cela devient vite un problème dans les simulateurs, comme nous l’expliquerons dans la page « Les limites actuelles ».
Les 4 différents vecteurs correspondants aux 4 états possibles d’un système à 2 qubits se retrouvent grâce au produit tensoriel (tensor product) :
La sphère de Bloch
Ces multiples états potentiels d’un qubit sont représentés sur une sphère (dite de Bloch). Imaginez simplement le qubit comme une flèche (le spin d’un atome) qui pointe dans une des directions de la sphère.
Il est alors aisé de définir sa position dans la base (|0>, |1>), modélisée par les 3 axes (x,y,z).
L’axe vertical (z) et en coordonnées polaires sur le plan (x,y). C’est une autre façon d’écrire la combinaison linéaire écrite plus haut.
Dans la base (x,y,z), nous avons |0> = (0,0,1) et |1>=(0,0,-1). Mais cette base n’est pas utilisée dans le calcul quantique. La base à 2 dimensions (|0>,|1>) est préférée, ce qui donnent des matrices de rotation 2×2 que nous allons découvrir dans la section suivante.
Les portes quantiques (quantum gates)
Une fois admis la notation Ket et la sphère de Bloch, on s’aperçoit que l’informatique quantique repose essentiellement sur des multiplications de matrices, visant à modifier l’état quantique via des matrices de rotations (si l’on en reste à l’interprétation mathématique). Ce sont des portes quantiques.
La plus évidente est celle qui fait passer de l’état |0> à |1> : la porte X (NOT, comme l’opérateur booléen), appelée la porte Pauli-X (du nom de son inventeur Wolfang Pauli – voir anecdotes). C’est une rotation de 180° d’un seul qubit autour de l’axe X dans la sphère de Bloch.
Ainsi X.|0> = |1>
Illustration avec IBM Q : q[0] a une valeur initiale de |0>. Après la porte X, la mesure (graphique de droite), montre un résultat de 1 dans 100% des 100 exécutions. (voir https://theketquest.home.blog/jouer-avec-ibm-q/)
Il existe d’autres portes de rotations : Pauli-Y (rotation autour de l’axe Y de 180° d’un seul qubit) et Pauli-Z (rotation autour de l’axe Z de 180° d’un seul qubit). Ces portes n’auront pas d’effet visible à ce stade, lors de la mesure d’un qubit |0> ou |1>.
La porte Hadamard
Cette porte est la plus emblématique et sans doute la plus utile. Elle s’applique à un seul qubit pour le faire passer d’un état 0> ou |1> à un état superposé (c’est à dire dans le cercle équatorial en pointillé sur la sphère de Bloch ci-dessus). Lors de la mesure, le qubit aura le même probabilité de devenir 0> ou |1>.
Le porte d’Hadamard (notée H), transforme |0> en (appelé |+>) et |1> en
(appelé |->)
La démonstration est assez simple, il suffit de multiplier la matrice par le vecteur |0> (1,0). On vérifie aisément que les probabilités sont identiques (1/2, 1/2).
Attention : La porte d’Hadamard est en fait la combinaison de deux rotations : 180° sur l’axe des X, suivie par une rotation de 90° sur l’axe Y. Une double porte Hadamard, revient à revenir à son état normal (H.H=I). Ce n’est pas un « double état superposé ! » 🙂
Illustration avec IBM Q : q[0] a une valeur initiale de 0. Après la porte H, la mesure , montre logiquement une répartition aléatoire, quasi-équiprobable, entre |0> (49%) et |1> (51%) sur les 100 exécutions.
La porte CNOT
C’est une porte extrèmement importante qui s’applique sur 2 qubits. CNOT pour Controlled-NOT.
Le premier qubit est dit de contrôle (control bit ou ancilla qubit). C’est A dans l’exemple, symbolisé par un petit rond noir.
Le second qubit est dit « target qubit », symbolisé par la croix (symbole XOR).
Si le qubit de contrôle = 0 alors le second qubit est inchangé.
Si le qubit de contrôle = 1 alors le second qubit est inversé (NOT, porte X).
La notation est mathématique est et CNOT est représenté sous cette forme :
La porte CNOT correspond à une matrice 4×4 :
La matrice d’entrée correspond à un vecteur 4×1 correspond aux 4 configurations d’entrée possible (00, 01, 10, 11), que l’on note |00>,|01>,|10>,|11>.
Exemple : A = |1> et B = |0> Ucn.(0,0,1,0) = (0,0,0,1) = |11> : on retrouve bien le résultat du tableau ci-dessus.
Illustration avec IBM Q : analysons 3 petits programmes pour bien comprendre cette porte CNOT.
Cas 1 : le qubit de contrôle est positionné à |1> grâce à la porte X (qui le fait passer de |0> à |1>). Le qubit |0> est appliqué à la porte CNOT et on retrouve bien |11> (soit 1 et 1) comme résultat de la mesure, conformément au calcul matriciel et au tableau ci-dessus.
Cas 2) Toujours en gardant le qubit de contrôle à |1> via une porte X, amusons nous à entrer dans la porte CNOT un qubit dans un état superposé (c’est à dire avec les 2 valeurs |0> |1> équiprobables). Comme vu au préalable, cela se fait avec une porte H (Hadamard) en entrée de la porte CNOT.
Le résultat observé est conforme à la théorie. Il y a une probabilité de 50% pour que le CNOT reçoive en entrée un |0> (ce qui générera un |1> en sortie) et 50% pour l’inverse ( |1> en entrée, |0> en sortie). On retrouve donc bien en sortie ces 2 mesures: |10> et |11>, quasiment équiprobables (aux erreurs près de mesures, inhérentes à un ordinateur quantique ; c’est pour cela que le même calcul est réalisé 100 fois sur un simulateur quantique en 1024 fois sur un ordinateur quantique).
Cas 3) Allons un cran plus loin et mettons en entrée de la porte CNOT deux qubits dans un état quantique superposé. Ainsi, même le qubit de contrôle pourra valoir |0> ou |1>. Logiquement, nous mesurons les 4 configurations possibles du tableau ci-dessous, correspondants aux 4 configurations en entrée (2²). Vous noterez la distribution quasi équiprobable des résultats (voir commentaire ci-dessus). Bien entendu, dans ce circuit, la porte CNOT ne sert à rien (même résultat sans), mais ces 3 cas successifs permettent de revoir tous les éléments de cette page.
Vous comprenez ce schéma et ces résultats ! Formidable, vous comprenez déjà les bases de l’informatique quantique.
La porte SWAP
La porte SWAP est une combinaison de 3 portes CNOT têtes-bêches permettant l’inversion de 2 qubits. La démonstration mathématique se fait par la multiplication des 3 matrices : Uswap = Ucn*Ucn*Ucn
Illustration avec IBM Q :
Malheureusement, dans IBM Q, le qubit de contrôle est toujours sur une ligne inférieure. Il n’est donc pas possible de mettre 2 portes têtes-bêches. Il faut recourir à une astuce qui permet de transformer une porte CNOT12 en CNOT 21 (dans cette notation, le premier nombre est le bit de contrôle).
Le calcul matriciel montre que
CNOT21 =
Dans le programme ci-dessous, q0= |0> et q1= |1> (|10>). On mesure bien à la sortie l’inverse : |01>:
La porte CCNOT (Toffoli gate)
Cette porte (Control-Control-NOT) s’applique à 3 qubits. Les deux premiers qubits (a et b dans le schéma ci-dessous) sont des qubits de contrôle. Si a et b valent 1, alors la porte NOT est appliquée sur c. Sinon, les qubits restent inchangés.
Comme expliqué dans la page jouer avec IBM Q, l’implémentation de cette porte n’est pas simple.
Pour aller plus loin
Dans cette page, nous avons vu les bases quantiques sous l’angle « mathématique ». Dans la page « Les bases #2 » nous approfondissons avec des concepts plus physiques.
Page mise à jour le 25/01/2019.
« Du coup, est un produit vectoriel (produit hermitien). »
Produit scalaire plutôt ?
J’aimeJ’aime
rhaaa oui ! Je corrige derechef. Scalaire m’a tuer.
J’aimeJ’aime
« On travaille ici dans un espace de Hilbert (Hilbert Space). Par définition, c’est un espace vectoriel dans R ou dans C (complexe) qui a 1) un **produit vectoriel** 2) qui est complet. »
produit scalaire (euclidien) plutôt que vectoriel ?
J’aimeJ’aime
oui ! je corrige. merci !
J’aimeJ’aime