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Ă©

  • pseudo@jlai.lu
    link
    fedilink
    Français
    arrow-up
    2
    ·
    4 months ago

    Gros boulot Ă  ce que je lis ! FĂ©licitations Ă  toute l’équipe :-)