Parce qu'il est facile de critiquer et de se moquer, je vous propose, en réponse, un tour d'horizon des principales erreurs liées à l'informatique quantique. Et puis, par soucis d'honnêteté intellectuelle, je fais avant tout remarquer à mes lecteurs, que vue la hauteur où les autres blogueurs ont placé la barre, je ne risque pas grand'chose. Et l'autre argument qui a fini de me décider d'écrire ce billet est la lecture de la page wikipedia Ordinateur quantique, qui ne mériterait que d'être effacée.
1. L'ordinateur quantique n'est pas un ordinateur
Un ordinateur est une machine qui prend deux entrées : un programme et des données puis exécute ce programme avec les données fournies. Bref un ordinateur peut faire tourner n'importe quel programme (décidable).
Actuellement, on parle plutôt de calculateur quantique car ce que les physiciens essayent de faire ne pourra calculer qu'une seule fonction. Ou, si vous préférez, il y a aura un calculateur pour le traitement de texte, un calculateur pour naviguer sur internet,etc... pas très commode.
Mais est-ce qu'un ordinateur quantique peut exister ? La réponse est oui, en terme savant, on dit qu'il existe une machine de Türing quantique universelle.[1] Quelle en sera son architecture ? Je n'en sais rien, et je ne sais même pas si des gens le savent, mais il est prouvé qu'un tel système peut exister.
2. Un calculateur quantique ne fait pas tous les calculs en
parallèle
L'erreur principale qu'on entend à propos de l'ordinateur quantique, c'est qu'il fait tous les calculs en parallèle, très pratique donc pour résoudre un sudoku puisqu'il essaye toutes les grilles en même temps. Et bien c'est faux.
Cette erreur est due à la mauvaise compréhension d'un phénomène purement quantique : la superposition, ou plus vulgairement appelé chat de Schrödinger.
Lecteurs, permettez-moi une digression sur le chat de Schrödinger, et
laissez-moi vous expliquer que je trouve cette image nulle et incompréhensible,
et qu'elle se trouve, par son côté un peu sexy, le chat est vivant et mort à
la fois
, finalement contre-productive.
Vous connaissez tous les probabilités. Avec des probabilités, on dit que le chat est 50% mort + 50% vivant. Et là en fait, il n'y a pas grand'chose de quantique, juste un ersatz. Ce que l'on manipule en mécanique quantique, ce ne sont plus les probabilités, mais les amplitudes de probabilité. Et ça fait toute la différence. Une amplitude de probabilité, c'est un nombre positif ou négatif[2] dont son carré est une probabilité. Ainsi en mécanique quantique on écrira pour le chat :
- 1/√(2) mort + 1/√(2) vivant
- 1/√(2) mort - 1/√(2) vivant
- - 1/√(2) mort + 1/√(2) vivant
- - 1/√(2) mort - 1/√(2) vivant
Et lorsqu'on ouvrira la boîte pour savoir s'il est mort ou vivant, nous aurons une probabilité de 50% de le trouver dans un état ou un autre. Mais qu'est-ce que ça change alors ? Tout, parce que cela permet de faire des interférences, et que, précisément, ce sont ces fameuses interférences qui permettent de faire certains calculs plus rapidement.
Un calcul, c'est une série d'étapes qui renvoient des résultats intermédiaires, la dernière renvoyant le résultat final. Dans un calcul classique, on sait exactement quelle étape on va effectuer ensuite, pas dans le calcul quantique, on choisi l'ordre des étapes avec des amplitudes de probabilité en fonction du résultat de l'étape courante.
Comment fait-on alors pour savoir la probabilité de lire le bon résultat ? On fait la somme des amplitudes de probabilité de tous les chemins qui, d'étapes en étapes, arrivent sur la bonne réponse. Puis ensuite on élève cette quantité au carré. Et pareil pour les mauvaises. Si un chemin a une amplitude de probabilité positive et un autre chemin une amplitude de probabilité négative, alors il va y avoir une interférence destructive, et cette réponse n'apparaîtra pas.
Faire un algorithme quantique, c'est se débrouiller pour qu'il y ait des interférences constructives sur les chemins qui mènent à la bonne réponse, afin qu'on puisse lire la réponse attendue avec une grande probabilité, et faire des interférences destructives sur les chemins qui mènent aux mauvaises réponses.
Ainsi, pour faire court, on part de toutes les entrées possibles, et le calcul se faisant, la probabilité de la bonne réponse augmente, ce qui n'a, avouez-le, pas grand'chose à voir avec faire tous les calculs en même temps, et puis, hop, par magie, choisir à la fin le bon résultat.
3. Un calculateur quantique ne sait pas résoudre un problème NP-complet (enfin, on pense)
Commençons par une page culturelle :
De tout temps, les informaticiens se sont entêtés à classer les problèmes.[3] Il existe plusieurs centaines de classes de problèmes, mais les deux plus connues sont P et NP. P est la classe des problèmes qu'il est possible de résoudre en temps Polynomial avec un ordinateur classique, c'est à dire, qu'on sait les résoudre vite. NP est la classe des problèmes qu'il est possible de résoudre en temps Polynomial avec un ordinateur Non-déterministe.[4]. NP c'est la classe des problèmes très longs à résoudre, mais si on possède une solution, c'est facile de vérifier qu'il s'agit de la bonne.
Un problème dans P est donc aussi dans NP.
LA question de l'informatique théorique depuis des années, c'est de savoir si P=NP ou P≠NP. La quasi-unanimité va à l'hypothèse P≠NP à notre époque, il n'en allait pas de même il y a 30 ans.
Dans NP, la classe des problèmes difficiles, il y a ceux qui sont vraiment difficiles, c'est à dire qu'en résoudre un permet de résoudre ensuite très vite tous les autres problèmes dans NP, c'est problèmes sont dit NP-complets.
Tous les problèmes dans NP connus, ont été démontrés être soit dans P, soit être NP-complets. Tous, sauf 2. Peut-être sont-ils dans P, peut-être sont-ils NP-complets, peut être entre ces deux classes, on ne sait pas. Il s'agit du problème dit de l'isomorphisme de graphe et de celui de la décomposition d'un entier en facteurs premiers.
Fin de la page culturelle, revenons au quantique.
Aucun problème NP-complet n'a été résolu en temps polynomial avec un ordinateur quantique. Peut-être un jour, mais la communauté scientifique qui s'intéresse à cette question est très perplexe et n'y croit plus.
4. Il y n'y a pas que 2 algorithmes quantiques
Le calcul quantique permet de calculer exactement les mêmes fonctions qu'un ordinateur classique. Donc tous les algorithmes classiques peuvent exister en quantique. Ce qui se passe, c'est qu'il y a certains problèmes que l'on sait résoudre plus rapidement grâce au calcul quantique, et il y en a aussi pour lesquels le calcul quantique n'améliore pas même d'un ι la rapidité.
Alors quels sont ces deux algorithmes tellement connus qu'ils occultent les autres ?
- L'algorithme de Shor (1994) qui permet de calculer efficacement (P) le logarithme discret. Un truc de mathématiques pures apparemment, sauf que savoir calculer le logarithme discret efficacement permet la décomposition d'un entier en facteurs premier, et ça, c'est casser la plus grande branche de la cryptographie moderne, celle qui est utilisée aussi bien dans le https que dans les cartes bleues.
- L'algorithme de Grover (1995) qui permet de rechercher un élément dans une base de donnée non triée en O(√n), c'est impressionnant, un élément est trouvé 1000 fois plus rapidement avec un calculateur quantique pour une base de données d'un million d'entrée, ça pourrait presque faire envie à Google.[5]
Il y a aussi des algorithmes qui permettent de calculer des polynômes plus rapidement, mais c'est anecdotique.
En revanche, un algorithme dont on devrait beaucoup entendre parler la suite est celui de Farhi, Goldston et Gutmann, découvert en février 2007 pour résoudre en √n le problème du NAND-Tree. J'ose pas trop en parler de peur de dire n'importe quoi tellement je connais peu. Je préfère vous indiquer l'article sur le blog de Scott Aaronson qui en parle, mais c'est en anglais.
5. La cryptographie quantique n'est pas une conséquence de l'ordinateur
quantique
Je sais, il est tentant de répondre à : Alors, comment va-t-on faire
pour sécuriser nos échanges si RSA est cassé ?
par Heureusement, grâce à
la mécanique quantique, encore elle, il existe une parade
La cryptographie quantique est apparue en 1984 dans le célèbre article [BB84], alors que l'algorithme de Shor date seulement de 1994, soit dix ans entre les deux.
Dans un élan de générosité, je répondrai, dans la mesure des mes moyens, évidement, à toutes les questions qui, malgré les trésors d'ingéniosité que je viens de déployer, continuent de se bousculer dans votre tête.
Notes
[1] Un ordinateur étant une machine de Türing universelle
[2] complexe dans le cas général
[3] Oui, de tout temps, déjà dans les années 30, c'est pour dire...
[4] NP ne veut donc pas dire Non Polynomial !
[5] Parce que leur base de données sont totalement structurées, et que donc, cet algorithme n'est pas vraiment exploitable...