Cet article est une introduction aux ordinateurs quantiques, tiré d’une conférence que j’ai présentée à BDXIO 2017. Elle a pour ambition d’aller plus loin que les articles de vulgarisation sur le sujet en montrant des exemples d’algorithmes quantiques.
Un grand merci à Helena Sliwinska pour sa relecture éclairée !
Nos ordinateurs classiques nous ont suffi jusqu’à maintenant…
Le nombre de transistors dans les microprocesseurs double tous les deux ans.
Cette loi a été énoncée par Gordon E. Moore, l’un des trois fondateurs d’Intel, en 1975. Elle a été très bien vérifiée pendant de nombreuses années.
Cependant, cette loi est exponentielle. Or nous savons tous que les lois exponentielles ne peuvent fonctionner qu’un temps, jusqu’à ce qu’on atteigne les limites du système.
En ce qui concerne les processeurs, les limites sont les suivantes :
Ces limites physiques conduisent au plafonnement des performances des processeurs, et la fin de la validité de la loi de Moore a été annoncée en 2016.
A titre d’exemple, voici l’évolution de la puissance des super-caculateurs de Météo France entre 1992 et 2016, l’échelle est logarithmique :
Voici des estimations du nombre d’ordinateurs dans les datacenters des plus grandes entreprises du web :
Les besoins en calculs des grandes entreprise sont donc énormes et vont croissant. La consommation des datacenters représente 2 % de la consommation modiale d’électricité.
Les besoins croissants en puissance de calcul ainsi que les limites des
technologies actuelles rendent nécessaires des avancées majeures dans le
domaine du matériel informatique.
L’idée d’ordinateur quantique vient à Richard Feynman dans les années 80 :
Au lieu de nous plaindre que la simulation des phénomènes quantiques demande
des puissances énormes à nos ordinateurs actuels, utilisons la puissance de
calcul des phénomènes quantiques pour dépasser nos ordinateurs actuels.
L’idée est restée assez vague, jusqu’à ce que :
L’intérêt pratique de ces deux algorithmes, pour la cryptographie et la recherche de données, a poussé à l’implémentation concrète d’ordinateurs quantiques. Et il se trouve que les gens qui s’intéressent à ces domaines, comme la NSA ou Google, ont des moyens.
Avant d’étudier le fonctionnement d’un ordinateur quantique, il nous faut essayer de comprendre deux principes de la physique quantique : la superposition et l’intrication.
Avertissement
Les notions que nous allons voir maintenant ne sont pas intuitives car le monde à notre échelle est régi par les lois de la physique classique. Les lois de l’évolution des espèces ont fait en sorte que nous soyons adaptés à cet univers classique.
Par conséquent, les images que nous utiliserons sont nécessairement limitées et seules les mathématiques nous permettent de modéliser correctement les lois de la physique quantique. Notre intuition ne peut plus rien faire pour nous dans le monde quantique.
Une particule, qui est infiniment petite et donc régie par les lois de la physique quantique, peut se trouver dans un état indéterminé tant qu’on n’a pas mesuré son état.
Donc si une particule peut avoir deux états : soit spin up (représenté par |u>) soit spin down (représenté par |d>) alors, on peut représenter son état par :
a.|u> + b.|d>
Où a et b déterminent la probabilité d’observer la particule dans l’état |u> ou |d>.
Les vecteurs d’état de la physique quantique ne sont pas les vecteurs de la géométrie habituelle. Ils sont définis dans une base des états orthogonaux, ou mutuellement exclusifs. Dans le cas du spin, les vecteurs de base sont |u> et |d>.
De plus, lorsqu’on écrit un état quantique sous la forme :
a.|u> + b.|d>
Dans cet état, la probabilité de l’état up est |a|² et la probabilité de l’état down est |b|² et a et b vérifient |a|² + |b|² = 1.
La mathématique de la physique quantique est l’algèbre linéaire, qui nous parle de vecteurs et de matrices.
On peut se dire que c’est pareil pour un système classique à deux états (comme une pièce de monnaie qui peut être pile ou face), mais il n’en est rien. En effet, même si on ne regarde pas la pièce de monnaie, on sait qu’elle est soit pile soit face.
Dans le cas de la particule quantique, c’est différent : avant la mesure, son état est une superposition des deux états.
On peut faire le parallèle avec un billet de loterie : tant que le tirage n’a pas eu lieu, le billet est à la fois perdant ET gagnant. Et ce n’est pas parce qu’il nous manque des informations sur ce billet.
Deux objets quantiques peuvent être liés de sorte que si l’on connait l’état de l’un, on peut en déduire l’état de l’autre. Ce phénomène s’appelle l’intrication quantique.
Ainsi, à l’issu de la désintégration d’une particule en deux autres, il peut arriver que les spins de ces deux particules soient intriqués. Si on connait le spin de l’une on peut en déduire celui de l’autre, et ce quelle que soit la distance qui les sépare.
On peut expliquer ce phénomène par le fait que ces particules intriquées, qui peuvent être en nombre quelconque, forment un seul système.
L’ordinateur quantique traite, comme son homologue classique, de l’information. La différence majeure entre ces deux types d’ordinateur est la manière de représenter cette information.
L’ordinateur classique représente l’information sous forme de bits (pour binary digit) qui peuvent avoir pour valeurs 0 ou 1.
L’ordinateur quantique représente l’information à l’aide de qubits (pour quantum binary digit) qui a un état qui est une superposition de deux états, que l’on peut noter |0> et |1> :
a.|0> + b.|1>
Cela est possible du fait du principe de superposition quantique.
L’intérêt de manipuler des qubits au lieu de bits est le suivant :
Les bits ne pouvant prendre qu'un état à la fois, il est souvent nécessaire
d'itérer sur de nombreuses valeurs pour réaliser un calcul. Au contraire, les
calculs réalisés avec des qubits opèrent sur toutes les valeurs en même temps.
Par exemple, pour décomposer en facteurs premiers, il nous faudra essayer de diviser par tous les nombres premiers inférieurs à la racine carrée. Un algorithme quantique ne procédera pas par essais successifs, mais travaillera avec des qubits qui prendront toutes les valeurs possibles.
Un nombre de n bits pouvant prendre 2ⁿ valeurs, il faudra faire 2ⁿ itérations pour balayer toutes les valeurs possibles avec des bits classiques, alors que toutes ces valeurs peuvent être représentées à la fois par n qubits.
On peut donc attendre une accéleration quantique de 2ⁿ avec un ordinateur
quantique à n qubits.
Pour n = 50, on obtient une accélération d’un facteur 1.125.899.906.842.624, soit environ 1 million de millards…
Pour implémenter des qubits utilisables pour le calcul, il faut être capable de réaliser un système macroscopique ayant des propriétés quantiques pendant un temps suffisamment long.
On utilise actuellement, entre autres, les procédés suivants :
Les circuits supraconducteurs avec jonction Josephson : technologie mise en œuvre par IBM depuis la fin des années 70 permettant d’envisager des circuits ayant une bonne résistance à la décohérence.
Les ions piégés sont constitués de particules chargées piégées par des champs magnétiques dans des espaces clos et y sont contrôlés par laser. Ils permettent de mettre en œuvre le plus grand nombre de qubits.
Il existe un très grand nombre d’autres implémentations de qubits. Mais ce qu’il faut retenir, c’est que toutes sont délicates à mettre en œuvre, et souvent à de très basses températures afin d’éviter les perturbations extérieures.
Voici à quoi ressemble l’ordinateur quantique d’IBM :
Le processeur quantique IBM à 16 qubits :
Au vu de la taille des installations nécessaires et de la complexité de mise en œuvre (installation cryogénique), on comprend que l’ordinateur quantique est confiné dans des centres de calcul.
D’autre part, du fait de la taille réduite des données en entrée et en sortie, typiquement quelques bits, on peut envisager des accès par le web.
Par conséquent, on ne peut s’attendre à un usage grand public de l’informatique quantique dans un futur proche, du moins sous la forme d’appareils possédés par des particuliers.
Décohérence
La décohérence résulte de l’action de l’environnement sur un système qui perd alors ses propriétés quantiques. Pour pouvoir réaliser un ordinateur quantique, les qubits doivent avoir une durée de cohérence supérieure au temps de calcul.
Réduction du paquet d’onde
Lorsqu’on lit le résultat du calcul, on réalise une mesure et donc les qubits deviennent de simples bits et par conséquent de simples 0 ou 1. Les qubits ne le restent que le temps du calcul.
Théorème de non clonage des qubits
La copie est une opération classique en informatique. Lors d’une copie on doit lire l’état pour le recopier à l’identique ailleurs. Or en ce faisant, on réalise une mesure et par conséquent, les qubits redeviennent de simples bits.
Par conséquent, il est impossible de copier des qubits.
Nombre de qubits
Pour obtenir des résultats ayant des applications pratiques, il est nécessaire de disposer d’un grand nombre de qubits.
Par exemple, pour factoriser de grands nombres, il faut disposer d’au moins autant de qubits qu’il y a de bits dans ce nombre. Donc en pratique plusieurs centaines, voire milliers.
D’autre part, l’accélération quantique étant en 2ⁿ, il est clair qu’on a inrétêt à augmenter le nombre de qbits des ordinateurs.
Les algorithmes quantiques sont composés de portes quantiques appliquées aux qubits pour réaliser des opérations sur ceux-ci.
En pratique, on représente souvent les algorithmes sous forme d’une partition dans laquelle chaque ligne représente un qubit et où les portes quantiques sont placées sur ces lignes.
L’état d’un qubit étant probabiliste, le résultat d’un calcul quantique l’est aussi. On répète donc souvent le calcul pour obtenir une probabilité du résultat proche de 1.
Pour montrer un exemple de mise en œuvre d’un algorithme quantique, nous pouvons utiliser l’outil qu’IBM met à disposition en ligne à l’adresse :
http://quantumexperience.ng.bluemix.net
Après inscription, on accède à une page, le composer, nous permettant d’éditer notre partition :
Sur cette page, nous trouvons :
Les qubits sont tous initialement à l’état |0>. Nous pouvons changer leur état avec la porte X qui inverse l’état d’un qubit.
De plus, il faut toujours effectuer une mesure à la fin de notre partition pour pouvoir l’exécuter.
Lorsque nous effectuons une mesure, nous obtenons le résultat sous forme d’un bit classique. Nous disposons ainsi de 5 qubits et 5 cbits, les bits classiques qui contiennent le résultat de notre calcul.
Lorsque nous avons composé notre partition, nous pouvons l’exécuter sur un simulateur ou sur un processeur quantique.
Par exemple, si nous voulons laisser le premier qubit à l’état |0> et faire passer le second à l’état |1>, puis réaliser une mesure de ces qubits, nous composerons :
Après avoir cliqué sur Simulate, nous obtenons la page suivante :
Ce résultat se présente sous la forme d’un histogramme où :
Dans la représentation de l’état après la mesure, le premier qubit est le plus à droite.
Ce résultat est probabiliste comme toute mesure quantique.
La porte H (pour Hadamard) transforme le qubit |0> en un état de superposition de |0> et de |1> à égale probabilité. Ainsi, la partition suivante :
Donne le résultat suivant :
Nous mesurons bien (quasiment) autant de |0> que de |1>.
Pour pouvoir réaliser des calculs intéressants, il nous faut disposer de portes capables de réaliser des opérations conditionnelles. C’est le cas de la porte CNOT (pour controlled not) qui inverse l’état du second qubit si le premier est à |1> et ne fait rien sinon.
Ce qui donne 00 (pour les deux premières lignes) et 11 (pour les deux suivantes).
Nous pouvons intriquer deux qubits avec le circuit suivant :
Ce qui donne 00 ou 11 avec la même probabilité pour le premier circuit, et 01 ou 10 avec le même probabilité, pour le deuxième circuit.
Dans le premier cas, les deux qubits ont la même valeur, dans le deuxième, ils ont des valeurs inverses. Ils sont donc intriqués.
Voici un exemple d’algorithme quantique qui permet de réaliser une recherche avec √n itérations.
IBM travaille sur les ordinateurs quantiques depuis plus de 35 ans.
IBM espère à terme développer un processeur quantique à 50 qubits.
D-Wave est un entreprise Canadienne pionnière en informatique quantique.
Les machines D-Wave sont cependant critiquées car elles utilisent un procédé appelé Quantum Annealing qui est pour certains une impasse pour le calcul quantique. Cette technologie ne permet de résoudre que des problèmes d’optimisation.
Google est un client de D-Wave, mais a aussi développé sa propre technologie de calcul quantique. Cette technologie est un hybride entre celle d’IBM et celle de D-Wave.
Google investit massivement dans l’ordinateur quantique. Dans un article de mars 2017, soit le même mois où IBM annonçait IBM Q, des ingénieurs travaillant chez Google ont prédit que :
Dans quelques années, les ordinateurs quantiques seront plus puissants
que tout ordinateur classique pour réaliser certaines tâches.
Microsoft travaille sur les ordinateurs quantiques avec une initiative appelée Station Q, basée essentiellement sur une technologie appelée topological quantum computing.
En décembre 2016, Intel a révélé qu’il travaille sur la réalisation de puces quantiques sur silicium.
En juillet 2016, Alibaba, le géant du commerce en ligne Chinois, s’est associé avec l’académie des sciences Chinoise pour mettre sur pied un laboratoire de calcul quantique, le Alibaba Quantum Computing Laboratory.
En juillet 2017, Atos annonce son Atos Learning Machine, un ordinateur classique capable de simuler 40 qubits. Il permet aux chercheurs et développeurs de travailler sur des algorithmes quantiques.
Il existe beaucoup de problèmes dont la complexité est exponentielle. Un exemple simple est le placement de convives autour d’une table : pour 3 convives, il y a 3 x 2 x 1 = 3! = 6 possibilités. Pour 10 convives, nous sommes à 10!, soit plus de 3 millions !
On rencontre ce type de complexité exponentielle dans les types de problèmes suivants :
Ces problèmes essentiels sont pourtant hors de portée des ordinateurs classiques.
Nous avons vu que l’accélération que l’on peut attendre d’un ordinateur quantique à n qubits est 2ⁿ. Pour un ordinateur à 50 qubits, cela donne une accélération d’un facteur d’un million de milliards environ.
Avec une telle accélération, des problèmes qui étaient impossibles à résoudre (dans des temps raisonnables) sont maintenant à portée. Cette limite de 50 qubits est appelée suprématie quantique, c’est la limite à partir de laquelle un ordinateur quantiques devient plus puissant que tout ordinateur classique.
On comprend donc pourquoi les entreprises qui travaillent dans le domaine de l’informatique quantique se livrent une course effrénée pour atteindre cette limite.
Au delà de l’aspect marketing de cette course à la suprématie quantique, on attend de ces ordinateurs qu’ils puissent permettre des avancées majeures dans les domaines suivants :
Les sources s’accordent sur une révolution dans ces domaines dans les 5 années à venir.
Pour comprendre en profondeur le fonctionnement des ordinateurs quantiques, il faut commencer par se familiariser avec la physique quantique. Je conseille donc de lire l’ouvrage de Leonard Susskind Le minimum théorique, Mécanique Quantique.
On pourra ensuite expérimenter avec l’ordinateur quantique d’IBM sur le site web :
http://quantumexperience.ng.bluemix.net
L’inscription est gratuite et ouverte à tout le monde. Le site propose de la documentation en ligne, pour les débutants et les utilisateurs confirmés.
En plus de l’interface graphique du composer, on peut aussi utiliser le langage de programmation Qasm ou bien une API Python.
Enjoy!