{"id":16154,"date":"2018-07-26T08:28:51","date_gmt":"2018-07-26T07:28:51","guid":{"rendered":"http:\/\/www.oezratty.net\/wordpress\/?p=16154"},"modified":"2018-07-31T17:10:44","modified_gmt":"2018-07-31T16:10:44","slug":"comprendre-informatique-quantique-complexite","status":"publish","type":"post","link":"https:\/\/www.oezratty.net\/wordpress\/2018\/comprendre-informatique-quantique-complexite\/","title":{"rendered":"Comprendre l&#8217;informatique quantique &#8211; complexit\u00e9"},"content":{"rendered":"<p>Dans la <a href=\"https:\/\/www.oezratty.net\/wordpress\/2018\/comprendre-informatique-quantique-algorithmes-et-applications\/\">partie pr\u00e9c\u00e9dente<\/a> de cette s\u00e9rie estivale sur l\u2019informatique quantique, nous avons fait le tour des principaux algorithmes quantiques connus, de leurs domaines d\u2019applications et de leur performance relative.<\/p>\n<p>Le calcul quantique est parfois pr\u00e9sent\u00e9 comme \u00e9tant une solution miracle aux limites du calcul sur supercalculateurs. Il permettrait de r\u00e9soudre des probl\u00e8mes dits \u201cintractables\u201d sur des ordinateurs classiques. Mais au juste, quelle est la nature des probl\u00e8mes qui peuvent \u00eatre r\u00e9solus avec un ordinateur quantique et qui ne peuvent pas l\u2019\u00eatre avec des ordinateurs classiques ? Et surtout, quelles sont les limites des ordinateurs quantiques ? Comment se situent-elles par rapport aux limites de l\u2019intelligence artificielle ?<\/p>\n<p>Nous allons voir que ces limites sont plut\u00f4t floues et mouvantes. Elles sont trait\u00e9es dans un champ complet et m\u00e9connu de la science, celui des <strong>th\u00e9ories de la complexit\u00e9<\/strong>. C\u2019est un monde on ne peut plus abstrait o\u00f9 les sp\u00e9cialistes parlent un langage abscons fait de P, NP, BQP et autres compl\u00e9tudes. Ils gambergent depuis pr\u00e8s d\u2019un demi-si\u00e8cle pour d\u00e9terminer si <strong>P = NP ou pas<\/strong>, une question aussi importante que le r\u00f4le exact du nombre 42 dans le fonctionnement de l\u2019Univers. C\u2019est la science des classes de complexit\u00e9 de probl\u00e8mes. Derri\u00e8re ces math\u00e9matiques de la complexit\u00e9 se cachent des consid\u00e9rations techniques mais aussi philosophiques fondamentales pour l\u2019Homme et son d\u00e9sir de toute puissance.<\/p>\n<p>Les classes de complexit\u00e9 de probl\u00e8mes sont des poup\u00e9es russes plus ou moins emboit\u00e9es les unes dans les autres. Elles tournent surtout autour de la question de la mont\u00e9e en charge du temps de r\u00e9solution des probl\u00e8mes en fonction de leur taille.<\/p>\n<p>On ne sait r\u00e9soudre dans un temps raisonnable que les probl\u00e8mes dits polynomiaux ou plus simples que les polynomiaux. Un temps polynomial est proportionnel \u00e0 une puissance donn\u00e9e de N, N \u00e9tant la dimension du probl\u00e8me \u00e0 r\u00e9soudre. L\u2019informatique quantique permet dans certaines conditions de r\u00e9soudre certains probl\u00e8mes dits exponentiels, qui croissent de mani\u00e8re exponentielle avec leur taille. Au-del\u00e0 se situent divers probl\u00e8mes inaccessibles qui rel\u00e8vent souvent de simulations complexes ou de r\u00e9solutions par force brute. Bref, les ordinateurs quantiques ne pourront pas r\u00e9soudre tous les probl\u00e8mes qui nous passeront par la t\u00eate, m\u00eame le jour o\u00f9 l\u2019on pourra aligner des gazillions de qubits avec un taux d\u2019erreur infinit\u00e9simal.<\/p>\n<p>Ces limites ont un impact indirect sur les pr\u00e9visions concernant la cr\u00e9ation d\u2019intelligences artificielles omniscientes capables de transcender le raisonnement humain et de r\u00e9soudre tous les probl\u00e8mes. Ces hypoth\u00e9tiques AGI (Artificial General Intelligence) seront limit\u00e9es par les donn\u00e9es et concepts qui les alimentent et par l\u2019impossibilit\u00e9 de r\u00e9soudre certains probl\u00e8mes complexes, notamment ceux qui rel\u00e8vent de la pr\u00e9vision et de la simulation et qui reposent sur la force brute plut\u00f4t sur des astuces algorithmiques permettant d\u2019aboutir rapidement \u00e0 la solution.<\/p>\n<p>Le calcul ultime n\u2019existe donc pas encore et l\u2019Homme continuera \u00e0 faire face \u00e0 l\u2019impossible et ne pourra pas r\u00e9soudre tous les probl\u00e8mes complexes qu\u2019il rencontrera ! Bref, le calcul quantique ne permet pas de dominer la nature et de mettre en \u00e9quation l\u2019Univers et d\u2019en pr\u00e9voir le fonctionnement au quantum pr\u00e8s. Le hasard, l\u2019impr\u00e9vu et le libre arbitre continueront de jouer un r\u00f4le dans un monde tr\u00e8s ind\u00e9terministe et c\u2019est tant mieux comme cela. C\u2019est une petite le\u00e7on d\u2019humilit\u00e9 pour l\u2019Homme que de passer son temps \u00e0 d\u00e9couvrir des limites scientifiques \u00e0 ses besoins de contr\u00f4le !<\/p>\n<p><strong>Classes de complexit\u00e9 de probl\u00e8mes<\/strong><\/p>\n<p>Pour rentrer dans ce sujet, il faut en passer par d\u00e9finir les grandes classes de probl\u00e8mes par niveau de complexit\u00e9. Elles font partie d\u2019un champ entier de la logique et des math\u00e9matiques qui agite un petit monde de sp\u00e9cialistes. Me voil\u00e0 donc une fois encore amen\u00e9 \u00e0 devoir simplifier la complexit\u00e9, et cette fois-ci, au sens litt\u00e9ral du terme.<\/p>\n<p>Dans la pratique, les classes de complexit\u00e9 d\u00e9crivent des probl\u00e8mes que l\u2019on r\u00e9sout par force brute en testant plusieurs combinatoires. Ils ne rel\u00e8vent pas d\u2019\u00e9quations math\u00e9matiques simples que l\u2019on r\u00e9sout avec des formules permettant d\u2019aboutir directement \u00e0 la solution comme on le fait pour pr\u00e9dire la position des plan\u00e8tes en s\u2019appuyant sur les lois de la m\u00e9canique newtonienne.<\/p>\n<p>Les classes de probl\u00e8mes font appel \u00e0 une notion de machines d\u00e9terministes et non d\u00e9terministes de Turing. De quoi s\u2019agit-il ? Les machines de Turing sont les mod\u00e8les conceptuels d\u2019ordinateurs cr\u00e9\u00e9s par Alan Turing avant la seconde guerre mondiale. Elles mod\u00e9lisent les traitements informatiques en s\u2019appuyant sur la notion de programmes et de donn\u00e9es, incarn\u00e9es par des rouleaux de papier continus, le premier pour le programme, le second pour les donn\u00e9es en entr\u00e9e et le troisi\u00e8me pour g\u00e9n\u00e9rer les r\u00e9sultats (sch\u00e9ma <em>ci-dessous<\/em>, <a href=\"http:\/\/theory.cs.princeton.edu\/complexity\/book.pdf\">source<\/a>). Des \u00e9tudiants d\u2019un master de l\u2019ENS Lyon ont r\u00e9alis\u00e9 une machine de Turing en Lego en 2012 \u00e0 l\u2019occasion du centenaire de la naissance d\u2019Alan Turing (<a href=\"https:\/\/videotheque.cnrs.fr\/doc=3001\">vid\u00e9o<\/a>) et ce n\u2019\u00e9tait pas la seule du genre (<a href=\"https:\/\/www.youtube.com\/watch?v=FTSAiF9AHN4\">vid\u00e9o<\/a>) ! Un Anglais en a aussi r\u00e9alis\u00e9 une en bois en 2015 (<a href=\"https:\/\/www.youtube.com\/watch?v=vo8izCKHiF0\">vid\u00e9o<\/a>). Voil\u00e0 de quoi s\u2019\u00e9duquer ludiquement !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Machine-de-Turing.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Machine de Turing\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Machine-de-Turing_thumb.jpg\" alt=\"Machine de Turing\" width=\"519\" height=\"344\" border=\"0\" \/><\/a><\/p>\n<p>Le mod\u00e8le th\u00e9orique de Turing est utilis\u00e9 depuis longtemps pour d\u00e9finir les classes de probl\u00e8mes que l\u2019on peut r\u00e9soudre ou pas avec un ordinateur. Les ordinateurs sont tous m\u00e9taphoriquement des machines de Turing, reproduisent cette logique en lisant des instructions de programmes et en g\u00e9rant les donn\u00e9es en m\u00e9moire vive (RAM) ou en stockage persistent (disque dur, SSD, \u2026). Est associ\u00e9e \u00e0 la notion de machine de Turing celle de la <strong>th\u00e8se de Church-Turing<\/strong>, des noms d\u2019Alonzo Church et Alan Turing selon laquelle il existe une \u00e9quivalence entre probl\u00e8mes de calcul r\u00e9alisable \u00e0 la main et avec des ressources non limit\u00e9es, ceux qui sont traitables avec une machine de Turing et les ceux qui peuvent \u00eatre r\u00e9solus avec des fonctions dites r\u00e9cursives.<\/p>\n<p>Dans une machine d\u00e9terministe, la s\u00e9quence des actions \u00e0 r\u00e9aliser est pr\u00e9d\u00e9finie et s\u00e9quentielle. Dans le mod\u00e8le conceptuel de machine de Turing non d\u00e9terministe, les r\u00e8gles de calcul peuvent imposer de r\u00e9aliser plusieurs op\u00e9rations diff\u00e9rentes pour chaque situation \u00e9valu\u00e9e. En gros, en explorant plusieurs voies en parall\u00e8le et en cherchant une r\u00e9ponse positive \u00e0 une composante d\u2019algorithme et en fermant des boucles de tests parall\u00e8les une fois les sous-solutions trouv\u00e9es.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Non-derterministic-Turing-machine-model.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Non derterministic Turing machine model\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Non-derterministic-Turing-machine-model_thumb.png\" alt=\"Non derterministic Turing machine model\" width=\"388\" height=\"226\" border=\"0\" \/><\/a><\/p>\n<p>C\u2019est plus ou moins le mod\u00e8le de navigation dans l\u2019arbre de d\u00e9cision de la version 2017 d\u2019AlphaGo, dite <a href=\"https:\/\/www.oezratty.net\/wordpress\/2017\/consequences-pratiques-alphago-zero\/\">AlphaGo Zero<\/a>, qui \u00e9value dans un r\u00e9seau de neurones diff\u00e9rents sc\u00e9narios de jeu. Bref, une machine non d\u00e9terministe augmente la combinatoire de calcul par rapport \u00e0 une machine d\u00e9terministe. Et cette combinatoire passe de polynomiale \u00e0 exponentielle. La force d\u2019AlphaGo Zero est d\u2019utiliser des r\u00e9seaux de neurones en quelque sorte r\u00e9cursif pour r\u00e9duire le nombre de branches de l\u2019arbre de d\u00e9cision \u00e0 tester pour sortir partiellement de la fatalit\u00e9 exponentielle de ce jeu.<\/p>\n<p><strong>Les classes de complexit\u00e9 g\u00e9n\u00e9riques<\/strong><\/p>\n<p>Le niveau de complexit\u00e9 s\u2019entend vis \u00e0 vis du temps de calcul n\u00e9cessaire et de l\u2019espace m\u00e9moire n\u00e9cessaire pour ces calculs. En r\u00e8gle g\u00e9n\u00e9rale, on est bloqu\u00e9 par le temps de calcul avant de l\u2019\u00eatre par la capacit\u00e9 m\u00e9moire. L\u2019association d\u2019un probl\u00e8me \u00e0 une classe de complexit\u00e9 est li\u00e9e \u00e0 la performance du meilleur algorithme connu pour r\u00e9soudre ledit probl\u00e8me.<\/p>\n<p>Les niveaux de classes de probl\u00e8mes dans les th\u00e9ories de la complexit\u00e9 reposent souvent sur des mod\u00e8les de boite noire ou d\u2019oracles \u00e0 qui un syst\u00e8me pose des questions et obtient des r\u00e9ponses en fonctions des donn\u00e9es fournies. C\u2019est une logique de \u201cforce brute\u201d et de scan d\u2019hypoth\u00e8ses. La combinatoire \u00e0 tester est plus ou moins grande selon les classes de probl\u00e8mes.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/2018\/comprendre-informatique-quantique-complexite\/classes-problemes\/\" rel=\"attachment wp-att-16157\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16157\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-problemes.jpg\" alt=\"\" width=\"566\" height=\"265\" srcset=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-problemes.jpg 2330w, https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-problemes-300x140.jpg 300w, https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-problemes-768x360.jpg 768w, https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-problemes-1024x479.jpg 1024w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/a><\/p>\n<p>Voici donc ces classes par niveau croissant de complexit\u00e9 sachant que nous passerons le plus de temps sur les classes NP et NP Complet.<\/p>\n<p><strong>L<\/strong> : ou LSPACE, ou DLOGSPACE, qui d\u00e9finit la classe des probl\u00e8mes que l\u2019on peut r\u00e9soudre \u00e0 une \u00e9chelle logarithmique de m\u00e9moire consomm\u00e9e et sur une machine de Turing d\u00e9terministe. Bref, sur un ordinateur traditionnel. C\u2019est le genre de classe id\u00e9ale ! La complexit\u00e9 de calcul diminue rapidement avec la taille du probl\u00e8me. Malheureusement, tr\u00e8s peu de probl\u00e8mes complexes sont dans cette classe l\u00e0. On y trouve notamment les requ\u00eates dans des bases de donn\u00e9es relationnelles pr\u00e9alablement index\u00e9es, les recherches de s\u00e9quences d\u2019ADN et d\u2019une mani\u00e8re g\u00e9n\u00e9rale les techniques de recherche utilisant des pointeurs et qui optimisent l\u2019utilisation de la m\u00e9moire des ordinateurs.<\/p>\n<p><strong>NL<\/strong> : la classe des probl\u00e8mes r\u00e9solus \u00e0 une \u00e9chelle logarithmique sur une machine non-d\u00e9terministe. Les logiciens cherchent toujours \u00e0 savoir si si L=NL ! Cela pourrait durer quelque temps. Cela les occupe moins que P=NP.<\/p>\n<ul><!--EndFragment--><\/ul>\n<p><strong>P<\/strong> : qui d\u00e9finit les probl\u00e8mes que l\u2019on peut r\u00e9soudre avec un temps qui croit de mani\u00e8re polynomiale avec le nombre de donn\u00e9es \u00e0 traiter et sur une machine d\u00e9terministe. Si N est la taille du probl\u00e8me, la dur\u00e9e de traitement est proportionnelle \u00e0 N puissance M, M \u00e9tant un entier, si possible 2. C\u2019est un probl\u00e8me facile \u00e0 r\u00e9soudre. Il est dit \u201ctractable\u201d. Cela comprend le tri de listes, la validation de l\u2019existence d\u2019un chemin dans un graphe, la recherche d\u2019un chemin minimum dans un graphe, la multiplication de matrices ou l\u2019\u00e9valuation d\u2019un nombre pour savoir s\u2019il est premier.<\/p>\n<p><strong>BPP <\/strong>: est une classe de probl\u00e8mes qui peuvent \u00eatre r\u00e9solus par des approches al\u00e9atoires (\u201cBounded-Error Probabilistic Polynomial-Time\u201d). Il semblerait que BPP=P mais ce n\u2019est pas encore d\u00e9montr\u00e9.<\/p>\n<p><strong>NP<\/strong> : d\u00e9crit la classe des probl\u00e8mes dont il est facile de v\u00e9rifier la validit\u00e9 d\u2019une solution, \u00e0 savoir que celle-ci peut \u00eatre r\u00e9alis\u00e9e en un temps polynomial par une machine d\u00e9terministe. L\u2019autre d\u00e9finition de la classe est qu\u2019elle contient les probl\u00e8mes dont le temps de r\u00e9solution est polynomial sur une machine non d\u00e9terministe. Ces probl\u00e8mes plus complexes on un temps de calcul au minimum exponentiel lorsque la m\u00e9thode utilis\u00e9e est dite na\u00efve, pour tester toutes les hypoth\u00e8ses possibles. Ils sont dits intractables. En pratique, ce sont des probl\u00e8mes particuli\u00e8rement adapt\u00e9s aux ordinateurs quantiques du fait de leur capacit\u00e9 \u00e0 \u00e9valuer en parall\u00e8le 2 puissance N combinaisons.<\/p>\n<p>Quelques exemples de probl\u00e8mes NP : l\u2019arbre de Stein pour d\u00e9terminer si un r\u00e9seau \u00e9lectrique permet de relier un nombre de maison \u00e0 un certain prix, v\u00e9rifier qu\u2019une s\u00e9quence d\u2019ADN se retrouve dans plusieurs g\u00eanes et la distribution de t\u00e2ches \u00e0 diff\u00e9rents agents pour minimiser le temps de leur r\u00e9alisation. Les exemples th\u00e9oriques des cours de complexit\u00e9 ont l\u2019air de relever de probl\u00e8mes futiles, nous en verrons quelques-uns plus tard. Mais c\u00f4t\u00e9 m\u00e9tiers, ces probl\u00e8mes ont des \u00e9quivalents tr\u00e8s concrets dans la logistique, la planification, la production, les transports, les t\u00e9l\u00e9coms, les utilities, la finance ainsi que dans la cryptographie.<\/p>\n<p>A noter qu\u2019un probl\u00e8me &#8220;d\u00e9cidable&#8221;, c&#8217;est \u00e0 dire qui requiert d\u2019explorer un espace fini d\u2019options, n\u2019est pas forc\u00e9ment faisable d\u2019un point de vue pratique. M\u00eame s&#8217;il peut \u00eatre r\u00e9solu en un temps fini, sa r\u00e9solution peut prendre un temps trop long. Un probl\u00e8me exponentiel a une solution \u00e9l\u00e9gante si on peut en trouver une qui ait une dur\u00e9e polynomiale voir, dans le meilleur des cas, lin\u00e9aire. Les temps polynomiaux <em>scalent<\/em> mieux que les temps exponentiels !<\/p>\n<p>A noter qu\u2019un probl\u00e8me d\u00e9cidable n\u2019est pas forc\u00e9ment faisable d\u2019un point de vue pratique. Un probl\u00e8me d\u00e9cidable requiert d\u2019explorer un espace fini d\u2019options. Cela peut prendre un temps tr\u00e8s long mais c\u2019est un temps fini. Mais s\u2019il est trop long \u00e0 traiter, il n\u2019est pas faisable, avec les techniques de calcul \u00e0 un moment donn\u00e9. Un probl\u00e8me exponentiel a une solution \u00e9l\u00e9gante si on peut en trouver une qui ait une dur\u00e9e polynomiale voir, dans le meilleur des cas, lin\u00e9aire. Les temps polynomiaux scalent mieux que les temps exponentiels !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Clay-Challenge.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Clay Challenge\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Clay-Challenge_thumb.jpg\" alt=\"Clay Challenge\" width=\"526\" height=\"313\" border=\"0\" \/><\/a><\/p>\n<p>Un gros d\u00e9bat a cours depuis 1956 (Kurt G\u00f6del) pour savoir si la classe P \u00e9gale la classe NP. Si P = NP, il serait aussi simple de trouver un r\u00e9sultat quand on sait aussi le v\u00e9rifier simplement. Le consensus g\u00e9n\u00e9ral est que P n\u2019est pas \u00e9gal \u00e0 NP. La d\u00e9monstration de P&lt;&gt;NP ou de son contraire <a href=\"http:\/\/www.claymath.org\/millennium-problems\/p-vs-np-problem\">fait partie<\/a> de l\u2019un des <a href=\"http:\/\/www.claymath.org\/millennium-problems\">sept d\u00e9fis math\u00e9matiques<\/a> du Clay Mathematics Institute lanc\u00e9s en 2000 chacun dot\u00e9s d\u2019un prix de $1M (<em>ci-dessus<\/em>). Parmi ces d\u00e9fis, on trouve la d\u00e9monstration des \u00e9quations de Navier-Stokes sur la m\u00e9canique des fluides et celle de l\u2019hypoth\u00e8se de Riemann sur la distribution des nombres premiers. Voil\u00e0 de beaux probl\u00e8mes \u00e0 r\u00e9soudre pour une hypoth\u00e9tique AGI (Artificial General Intelligence) capable de d\u00e9passer l\u2019Homme dans sa capacit\u00e9 de conceptualisation. Et $7M \u00e0 la cl\u00e9, si le principe de l\u2019AGI \u00e9tait v\u00e9rifi\u00e9, \u00e0 savoir sa capacit\u00e9 \u00e0 r\u00e9soudre n\u2019importe quel probl\u00e8me, \u00e0 supposer que celui-ci soit d\u00e9cidable ! Le chercheur br\u00e9silien Andr\u00e9 Luiz Barbosa a publi\u00e9 en 2010 <a href=\"https:\/\/arxiv.org\/ftp\/arxiv\/papers\/0907\/0907.3965.pdf\">P \u2260 NP Proof<\/a> (25 pages) tout comme un papier invalidant le th\u00e9or\u00e8me de Cook selon lequel un probl\u00e8me bool\u00e9en SAT est NP-Complet, <a href=\"https:\/\/arxiv.org\/ftp\/arxiv\/papers\/0907\/0907.3965.pdf\">The Cook-Levin Theorem is False<\/a>, 2010 (11 pages). Il ne fait visiblement pas l\u2019unanimit\u00e9, ses travaux n\u2019\u00e9tant ni cit\u00e9s, ni repris.<\/p>\n<p>Du c\u00f4t\u00e9 P vs NP, la <a href=\"http:\/\/www.claymath.org\/sites\/default\/files\/pvsnp.pdf\">formulation du d\u00e9fi \u00e0 relever<\/a> donne un exemple d\u2019un tel probl\u00e8me : vous devez allouer 50 chambres de deux \u00e9tudiants \u00e0 400 candidats mais certains candidats ne doivent pas cohabiter dans la m\u00eame chambre. La combinatoire de choix des 100 \u00e9tudiants parmi 400 est monstrueusement \u00e9norme, donc le probl\u00e8me n\u2019est pas traitable facilement avec un supercalculateur et avec de la force brute. C\u2019est bien un probl\u00e8me NP car une solution donn\u00e9e est facile \u00e0 v\u00e9rifier car il suffit de v\u00e9rifier qu\u2019aucune des chambres ne contient une paire d\u2019individus interdite. C\u2019est un peu la th\u00e9orie du tout ou du rien car si P = NP, tous les probl\u00e8mes NP ont une solution efficace polynomiale. Si P \u2260 NP, aucun des probl\u00e8mes NP n\u2019a de solution efficace.<\/p>\n<p>La d\u00e9finition des classes de probl\u00e8mes NP et NP-Complet est relativement r\u00e9cente. Elle est issue de <a href=\"https:\/\/www.cs.toronto.edu\/~sacook\/homepage\/1971.pdf\">The complexity of theorem-proving procedures<\/a> de Stephen Cook de l\u2019Universit\u00e9 de Toronto, 1971 (8 pages), mieux vulgaris\u00e9 dans <a href=\"http:\/\/www.jdl.ac.cn\/turing\/pdf\/p400-cook.pdf\">An overview of computational complexity<\/a> (8 pages) et <a href=\"https:\/\/people.eecs.berkeley.edu\/~luca\/cs172\/karp.pdf\">Reducibility about combinatorial problems<\/a>, de Richard Karp, 1972 (19 pages) ainsi que dans <a href=\"http:\/\/www.labri.fr\/perso\/anca\/MC\/poly.pdf\">Complexit\u00e9 et calculabilit\u00e9<\/a> d\u2019Anca Muscholl du LaBRI, 2017 (128 slides). J\u2019ai parcouru un grand nombre d\u2019autres publications pour m\u2019y retrouver mais elles \u00e9taient assez redondantes dans l\u2019ensemble.<\/p>\n<p><strong>NP Complet<\/strong> : ils se d\u00e9finissent selon Richard Karp comme les probl\u00e8mes dans lesquels les autres probl\u00e8mes NP peuvent \u00eatre r\u00e9duits de mani\u00e8re polynomiale. A fortiori, ils n&#8217;ont pas de solution P (polynomiale) connue.<\/p>\n<p>Ils sont encore non accessibles aux ordinateurs quantiques. C\u2019est dans cette classe que l\u2019on trouve les probl\u00e8mes de logique bool\u00e9enne de type SAT ou 3SAT dont je vous passe les d\u00e9tails car je risquerai de vous perdre et de me perdre par la m\u00eame occasion ! Plus de 3000 probl\u00e8mes NP-Complets sont identifi\u00e9s \u00e0 ce jour (<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Liste_de_probl%C3%A8mes_NP-complets\">liste<\/a>).<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Probleme-sac-a-dos.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Probleme sac a dos\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Probleme-sac-a-dos_thumb.jpg\" alt=\"Probleme sac a dos\" width=\"313\" height=\"271\" border=\"0\" \/><\/a><\/p>\n<p>On y trouve notamment le probl\u00e8me du remplissage optimum du coffre de la voiture lorsque l\u2019on part en vacances ou lorsque l\u2019on revient du No\u00ebl dans sa famille avec une flop\u00e9e de cadeaux. Et puis le probl\u00e8me du sac \u00e0 dos consistant \u00e0 le remplir de mani\u00e8re optimale avec un jeu d\u2019objets, pour obtenir la plus grande charge et sans d\u00e9passer un poids maximum (\u201cBin packing\u201d).<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Bin-Packing-problem.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Bin Packing problem\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Bin-Packing-problem_thumb.jpg\" alt=\"Bin Packing problem\" width=\"350\" height=\"260\" border=\"0\" \/><\/a><\/p>\n<p>Il comprend aussi le probl\u00e8me de la somme de sous-ensemble consistant \u00e0 trouver un sous-ensemble d\u2019un ensemble de nombres entiers dont la somme est \u00e9gale \u00e0 un entier arbitraire.<\/p>\n<p>Il y a aussi le probl\u00e8me du d\u00e9mineur consistant \u00e0 localiser des mines cach\u00e9es dans un terrain avec pour seules indications le nombre de mines dans les zones adjacentes et le nombre de mines total dans le champs. Le tout \u00e9videmment, sans les faire exploser. C\u2019est un jeu bien connu des utilisateurs de Windows, lanc\u00e9 en 1989 !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Large-Minesweeper.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Large Minesweeper\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Large-Minesweeper_thumb.jpg\" alt=\"Large Minesweeper\" width=\"437\" height=\"248\" border=\"0\" \/><\/a><\/p>\n<p>Il semblerait enfin que la simulation du repliement de prot\u00e9ines complexes soit un probl\u00e8me NP-Complet. Cf <a href=\"https:\/\/arxiv.org\/pdf\/1306.1372.pdf\">Is protein folding problem really a NP-complete one ? First investigations<\/a>, 2013 (31 pages). Ce serait donc un probl\u00e8me potentiellement tr\u00e8s difficile \u00e0 r\u00e9soudre avec un ordinateur quantique avec de grandes prot\u00e9ines.<\/p>\n<p>Il est d\u00e9montr\u00e9 que si l\u2019on trouvait une solution optimale \u00e0 un probl\u00e8me NP-Complet, on trouverait toutes les solutions aux probl\u00e8mes de cette classe. C\u2019est la notion importante de r\u00e9duction de probl\u00e8mes.<\/p>\n<p>Le coloriage de graphes avec des couleurs diff\u00e9rentes pour les n\u0153uds, les branches ou les surfaces fait partie des probl\u00e8mes NP, NP-Complet et NP-Difficile selon les cas. Les deux premiers cas n\u00e9cessitant un nombre de couleurs d\u00e9pendant du nombre maximum de connexions entre \u00e9l\u00e9ments du graphe et le dernier cas, relevant du coloriage de cartes dans des couleurs adjacentes diff\u00e9rentes qui n\u2019en n\u00e9cessite que quatre au maximum, gr\u00e2ce \u00e0 la d\u00e9monstration informatique du th\u00e9or\u00e8me des quatre couleurs en 1976 par Kenneth Appel et Wolfgang Haken.<\/p>\n<ul>\n<li>Le coloriage de <strong>n\u0153uds<\/strong> de graphes a des applications dans le placement d\u2019antennes mobiles et dans l\u2019allocation de registres m\u00e9moires pour un compilateur. Le probl\u00e8me est NP-Complet pour sa r\u00e9solution et NP-Difficile pour trouver sa solution optimale.<\/li>\n<li>Celui des <strong>branches<\/strong> a des applications dans l\u2019allocation de fr\u00e9quences de r\u00e9seaux de fibres optiques multimodes. Il permet aussi d\u2019optimiser le placement d\u2019objets ou personnes en fonction de leur compatibilit\u00e9 ou incompatibilit\u00e9s. Le coloriage optimum est un probl\u00e8me NP-Difficile.<\/li>\n<li>Celui des <strong>zones<\/strong> peut servir \u00e0 d\u00e9finir les zones de couvertures d\u2019antennes radio mobiles ou de satellites de t\u00e9l\u00e9communications. Il peut m\u00eame servir \u00e0 allouer les fr\u00e9quences micro-ondes d\u2019activation de qubits supraconducteurs. Le coloriage avec trois couleurs est un probl\u00e8me NP-Complet.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Coloriage-de-graphe.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Coloriage de graphe\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Coloriage-de-graphe_thumb.jpg\" alt=\"Coloriage de graphe\" width=\"524\" height=\"299\" border=\"0\" \/><\/a><\/p>\n<p>D\u2019une mani\u00e8re g\u00e9n\u00e9rale, de nombreuses classes de probl\u00e8mes C ont une sous-classe C-Complet et C-Difficile. Un probl\u00e8me est C-Difficile s\u2019il existe un type de r\u00e9duction des probl\u00e8mes de la classe C vers ce probl\u00e8me. Si le probl\u00e8me C-Difficile fait partie de la classe C, alors il est dit \u201cC-Complet\u201d.<\/p>\n<p>Pour en savoir plus, voir notamment Complexity Theory <a href=\"http:\/\/web.stanford.edu\/class\/archive\/cs\/cs103\/cs103.1152\/lectures\/25\/Small25.pdf\">Part I<\/a> (81 slides) et <a href=\"https:\/\/web.stanford.edu\/class\/archive\/cs\/cs103\/cs103.1142\/lectures\/26\/Small26.pdf\">part II<\/a> (83 slides), qui fait partie d\u2019un <a href=\"http:\/\/web.stanford.edu\/class\/cs103\/\">cours de Stanford sur les th\u00e9ories de la complexit\u00e9<\/a>, <a href=\"http:\/\/www.normastic.fr\/wp-content\/uploads\/2014\/12\/ExposeCalculComplexiteJ_Fed_20_Oct_17.pdf\">Calculabilite et Complexite &#8211; Quelques resultats que je connais<\/a> d\u2019Etienne Grandjean de l\u2019Universit\u00e9 de Caen, 2017 (43 slides) ainsi que cette <a href=\"https:\/\/www.youtube.com\/watch?v=x1sFJ_HKEaI\">vid\u00e9o<\/a> d\u2019Olivier Bailleux (2017, 20 minutes). Elle est tr\u00e8s claire mais vous serez tr\u00e8s forts si vous arrivez \u00e0 suivre et \u00e0 tout assimiler ! L\u2019auteur pr\u00e9cise qu\u2019il faut la regarder plusieurs fois en faisant souvent une pause !<\/p>\n<p><strong>NP Difficile<\/strong> : concerne les probl\u00e8mes d\u2019optimisation o\u00f9 l\u2019on recherche un minimum ou un maximum avec une grande combinatoire. Un probl\u00e8me est NP-Difficile si tous les probl\u00e8mes NP-Complets peuvent se r\u00e9duire par simplification polynomiale \u00e0 ce probl\u00e8me. C\u2019est le cas de la r\u00e9solution du probl\u00e8me du voyageur du commerce o\u00f9 l\u2019on doit tester une grande combinatoire de parcours pour trouver celui qui est r\u00e9alis\u00e9 le plus rapidement pour passer via un nombre d\u00e9termin\u00e9 de villes. Il faut alors tester toutes les solutions.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Probleme-du-voyageur-de-commerce.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Probleme du voyageur de commerce\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Probleme-du-voyageur-de-commerce_thumb.jpg\" alt=\"Probleme du voyageur de commerce\" width=\"525\" height=\"354\" border=\"0\" \/><\/a><\/p>\n<p>Si un voyageur de commerce doit traverser 125 villes en moins de 30 jours, s\u2019il existe une solution qui fonctionne dans ce laps de temps, alors le probl\u00e8me est NP. Mais rien ne dit que l\u2019on a trouv\u00e9 toutes les solutions ! La r\u00e9solution du probl\u00e8me en-dessous d\u2019un temps de parcourt arbitraire avec un retour au point de d\u00e9part est un probl\u00e8me NP-complet. C\u2019est ce que l\u2019on appelle un circuit hamiltonien : un chemin parcourant un graphe passant une fois et une seule par chacun des n\u0153uds et revenant \u00e0 son point de d\u00e9part. La d\u00e9termination du temps de parcours le plus court est NP-difficile. L\u2019algorithme de force brute pour le r\u00e9soudre a un temps qui d\u00e9pend de N! , N \u00e9tant le nombre de n\u0153uds du r\u00e9seau. Le temps optimum connu est N^2 * 2^N. Le probl\u00e8me est difficile \u00e0 r\u00e9soudre au-del\u00e0 de 20 \u00e9tapes ! Cf le site <a href=\"http:\/\/www.math.uwaterloo.ca\/tsp\/\">The Traveling Salesman Problem<\/a> qui donne quelques exemples de tels probl\u00e8mes comme le parcours de tous les 49 687 pubs anglais ou des 49 603 lieux touristiques aux USA.<\/p>\n<p>La classe des probl\u00e8mes NP-Difficile contient aussi nombre de jeux de <strong>Nintendo<\/strong> comme Super Mario Bros, La L\u00e9gende de Zelda et Pokemon. Cf <a href=\"https:\/\/arxiv.org\/pdf\/1203.1895.pdf\">Classic Nintendo Games are (Computationally) Hard<\/a>, 2012 (36 pages).<\/p>\n<p><strong>PSPACE <\/strong>: est la classe des probl\u00e8mes qui peuvent \u00eatre r\u00e9solus en espace polynomial sur une machine d\u00e9terministe. NPSPACE est la classe des probl\u00e8mes pouvant \u00eatre r\u00e9solus en espace polynomial sur une machine non d\u00e9terministe. NPSPACE = PSPACE selon le <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Th%C3%A9or%C3%A8me_de_Savitch\">th\u00e9or\u00e8me de Savitch<\/a>.<\/p>\n<ul><!--EndFragment--><\/ul>\n<p><strong>EXPTIME <\/strong>: est la classe des probl\u00e8mes d\u00e9cid\u00e9s en temps exponentiel par une machine d\u00e9terministe. Pr\u00e9cis\u00e9ment, le temps de calcul de ces probl\u00e8mes est une puissance de 2 exprim\u00e9e sous forme d\u2019un polynome de N, N \u00e9tant le niveau de complexit\u00e9 du probl\u00e8me. Ils sont intractables avec des machines traditionnelles. Certains de ces probl\u00e8mes peuvent \u00eatre convertis en probl\u00e8mes traitables de mani\u00e8re polynomiale par des ordinateurs quantiques. Les jeux d\u2019\u00e9checs et de Go sur grille de taille arbitraire font partie de cette cat\u00e9gorie. Dans les grilles \u00e0 taille limit\u00e9e, l\u2019effet exponentiel a des limites. Celles-ci ont \u00e9t\u00e9 d\u00e9pass\u00e9es pour les \u00e9checs par Deep Blue en 1996 et pour le jeu de Go par AlphaGo de DeepMind en 2016 et 2017.<\/p>\n<p><strong>NEXPTIME <\/strong>: est la classe des probl\u00e8mes d\u00e9cid\u00e9s en temps exponentiel par une machine non-d\u00e9terministe et avec un espace m\u00e9moire illimit\u00e9.<\/p>\n<ul><!--EndFragment--><\/ul>\n<ul><!--EndFragment--><\/ul>\n<p><strong>EXPSPACE <\/strong>: est la classe des probl\u00e8mes qui peuvent \u00eatre r\u00e9solus en espace exponentiel. Autant dire qu\u2019ils sont difficiles d\u2019acc\u00e8s aux machines d\u2019aujourd\u2019hui et m\u00eame de demain.<\/p>\n<ul><!--EndFragment--><\/ul>\n<p>Les quatre classes pr\u00e9c\u00e9dentes (PSPACE, EXPTIME, NEXPTIME, EXPSPACE) ne correspondent pas \u00e0 des probl\u00e8mes pratiques faciles \u00e0 identifier dans la vie courante. En tout cas, je n\u2019en ai pas trouv\u00e9 dans la litt\u00e9rature. Ils couvrent dans l\u2019ensemble les probl\u00e8mes de pr\u00e9vision de comportement de syst\u00e8mes ultra-complexes avec de fortes interactions. S\u2019il est possible que la mod\u00e9lisation du repliement d\u2019une prot\u00e9ine soit un probl\u00e8me NP, quelle serait la classe du probl\u00e8me de simulation du fonctionnement d\u2019une cellule vivante enti\u00e8re, voir d\u2019un organisme multicellulaire ? Les interactions sont tellement nombreuses au niveau atomique, mol\u00e9culaire et cellulaire que la classe de ce genre de probl\u00e8me est probablement situ\u00e9e bien au-del\u00e0 de NP-Difficile.<\/p>\n<p>Il existe bien d\u2019autres classes de complexit\u00e9 de probl\u00e8mes que je ne vais pas d\u00e9crire ici : EXP, IP, MIP, BPP, RP, ZPP, SL, NC, AC0, TC0, MA, AM et SZK ! Elles sont list\u00e9es dans un <a href=\"https:\/\/complexityzoo.uwaterloo.ca\/Complexity_Zoo:A\">site web<\/a> qui inventorie le zoo des classes de complexit\u00e9 de probl\u00e8mes. Il semble il y en avoir plus d\u2019une centaine.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Complexity-zoo-page.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Complexity zoo page\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Complexity-zoo-page_thumb.jpg\" alt=\"Complexity zoo page\" width=\"574\" height=\"325\" border=\"0\" \/><\/a><\/p>\n<p>Pour en savoir plus sur le sujet des th\u00e9orie de la complexit\u00e9, vous pouvez notamment parcourir le tr\u00e8s document\u00e9 <a href=\"http:\/\/theory.cs.princeton.edu\/complexity\/book.pdf\">Computational Complexity A Modern Approach<\/a>, de Sanjeev Arora et Boaz Barak de l\u2019Universit\u00e9 de Princeton, 2007 (489 pages).<\/p>\n<p><strong>Classes de complexit\u00e9 quantiques<\/strong><\/p>\n<p>On peut y ajouter une classification de probl\u00e8mes par niveau de difficult\u00e9 pour les ordinateurs quantiques, la correspondance avec les classes <em>ci-dessus<\/em> \u00e9tant encore un probl\u00e8me\u2026 non enti\u00e8rement r\u00e9solu ! La classification est diff\u00e9rente car les ordinateurs quantiques peuvent parall\u00e9liser les traitements comme les ordinateurs classiques assimilables \u00e0 des machines de Turing ne peuvent le faire.<\/p>\n<p>Il faudrait y ajouter une contrainte connue des ordinateurs quantiques : leur temps de coh\u00e9rence qui est non seulement fini mais relativement court. Il contraint par la dur\u00e9e le nombre de portes quantiques que l\u2019on peut encha\u00eener pour r\u00e9soudre un probl\u00e8me. Et ce temps est inf\u00e9rieur au dixi\u00e8me de seconde pour un ordinateur quantique \u00e0 base de supraconducteurs. C\u2019est une contrainte que n\u2019ont pas les ordinateurs traditionnels. On peut y faire tourner un algorithme jusqu\u2019\u00e0 plus soif. Un probl\u00e8me trop complexe pour un ordinateur quantique serait donc aussi un probl\u00e8me qui n\u00e9cessiterait d\u2019enquiller un nombre de portes quantiques trop grand pour s&#8217;ex\u00e9cuter plus rapidement que le temps de coh\u00e9rence.<\/p>\n<p><strong>PH <\/strong>: est la classe des probl\u00e8mes qui peuvent \u00eatre r\u00e9solus par des ordinateurs traditionnels du pr\u00e9sent et, surtout, par tout ordinateur traditionnel du futur ! PH signifie \u201cPolynomial Hierarchy\u201d.<\/p>\n<p><strong>BQP <\/strong>: d\u00e9finit une classe de probl\u00e8me qui est traitable en temps polynomial sur un ordinateur quantique avec un taux d\u2019erreur contraint. Cela peut dans certains cas correspondre \u00e0 des probl\u00e8mes P. La classe a \u00e9t\u00e9 d\u00e9finie en 1993, au moment o\u00f9 apparaissaient les premiers algorithmes quantiques. En d\u00e9bat, le fait de savoir sur la classe BQP est v\u00e9ritablement diff\u00e9rente de la classe P ! Il est d\u00e9j\u00e0 d\u00e9montr\u00e9 que la classe P des probl\u00e8mes polynomiaux est dans BQP. Mais est-ce que NP est dans BQP ? A priori non. Mais c\u2019est difficile \u00e0 prouver de mani\u00e8re g\u00e9n\u00e9rique. Mais on sait d\u00e9j\u00e0 que BQP est dans NP. C\u2019est l\u00e0 que l\u2019on trouve une bonne part des meilleurs algorithmes quantiques comme ceux de Grover et de Shor.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/PH-and-BQP.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"ComplexityMap\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/PH-and-BQP_thumb.jpg\" alt=\"ComplexityMap\" width=\"452\" height=\"444\" border=\"0\" \/><\/a><\/p>\n<p>Le point cl\u00e9 est de trouver des algorithmes qui font partie de BQP (traitables en quantique) et qui ne sont pas dans PH (traitables avec n\u2019importe quel architecture traditionnelle du pr\u00e9sent et du futur). Cette incertitude a \u00e9t\u00e9 lev\u00e9e tr\u00e8s r\u00e9cemment. Cf <a href=\"https:\/\/www.quantamagazine.org\/finally-a-problem-that-only-quantum-computers-will-ever-be-able-to-solve-20180621\/\">Finally, a Problem That Only Quantum Computers Will Ever Be Able to Solve de Kevin Hartnett<\/a>, 2018, qui fait r\u00e9f\u00e9rence \u00e0 <a href=\"https:\/\/eccc.weizmann.ac.il\/report\/2018\/107\/\">Oracle Separation of BQP and PH<\/a> des Isra\u00e9liens Ran Raz et Avishay Tal, mai 2018 (22 pages), pr\u00e9sent\u00e9 dans la conf\u00e9rence Electronic Colloquium on Computational Complexity. Les deux logiciens ont trouv\u00e9 des algorithmes \u00e0 base d\u2019oracles (boites noires) qui sont dans BQP mais pas dans PH. Donc, qui ont un temps de r\u00e9solution polynomial sur ordinateur quantique mais qui reste exponentiel sur ordinateur classique. Alea jacta est ! Mais je ne vais pas pr\u00e9tendre avoir compris cette belle d\u00e9monstration !<\/p>\n<p>Qu\u2019en est-il au passage d\u2019une \u00e9ventuelle diff\u00e9rence de complexit\u00e9 de probl\u00e8mes g\u00e9rable avec des ordinateurs quantiques \u00e0 portes universelles vs les ordinateurs \u00e0 recuit quantique de style D-Wave ? D\u2019apr\u00e8s <a href=\"https:\/\/arxiv.org\/pdf\/quant-ph\/0405098.pdf\">Adiabatic Quantum Computation is Equivalent to Standard Quantum Computation<\/a> de Dorit Aharonov, Wim van Dam et Julia Kempe (du CNRS), 2008 (30 pages), il n\u2019y en aurait pas. Divers th\u00e9or\u00e8mes montrent qu&#8217;un probl\u00e8me qui peut \u00eatre r\u00e9solu avec des portes quantiques universelles peut aussi l&#8217;\u00eatre avec une architecture de recuit quantique \u00e0 la D-Wave et r\u00e9ciproquement et dans un ordre de grandeur de temps \u00e9quivalent.<\/p>\n<p><strong>QMA<\/strong> (pour Quantum Merlin Arthur) d\u00e9finit une classe de probl\u00e8mes qui est v\u00e9rifiable en temps polynomial sur un ordinateur quantique avec une probabilit\u00e9 sup\u00e9rieure aux 2\/3. C\u2019est l\u2019analogue quantique de la classe de complexit\u00e9 \u201ctraditionnelle\u201d NP. La classe QMA contient les classes P, BQP et NP. Cf <a href=\"https:\/\/arxiv.org\/pdf\/1212.6312.pdf\">QMA-complete problems<\/a> de Adam Bookatz, 2013 (18 pages). Comme la classe NP, la classe QMA a deux sous-classes, QMA Complet et QMA Difficile. En pratique, ce sont des probl\u00e8mes difficiles \u00e0 r\u00e9soudre avec des ordinateurs quantiques. Malheureusement, la litt\u00e9rature sur le sujet n\u2019en d\u00e9crit pas la nature ou ne fournit pas d\u2019exemples. C\u2019est bien dommage pour ceux qui appr\u00e9cient d\u2019adopter un sens pratique des choses !<\/p>\n<p><strong>QCMA <\/strong>est une classe hybride entre QMA et NP. La preuve est fournie en temps classique polynomial mais la r\u00e9solution rel\u00e8ve du niveau QMA et est r\u00e9alis\u00e9e de mani\u00e8re quantique. Je n\u2019ai pas bien compris et ce n\u2019est pas bien grave.<\/p>\n<p>Nombre de publications rel\u00e8vent les limitations des algorithmes et ordinateurs quantiques. Un probl\u00e8me BQP qui n\u2019est pas dans PH donne l\u2019avantage au quantique. Mais des probl\u00e8mes intractables exponentiels pour lesquels l\u2019am\u00e9lioration apport\u00e9e par le quantique n\u2019est que racinaire (racine carr\u00e9e du temps classique) ne modifie pas leur nature exponentielle.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-de-problemes-simplifiees.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Classes de problemes simplifiees\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Classes-de-problemes-simplifiees_thumb.jpg\" alt=\"Classes de problemes simplifiees\" width=\"258\" height=\"202\" border=\"0\" \/><\/a><\/p>\n<p>C\u2019est ce que rel\u00e8ve Scott Aaronson dans <a href=\"https:\/\/www.scottaaronson.com\/writings\/limitsqc-draft.pdf\">The Limits of Quantum Computers<\/a> (16 pages) ainsi que dans <a href=\"https:\/\/www.scottaaronson.com\/papers\/npcomplete.pdf\">NP-complete Problems and Physical Reality<\/a> (23 pages). Les probl\u00e8mes NP Complets et au-del\u00e0 restent inaccessibles aux ordinateurs quantiques. Bref, la force brute a des limites que m\u00eame le calcul quantique ne permet pas de d\u00e9passer en th\u00e9orie ! Cela explique en partie la difficult\u00e9 \u00e0 cr\u00e9er des algorithmes quantiques efficaces.<\/p>\n<p>Comme vu dans <a href=\"https:\/\/www.irif.fr\/~sperifel\/complexite.pdf\">Complexite algorithmique<\/a> de SylvainPerifel, 2014 (430 pages), il faut aussi prendre en compte le fait que certains probl\u00e8mes sont ind\u00e9cidables, \u00e0 savoir qu\u2019ils ne peuvent pas \u00eatre r\u00e9solus par un algorithme, quel que soit le temps dont on dispose. Il en va ainsi de la d\u00e9termination de l\u2019arr\u00eat d\u2019un programme dans une machine de Turing. En d\u2019autres termes, il n\u2019existe pas de programme permettant de savoir si n\u2019importe quel programme \u00e9crit dans un langage de programmation courant va s\u2019arr\u00eater ou boucler pendant une dur\u00e9e infinie.<\/p>\n<p>Dans le m\u00eame ordre, le<strong> th\u00e9or\u00e8me de Rice<\/strong> d\u00e9montre qu\u2019aucune propri\u00e9t\u00e9 non triviale d\u2019un programme ne peut \u00eatre d\u00e9cid\u00e9e de mani\u00e8re algorithmique. Tout cela pour dire qu\u2019il n\u2019existerait pas de m\u00e9thode automatique de d\u00e9tection de bugs dans un programme ou de certification qu\u2019il s\u2019ex\u00e9cute bien. Il existe cependant des m\u00e9thodes de preuve formelle permettant de certifier l\u2019ex\u00e9cution de programmes sp\u00e9cifiques. Cela passe par l\u2019utilisation de sp\u00e9cifications formelles des programmes qui servent de r\u00e9f\u00e9rence pour l\u2019\u00e9valuation de leur bon fonctionnement. C&#8217;est d\u00e9j\u00e0 tr\u00e8s utilis\u00e9, sans quantique, dans l&#8217;informatique industrielle et dans les syst\u00e8mes critiques tels que ceux de l&#8217;a\u00e9rospatial.<\/p>\n<p><strong>Contournements de science-fiction<\/strong><\/p>\n<p>Une autre barri\u00e8re semble infranchissable aux ordinateurs de tout type : la barri\u00e8re du temps de Planck, qui est de 10 puissance \u201343 secondes. Il serait impossible de r\u00e9aliser un calcul \u00e9l\u00e9mentaire en moins de temps que ce temps de Planck. C\u2019est une limite de la loi de Moore en plus de la barri\u00e8re de la chaleur de Landauer qui d\u00e9finit la quantit\u00e9 d\u2019\u00e9nergie minimale n\u00e9cessaire pour modifier une information. Mais cette barri\u00e8re temporelle de Planck est loin d\u2019\u00eatre atteinte. Les ordinateurs \u00e0 base de processeurs CMOS sont limit\u00e9s \u00e0 une fr\u00e9quence d\u2019horloge de 4 \u00e0 6 GHz, donc 2*10 puissance \u201310 secondes. Avec un processeur photonique pouvant atteindre th\u00e9oriquement 100 Ghz, on en serait \u00e0 10 puissance \u2013 11 secondes mais ceux-ci sont tr\u00e8s difficiles \u00e0 r\u00e9aliser. Et cela donne de la marge, 10 puissance 32, avant d\u2019atteindre la barri\u00e8re temporelle de Planck.<\/p>\n<p>Autre solution pour transcender les calculateurs quantique d\u2019architecture connue et qui rel\u00e8ve de la science-fiction : faire des calculs dans des mondes parall\u00e8les pour tester toutes les solutions \u00e0 un probl\u00e8me complexe et consolider les r\u00e9sultats obtenus. C\u2019est l\u2019application du sc\u00e9nario de la s\u00e9rie TV \u201cFringe\u201d au calcul quantique. Il va sans dire que pour que cela ait un int\u00e9r\u00eat, il faudrait pouvoir faire cela dans un nombre exponentiel d\u2019univers parall\u00e8les. Il faudrait donc aussi que la m\u00e9thode soit \u201cscalable\u201d. Si on ne pouvait l\u2019utiliser que dans un nombre limit\u00e9 de mondes parall\u00e8les, cela n\u2019aurait pas un grand int\u00e9r\u00eat !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Comment-accelerer-les-calculs.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Comment accelerer les calculs\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Comment-accelerer-les-calculs_thumb.jpg\" alt=\"Comment accelerer les calculs\" width=\"530\" height=\"294\" border=\"0\" \/><\/a><\/p>\n<p>On peut aussi imaginer remonter dans le temps pour refaire les calculs plusieurs fois et consolider \u00e9galement les r\u00e9sultats. Dans ces deux sc\u00e9narios shadokiens, l\u2019une des difficult\u00e9s parmi d\u2019autres serait de cr\u00e9er un goulot d\u2019\u00e9tranglement dans la consolidation des r\u00e9sultats. Il faudrait un bus de donn\u00e9es suffisamment rapide pour absorber une grande quantit\u00e9 d\u2019information. On pourrait d\u2019ailleurs se demander s\u2019il n\u2019est pas possible de r\u00e9duire l\u2019un des cas \u00e0 l\u2019autre voir de les combiner. Ainsi, si on calcule dans le pass\u00e9, on peut choisir de le faire dans des pass\u00e9s simultan\u00e9s ou dans des pass\u00e9s diff\u00e9rents, histoire d\u2019\u00e9viter de trop encombrer les pass\u00e9s.<\/p>\n<p>Les deux m\u00e9thodes pourraient peut-\u00eatre aussi \u00eatre op\u00e9rantes avec des ordinateurs traditionnels. Mais l\u2019ajout du quantique rend la chose plus cr\u00e9dible, si l&#8217;on peut dire. Revenir dans le pass\u00e9 ou se d\u00e9placer instantan\u00e9ment dans des mondes parall\u00e8les est probablement bien plus ais\u00e9 avec des quantums.<\/p>\n<p>Ce sont \u00e9videmment des hypoth\u00e8ses qui ne rel\u00e8vent pas du domaine du possible, m\u00eame en tortillant les lois de la physique au gr\u00e9 de ses d\u00e9sirs les plus fous. Scott Aaronson \u00e9voque pourtant quelques-uns de ces sc\u00e9narios dans <a href=\"https:\/\/arxiv.org\/abs\/quant-ph\/0502072\">NP-complete Problems and Physical Reality<\/a>, 2005 (23 pages). En pratique, au mieux peut-on tirer partie de la vitesse supraluminique de connexion entre qubits intriqu\u00e9s, qui peut servir dans certaines circonstances que nous aurons l\u2019occasion d\u2019explorer, mais qui n\u2019acc\u00e9l\u00e8rent pas les calculs pour autant.<\/p>\n<p>Bref, l\u2019intractabilit\u00e9 des probl\u00e8mes NP Complets et QMA pourrait faire partie des principes de base de la physique et rester des limites infranchissables. Jusqu\u2019\u00e0 ce que l\u2019on trouve une parade astucieuse insoup\u00e7onn\u00e9e ! Une AGI ou intelligence artificielle g\u00e9n\u00e9rale pourrait-t-elle le faire ? Cela devient un probl\u00e8me r\u00e9cursif\u2026 !<\/p>\n<p>En attendant, les recherches vont surtout bon train pour permettre la cr\u00e9ation d\u2019ordinateurs quantiques avec un grand nombre de qubits dot\u00e9s de caract\u00e9ristiques op\u00e9rationnelles cl\u00e9s comme un long temps de coh\u00e9rence et des taux d\u2019erreurs aussi faibles que possibles. C&#8217;est le point de passage oblig\u00e9 pour pouvoir traiter des probl\u00e8mes exponentiels de grande taille dans des applications m\u00e9tier courantes.<\/p>\n<p>___________________________________<\/p>\n<p>Dans la <a href=\"https:\/\/www.oezratty.net\/wordpress\/2018\/comprendre-informatique-quantique-outils-de-developpement\/\">partie suivante<\/a>, il sera temps de revenir dans l\u2019espace du possible et d\u2019examiner les outils de d\u00e9veloppements disponibles pour cr\u00e9er des applications quantiques. Les ordinateurs quantiques n\u2019\u00e9tant pas l\u00e9gion, on pourra \u00eatre surpris par l\u2019abondance d\u2019outils de d\u00e9veloppement quantiques qui sont d\u00e9j\u00e0 disponibles.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans la partie pr\u00e9c\u00e9dente de cette s\u00e9rie estivale sur l\u2019informatique quantique, nous avons fait le tour des principaux algorithmes quantiques connus, de leurs domaines d\u2019applications et de leur performance relative. Le calcul quantique est parfois pr\u00e9sent\u00e9 comme \u00e9tant une solution miracle aux limites du calcul sur supercalculateurs. Il permettrait de r\u00e9soudre des probl\u00e8mes dits \u201cintractables\u201d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3057],"tags":[3076,3077,3079,3075,3073,2397,3080,3034,3078,3071,3082,3083,3072,3085,3074,3084,3081],"class_list":["post-16154","post","type-post","status-publish","format-standard","hentry","category-actualites","category-quantique","tag-alan-turing","tag-alonso-church","tag-bpp","tag-bqp","tag-complexite","tag-d-wave","tag-indecidabilite","tag-informatique-quantique","tag-machine-de-turing","tag-np","tag-np-complet","tag-np-difficile","tag-p-np","tag-pspace","tag-qma","tag-theoreme-des-quatre-couleurs","tag-tractabilite"],"views":22927,"_links":{"self":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts\/16154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/comments?post=16154"}],"version-history":[{"count":0,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts\/16154\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/media?parent=16154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/categories?post=16154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/tags?post=16154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}