Ces derniers temps, recenser les exploits en informatique se rĂ©duisait Ă narrer les derniers progrĂšs de lâintelligence artificielle. Le 2 juillet, lâannonce de la dĂ©monstration dâune conjecture vieille de plus de trente ans est venue bouleverser cette litanie. En plus, lâexploit, racontĂ© par le mĂ©dia amĂ©ricain Quanta Magazine, nâest issu ni du monde acadĂ©mique ni de lâindustrie. Il a Ă©tĂ© accompli par une Ă©quipe internationale constituĂ©e dâune vingtaine de personnes, collaborant Ă distance, en partie « amateurs », et rĂ©unie par le jeune Français Tristan StĂ©rin.
Cofondateur de lâentreprise de logiciels PRGM, il a lancĂ©, en mars 2022, le dĂ©fi de rĂ©soudre un problĂšme qui en a Ă©puisĂ© plus dâun : savoir quel programme informatique, parmi une famille de plus de 16 000 milliards, sâarrĂȘte pour donner sa rĂ©ponse, Ă©liminant de fait les programmes « inutiles » qui continuent ad vitam aeternam. Et surtout trouver la perle rare, celui qui stoppe aprĂšs le plus grand nombre dâĂ©tapes. Le problĂšme a Ă©tĂ© baptisĂ© « compĂ©tition du castor affairé » par le mathĂ©maticien hongrois Tibor Rado, en 1962, en hommage aux vertus de lâanimal.
« Câest comme la chasse au PokĂ©mon ! » plaisante Tristan StĂ©rin. Quel intĂ©rĂȘt ? Ce « jeu », qui illustre comment la complexitĂ© jaillit de la simplicitĂ©, touche Ă de profondes questions en mathĂ©matiques et en informatique.
Le ruban de Turing Pour saisir lâenjeu, des rappels sâimposent. En 1936, le Britannique Alan Turing dĂ©montre que tout programme, depuis le simple « afficher âbonjourâ » aux plus complexes, comme les Ă©normes ChatGPT et consorts, peut se reprĂ©senter « simplement » par une machine qui porte son nom : un ruban infini, marquĂ© de 0 ou de 1 lorsquâil passe sous une tĂȘte de lecture/Ă©criture. La tĂȘte ne peut que changer les symboles 0 ou 1, faire avancer ou reculer le ruban dâune case et changer dâĂ©tat. Cet « état », qui contient ces trois instructions (Ă©crire 0 ou 1, avancer/reculer, changer dâĂ©tat), est le logiciel de la machine. Il peut en avoir un, deux ou plus⊠Une machine Ă un Ă©tat peut gĂ©nĂ©rer 25 programmes diffĂ©rents. De une Ă deux, 6 561, et de une Ă cinq, plus de 16 000 milliards.
Avec ce concept, Turing montre quâil est impossible de trouver un programme qui dise si un autre programme va sâarrĂȘter ou non. Le problĂšme du castor affairĂ©Â (« busy beaver » en anglais ou BB pour les intimes) prĂ©sente une autre impossibilitĂ©Â : calculer le plus grand programme « utile », celui qui fait bouger le plus le ruban avant de sâarrĂȘter et de donner la rĂ©ponse. Tibor Rado a dĂ©montrĂ© que cette fonction nâĂ©tait pas calculable : il est impossible de trouver toutes ces valeurs par une suite dâopĂ©rations.
Tibor Rado observe que, pour une machine Ă deux Ă©tats, la fonction BB vaut six â un programme, dont le ruban a bougĂ© de plus de six cases, est en fait un programme qui ne sâarrĂȘte jamais â et que BB (3), pour une machine Ă trois Ă©tats, vaut 21. Dans les annĂ©es 1970, Allen Brady montre que BB (4) vaut 107. En 1989, dans la quĂȘte de BB (5), Heiner Marxen et JĂŒrgen Buntrock trouvent un « Pokemon » qui sâĂ©puise au bout de 47 176 870 étapes. Et lâĂ©quipe de Tristan StĂ©rin vient seulement de dĂ©montrer quâil nây a pas plus fort comme castor.
« Quand on demandait Ă George Mallory [un alpiniste britannique] pourquoi il voulait escalader lâEverest, il rĂ©pondait parce que la montagne est lĂ . Câest pareil ici. Ces nombres BB existent. A nous de les trouver », raconte Pascal Michel, enseignant Ă©mĂ©rite de lâuniversitĂ© Paris CitĂ©, spĂ©cialiste du sujet mais non membre de lâĂ©quipe. « BB (5) est un dĂ©fi au savoir humain », complĂšte Tristan StĂ©rin.
Sortes de « Pokemons » inarrĂȘtables Lâaventure nâa pas Ă©tĂ© simple. Impossible de faire tourner 16 000 milliards de programmes pour voir lesquels sâarrĂȘtent. Les « trappeurs » ont donc mis au point des « filets », appelĂ©s « dĂ©cideurs », des programmes pour identifier des comportements de « PokĂ©mons » inarrĂȘtables. Il y a ceux qui bĂ©gaient et se rĂ©pĂštent. Ceux qui comptent sans fin Ăąnonnant sans faiblir des chiffres⊠Une demi-douzaine de « dĂ©cideurs » ont permis de rĂ©duire le nombre de suspects. Mais il est restĂ© au moins deux programmes trĂšs retors. Lâun se met en boucle toutes les 8 468 569 863 opĂ©rations, mais seulement Ă partir dâun nombre gigantesque dâĂ©tapes (plus dâun million de milliards de milliards). Trompeur.
En avril, le travail Ă©tait bien avancĂ©, lorsque, sur le forum de discussion du groupe, un contributeur anonyme informe quâil a traduit tout le travail rĂ©alisĂ© jusquâalors dans un langage informatique particulier, Coq. Et quâil a mĂȘme Ă©tĂ© plus loin, en achevant la dĂ©monstration rigoureuse avec ce langage. « LâapothĂ©ose finale ! » souligne Tristan StĂ©rin. Coq est en effet lâun des outils phares pour dĂ©montrer quâun programme nâa pas de bogues. Il est utilisĂ© pour certifier la sĂ©curitĂ© de logiciels critique. AprĂšs une vĂ©rification auprĂšs de spĂ©cialistes de cette mĂ©thode, lâannonce que BB (5) est bien Ă©gal Ă Â 47 176 870 est faite. « Si la dĂ©monstration nâavait pas utilisĂ© dâoutils dâassistants de preuve, comme Coq, la communautĂ© nâaurait pas eu confiance aussi vite dans le rĂ©sultat, estime Yannick Forster, chercheur Ă lâInstitut national de recherche en sciences et technologies du numĂ©rique et lâun des âvĂ©rificateursâ. En retour, ce travail donne une grande visibilitĂ© Ă Coq. » « Jâai Ă©tĂ© Ă©tonnĂ© par lâefficacitĂ© de cette recherche âmassivementâ parallĂšle. Les contributions Ă©taient de grande qualitĂ©. Chaque mois il y en avait de nouvelles. Sans les autres, chacun nâaurait pas pu avancer », apprĂ©cie Tristan StĂ©rin.
Et BB (6) ? Pas sĂ»r que ce nouvel Everest soit accessible. Parmi les prĂšs de 60 millions de milliards de programmes Ă Ă©tudier, il y a des « monstres », baptisĂ© cryptides. Prouver que ces castors ne sâarrĂȘteront jamais de courir serait aussi dur que dĂ©montrer des conjectures mathĂ©matiques qui rĂ©sistent, comme celle dite « de Collatz », une sĂ©rie dâentiers qui retombent toujours sur « 1 », quel que soit le nombre de dĂ©parts. « PlutĂŽt que mâattaquer Ă ce problĂšme, je prĂ©fĂšre me concentrer sur lâarticle scientifique qui expliquera Ă tous notre dĂ©monstration, et fournir des outils de travail collaboratif », prĂ©voit Tristan StĂ©rin, en castor avisĂ©
deleted by creator
Ah non, pas resolvable celui lĂ
Câest pas le dĂ©fi de lâautruche ça ?
Gros boulot Ă ce que je lis ! FĂ©licitations Ă toute lâĂ©quipe :-)