Choisissez au hasard…

“Le Nombre imaginaire” ou les mathématiques comme terrain de jeu où l’imagination seule fixe les limites.

Si vous êtes comme moi, voici un jeu auquel vous n’avez guère joué depuis vos (très) jeunes années : le papier enveloppe la pierre ; la pierre casse les ciseaux ; les ciseaux coupent le papier. Parfois la pierre devient un puits, que le papier recouvre et où tombent les ciseaux.

Quelle est votre stratégie optimale si vous jouez à ce jeu de manière répétée contre un même adversaire ? Clairement, jouer toujours la même chose (pierre je suis et pierre je reste), ou une série cyclique prédéterminée (pierre, papier, ciseaux), voire une réponse aux mouvements précédents (je joue ciseaux si tu as joué papier) vous conduira à votre perte. Vous devez surprendre votre adversaire tout en anticipant si possible ses choix. Vous vous devez d’être imprévisible ; les maths confirmeront donc votre intuition que la meilleure stratégie – qui vous garantit un match nul sur le long terme – est de jouer aléatoirement chacune des trois figures avec la même probabilité. C’est ce que l‘on appelle une stratégie mixte, qui introduit une probabilité associée à vos mouvements, et c’est aussi un équilibre de Nash : si votre adversaire applique cette même stratégie vous n’aurez aucune raison de changer la vôtre, et lui non plus.

En d’autres termes, votre adversaire rationnel doit faire exactement la même chose que vous et tirer au sort ses mouvements : c’est d’ailleurs ce qui enlève tout intérêt au jeu dès que l’on a passé l’âge de lire Pomme d’Api, et encore.

Sauf que.

Je me suis amusé, il y a de nombreuses années de cela (j’avais cependant largement passé l’âge de Pomme d’Api et même celui de Pif Gadget), à coder un programme d’ordinateur jouant à pierre-papier-ciseaux contre un humain. Le mode opératoire était simple : le joueur choisissait une touche du clavier représentant l’un des trois symboles ; l’ordinateur, qui en avait entretemps aussi choisi un, les affichait tous deux sur l’écran en comptant les points, et le jeu recommençait jusqu’à épuisement.

Sans tricher, ce programme en vint rapidement à battre son adversaire humain dans 70% des parties. Certes, l’échantillon d’adversaires était peu représentatif puisque composé de votre seul serviteur (je tentai bien de recruter une cohorte de testeurs mais mon entourage avait développé des tactiques efficaces pour m’éviter à l’époque). Il n’y en a pas moins là quelque chose de frappant : un programme fort simple (lequel devait tourner dans les quatre kilo-octets de mémoire d’un TI 99 4A, ce qui je vous assure n’est pas large), gagnant de manière statistiquement très significative contre son concepteur ! Cela voulait-il dire que mon programme jouait mieux que la stratégie supposée optimale ? Nash s’était-il donc trompé ? Avais-je programmé une meilleure stratégie qui m’eût valu, dans un monde plus juste, une médaille Fields ou un crypto-Nobel d’Economie, voire les deux ?

Que nenni, hélas. La vérité n’est pas que mon programme jouait mieux que la stratégie optimale : c’est que moi, je jouais plus mal que cette stratégie optimale. Mon programme était simplement conçu pour repérer mes erreurs et les exploiter impitoyablement. Et cela marchait. Comment ?

Bien entendu, il me faut d’abord vous convaincre que l’ordinateur ne trichait pas alors qu’il l’aurait pu, puisqu’enfin il n’affichait son symbole qu’après avoir pris connaissance de mon choix. J’avais conçu le programme de manière à ce qu’il choisisse son propre coup avant que je tape une touche, et ne puisse le modifier après ; cependant l’idée de considérer mon ordinateur comme honnête simplement parce que je l’avais programmé pour ça représentait, je m’en rends bien compte à présent, un acte de foi inaccessible à la plupart de mes proches, et je ne puis qu’espérer que vous même voudrez bien me croire sur parole.

Exit la triche, donc. Quoi d’autre ? Le fond du problème, c’est qu’il est très difficile pour un être humain de choisir au hasard. Nous souffrons d’un grand nombre de biais de perception qui influencent nos décisions à un point que nous ne soupçonnons pas. Nous avons tendance, par exemple, à surestimer la fréquence d’événements extrêmement peu probables (ce qui explique certainement le succès de la Française des Jeux) et à sous-estimer la probabilité d’événements plus fréquents (ce qui explique tout autant le succès de la SEITA). Nous avons par ailleurs notre propre perception de ce qui paraît aléatoire, désordonné. Si je vous demande de choisir un nombre au hasard entre zéro et neuf, il y a pas mal de chances que vous ne choisissiez ni zéro ni neuf, et sept, par exemple, pourrait apparaître plus souvent qu’il ne devrait ; vous ne trouvez pas, vous, que sept a une bonne tête de nombre pris au hasard ?

Voici deux suites de dix nombres entre zéro et neuf. J’ai produit l’une d’elle en utilisant un générateur de nombres aléatoires (celui d’Excel, qui vaut ce qu’il vaut) ; l’autre est parfaitement déterministe. Laquelle est laquelle ? Les voici :

5, 1, 0, 6, 1, 6, 5, 6, 6, 0

3, 0, 7, 4, 1, 8, 5, 2, 9, 6

Vous trouvez peut-être que la fréquence et la répétition des 6 rendent la première suite un peu louche ? C‘est pourtant celle-ci qui est aléatoire (du moins dans la mesure où l’on peut considérer qu’un ordinateur puisse réellement choisir au hasard, ce qui est sujet à maints débats). La deuxième suite est en revanche parfaitement déterministe : chaque nombre se déduit du précédent en le multipliant par 31, en ajoutant 7, et en gardant le dernier chiffre du résultat. Si j’avais continué cette suite vous auriez d’ailleurs vu réapparaître les nombres 3, 0, 7, 4, 1… en cycle. À la vérité, c’est le fait que tous les chiffres de la deuxième suite soient différents qui aurait dû vous tirer l’œil : dans une suite de dix chiffres pris au hasard, il n’y a que 4 chances sur 10 000 que cela se produise !

Ceci vous convaincra peut-être que nous, humains, ne sommes pas très bons pour choisir au hasard. Mais il y a plus : quoi que nous en pensions, nous intégrons notre environnement et nos souvenirs dans nos choix. Et c’est ce phénomène que mon programme exploitait.

L’hypothèse en l’occurrence était que mon coup pour le prochain tour sera, même si je m’en défends, influencé par ce qui s’est passé au dernier tour. Si j’ai perdu parce que mon papier s’est fait couper par les ciseaux de l’ordinateur, par exemple, il est possible que je développe une phobie inconsciente (quoique, espérons-le, temporaire) du papier qui me fera éviter de le choisir à nouveau dans l’immédiat. Je choisirai peut-être aussi plus souvent la pierre dans ce cas, simplement parce qu’elle n’est pas apparue récemment et que mon modèle d’un choix au hasard voudrait qu’elle revienne assez vite. Le tout inconsciemment, certes, mais indubitablement.

Mon programme se contentait donc de maintenir une table qui comptabilisait, pour chaque combinaison de figures jouées par lui et moi dans l’historique de nos parties, combien de fois j’avais joué chaque figure au coup d’après. Par exemple, il a pu constater au cours du temps que, sur les 40 fois où j’avais joué papier et lui ciseaux, j’avais ensuite joué pierre dans 25 cas, ciseaux dans 12, et papier dans 3.

À la fin de chaque tour, le programme regardait alors la répartition passée de mes choix pour la combinaison de figures qui en résultait, et choisissait le prédateur de chacune de ces figures avec une probabilité équivalente. Si, par exemple, le dernier tour se concluait sur moi papier, lui ciseaux, l’ordinateur se reportait à la table, puis tirait au sort papier (prédateur de pierre) avec une probabilité de 25/40 (soit 62,5% des cas), pierre dans 12/40 soit 30% des cas, et ciseaux dans les 7,5% restants. Puis il prenait note de mon mouvement, affichait le résultat, alimentait son historique, et nous recommencions. C’était aussi simple que cela.

Voici une bonne leçon d’humilité : alors même que j’avais écrit ce programme et que je savais pertinemment comment il marchait, je n‘ai jamais réussi à lui résister après sa période initiale d’apprentissage. J’avais beau essayer d’identifier et de compenser mes biais, je n’y suis jamais arrivé. Il est possible que j’aie réussi à changer un peu mes réflexes, mais c’était toujours pour en développer de nouveaux qu’inévitablement l’ordinateur finissait par repérer et contrer.

Bien entendu, rien n’indique que ce programme était le meilleur possible ; je suis bien certain qu’il ne l’était pas. Un programme plus élaboré aurait peut-être regardé ce qui s’était passé lors des deux tours précédents au lieu d’un seul, ou aurait cherché d’autres formes de régularité dans mon jeu. J’aurais d’ailleurs pu à mon programme en opposer un autre, qui m’eût vengé en faisant semblant d’établir des régularités puis, utilisant sa connaissance du fonctionnement de sa victime, en la surprenant à répétition. Mais ce qui reste vrai, c’est que toute irrégularité délibérée peut être a priori repérée et contrée par un programme, ce qui veut dire que toute stratégie différente du pur hasard est de toute façon susceptible d’être battue. Il existe une analogie de ce fait en cryptographie : tout système de codage introduisant une complexité ou un ordre superflu accroît la fragilité du système.

On peut enfin noter que si j’avais joué au mieux, c’est-à-dire réellement au hasard, alors mon programme aurait fait de même, reproduisant lui aussi exactement la stratégie optimale et donnant ainsi raison à John Nash. En effet son historique lui aurait indiqué, quelle que soit la configuration précédente, que je choisissais toujours mes symboles avec une probabilité d’un tiers, et il en aurait fait autant. Seules mes faiblesses nourrissaient sa force…

… ce qui, on peut le remarquer, est le cas de beaucoup d’algorithmes avec lesquels nous interagissons à l’occasion de nos achats en ligne et de nos communications par réseau social interposé : plutôt que de blâmer leur force, ne devrions-nous pas interroger nos faiblesses ?

Yannick Cras
Le nombre imaginaire

 Imprimer Imprimer