|
Questions fréquentes | ||
Accueil Sommaire | |||
Logiciels
Hors Windows
Informations utiles
Parties préparées
|
Nos idées fausses sur l'aléatoire
Non, l'aléatoire ne nous en veut pas. Il ne décide pas de sournoisement nous défavoriser, pour nous faire perdre et nous être désagréable. Et pourtant, quand il s'agit d'un logiciel de jeu de cartes qui bat les cartes de façon automatique, les affirmations les plus folles pleuvent de toute part. Ce sont surtout les joueurs de belote qui sont les plus virulents. Ils m'ont envoyé des messages incendiaires, certains avec de véritables insultes, pour s'insurger contre cet aléatoire qui, selon eux, les défavorisait d'une manière honteuse et inacceptable. Voici quelles étaient leurs allégations :
C'était vers l'année 2005, quand Bel Atout a commencé à acquérir une petite célébrité. Je pensais à l'époque que c'était la rançon de la gloire, et que je devais m'en accommoder. Mais je restais malgré tout consterné par tant d'aberrations. Dans certains messages, les joueurs m'expliquaient même comment je m'y prenais pour les faire perdre, ils n'avaient pas l'ombre d'un doute sur leurs analyses et leurs conclusions. Et moi, pantois, je relisais mon petit programme de battage des cartes, qui faisait une trentaine de lignes de code en langage C (sur plus d'un million pour le logiciel complet), et qui reprenait un principe on ne pouvait plus basique et innocent de tout ce dont on l'accusait :
Battage automatique des cartes
J'avais surtout du mal à imaginer comment des joueurs doués de raison pouvaient un seul instant penser que j'avais écrit un programme les défavorisant, et devenant pour le coup désagréable à utiliser. Enfin, quelle est la personne sensée qui va faire une chose pareille ? On peut éventuellement comprendre le principe pour une machine à sous destinée à gagner de l'argent. Mais un programme fait pour s'initier, s'entraîner, s'amuser et prendre du plaisir à jouer, non, je ne comprenais pas.
J'ai commencé à m'inquiéter sérieusement sur le sujet quand le webmaster d'un site de téléchargement m'a contacté à propos de Bel Atout. Sur son site où mon logiciel était présenté, les visiteurs avaient la possibilité de donner un avis. Et deux avis avaient été récemment postés, qui accusaient directement mon programme de tricher et de favoriser l'équipe adverse. Le webmaster m'avertissait aimablement que de tels avis allaient fortement nuire à la réputation de mon programme, et il me conseillait d'y répondre rapidement. J'ai remercié ce responsable web de sa gentillesse (c'était un grand amateur de mes programmes), mais je n'ai pas suivi son conseil. J'ai refusé d'aller lire les avis : je savais très bien ce qu'ils contenaient. Et j'ai surtout refusé d'y répondre, car je ne voulais pas entrer dans une polémique interminable. J'étais certain que ma réponse ne serait pas convaincante.
Quelque temps plus tard, j'ai reçu plusieurs messages alarmants. Leurs auteurs avaient lu sur Internet que Bel Atout n'était pas impartial dans ses distributions de cartes. Et après avoir essayé le programme, ils étaient tombés d'accord avec ces avis négatifs. Ce n'était pas étonnant. Une fois l'idée préconçue implantée dans l'esprit d'un joueur, celle-ci ne pouvait que se renforcer. La fausse rumeur commençait à se diffuser et à avoir son effet dévastateur.
Il fallait donc que je me retrousse les manches et me mette au travail. J'étais assez confiant, sans me douter qu'il allait me falloir près de dix ans pour trouver la bonne solution au problème.
Il était clair pour moi que dans Bel Atout, mes réglages par défaut n'étaient plus bons. Dans les premières années, j'avais toujours privilégié le bon jeu, et réglé le programme au démarrage avec le plus haut niveau de jeu. Je pensais que les beloteurs voulaient surtout trouver un logiciel jouant à peu près correctement. Visiblement, je m'étais trompé. Les utilisateurs n'arrivaient plus à gagner, et probablement parce qu'ils se croyaient tous d'un très haut niveau, ils en venaient naturellement à accuser l'ordinateur de tricherie. Il fallait changer cela.
Le changement des réglages par défaut n'a eu aucun effet. Les joueurs de petit niveau ne comprennent pas toutes les subtilités du jeu, et affaiblir le niveau des adversaires ne pouvait pas faire une très grande différence. De toute façon, ce qui les choquait avant tout, c'était la distribution. Que l'adversaire ait une belle main, qu'il fasse un capot, qu'il ait une grosse annonce, ou même juste une tierce. Et je les imaginais continuer à dire "Hé bien voilà, il n'y en a encore que pour eux !". Rien n'avait changé.
J'ai alors entrepris d'ajouter à mon site plusieurs pages sur l'aléatoire. J'y parlais de nos idées fausses sur l'aléatoire, des erreurs d'analyse que nous faisons volontiers sur un jeu aussi simple que le Pile ou Face. Comment après avoir tiré dix fois Pile de suite, nous sommes à peu près tous convaincus que le Face a davantage de chances de sortir au onzième tirage (ce qui est archi-faux). Et comment nous nous attendons tous à ce qu'un grand nombre de tirages finisse toujours par aboutir à une quasi égalité du nombre de Pile et de Face. Ce qui est contredit par les théories de l'aléatoire. Et en illustration, je citais cet excellent auteur :
Si un million de Parisiens avaient décidé de jouer à pile ou face en 1789 jusqu'à ce qu'ils aient eu un nombre égal de « pile » et de « face », à raison d'un lancer par seconde, 500 000 d'entre eux auraient cessé de jouer dès la deuxième seconde, mais
plusieurs seraient encore en train de jouer aujourd'hui !
A la lumière de ces exemples, j'essayais de faire comprendre que dans un jeu comme la belote ou le bridge, il ne fallait pas s'attendre à une régularité des distributions, qu'il pouvait y avoir des périodes où une équipe n'avait que du bon jeu, sans que cela remette en cause l'équité de l'aléatoire. Qu'après un grand nombre de parties, c'était tout à fait normal qu'une équipe ait pris de l'avance au nombre total de gains. Que cet écart absolu n'était pas important. Que ce qu'il fallait regarder, c'était les deux pourcentages de gain, qui au fil du temps allaient se rapprocher des 50%, montrant alors que les deux équipes étaient traitées sur un pied d'égalité.
Mais c'était peine perdue. Les utilisateurs convaincus de ne pas se tromper dans leurs analyses de l'aléatoire, ont dû être peu nombreux à lire des pages écrites par l'auteur lui-même, qu'ils soupçonnaient certainement de mentir pour se défendre. Et les rares qui ont eu le courage de lire l'intégralité de mes écrits ont bientôt confirmé mes doutes. Leurs messages de réponse étaient sans appel : ils n'avaient pas cru un seul mot de tout ce qu'ils avaient lu sur mon site !
Si les utilisateurs mécontents comptaient mal les parties gagnées, il fallait que le programme les aide en tenant à jour des statistiques sur les gains des deux équipes. C'était la mesure qui promettait d'être la plus efficace, même si j'ai très vite compris que les statistiques de l'utilisateur n'allaient pas suffire. Pour un joueur de bas niveau et trop prudent aux enchères, les statistiques de gain pouvaient montrer un pourcentage de 45% pour Nord‑Sud, contre 55% pour Est‑Ouest. Ma démonstration de l'équité de l'aléatoire allait être faussée par le niveau de l'utilisateur.
J'ai donc mis en place de nouvelles fonctions pour cumuler les scores obtenus par l'ordinateur pendant la comparaison. Ainsi, il devenait possible de savoir si l'ordinateur, en prenant la place de l'utilisateur en Sud, aurait gagné ou perdu la partie, indépendamment du gain de l'utilisateur. Du coup, même si l'utilisateur faisait beaucoup moins que 50% de gain, l'ordinateur à la comparaison devait, lui, se rapprocher des 50% puisque les 4 joueurs machine jouaient avec le même niveau de jeu. Et les accusations de tricherie allaient tomber d'elles-mêmes. J'imaginais le résultat suivant :
Avec de telles statistiques, l'utilisateur était peut-être en droit de se plaindre d'être défavorisé par rapport à Est‑Ouest, puisqu'il ne gagnait que 47,50% des parties. Mais il avait aussi la vision claire que l'ordinateur, lui, faisait mieux et se rapprochait des 50%. La preuve allait donc être apportée que les gains des deux équipes ne pouvaient que s'équilibrer avec le temps, à la condition bien sûr de regarder le score de l'ordinateur.
Mais c'est justement cette condition qui ne pouvait pas être remplie. L'idée était bonne, mais pour cela il fallait que l'utilisateur branche la comparaison. Ce que ces utilisateurs qui se plaignent de l'aléatoire refusent le plus souvent de faire, parce qu'ils ne veulent pas voir leur véritable niveau de jeu. Ils ne veulent surtout pas être comparés, et surtout pas voir leurs propres fautes. Les statistiques de l'ordinateur ne les intéressent pas, et il est probable qu'ils les mettent en doute elles aussi. Non, la solution n'était pas encore là. Et je continuais à recevoir des plaintes d'utilisateurs de plus en plus violents dans leurs propos.
Dans ma version de débogage de Bel Atout, j'avais déjà des outils pour conduire des tests automatiques sur un grand nombre de parties. Je faisais tourner le programme plusieurs nuits d'affilée, en sauvegardant les statistiques entre chaque nuit. Et j'obtenais des résultats tout à fait conformes aux théories de l'aléatoire décrites dans les livres. Pour ce jeu mettant en opposition deux équipes, les statistiques de gain montraient bien que :
Dans SimiliBridge et Bel Atout, affichage des pourcentages de gain
Dans SimiliBridge et Bel Atout, le détail des parties gagnées,
Dans Bel Atout, le détail des résultats obtenus pour chaque équipe
Dans Bel Atout, le détail des annonces (Belote et combinaisons).
Dans Bel Atout, les pourcentages pour chaque type de main.
Mais à mesure que le jour de la sortie de la nouvelle version approchait, je commençais à douter de son effet sur les irréductibles de la théorie d'un aléatoire partisan. Allaient-ils vraiment conduire des tests pour contredire ces croyances qu'ils avaient si profondément ancrées en eux ? Pour qu'une expérience soit probante, il fallait faire un test sur au moins 2000 donnes, ce qui pouvait prendre 2 ou 3 heures. Allaient-ils vraiment avoir la patience de laisser tourner le programme tout ce temps, pour chercher à savoir s'ils se trompaient ou non ? Et même s'ils avaient cette honnêteté, ne pouvaient-ils pas remettre en cause la validité des tests eux-mêmes, et prétendre que la distribution était peut-être équitable pendant les tests, mais que quand ils jouaient, eux, elle ne l'était plus. Non, ma preuve par les tests automatiques n'en était pas une. Ce n'était pas encore la solution au problème.
C'est SimiliBridge, mon programme de bridge, qui m'a aidé à trouver la solution. Pour les bridgeurs débutants qui commençaient à apprendre leurs premières enchères système, j'avais mis en place un mode particulier de distribution. Je distribuais aléatoirement une donne, puis faisais effectuer les enchères par les joueurs machine, et analysais à la fin si ceux-ci avaient utilisé exclusivement des enchères connues de l'utilisateur. Si tel était le cas, je gardais la donne, et sinon je recommençais la distribution. Ainsi, je pouvais présenter des donnes variées et imprévisibles, mais en même temps adaptées au niveau des débutants.
Un beau matin, en me rasant dans ma salle de bain (c'est souvent à ce moment-là que j'ai mes meilleures idées - ne me demandez pas pourquoi, je n'en sais rien), j'ai tout à coup pris conscience que je pouvais utiliser ce principe du tri sélectif des donnes aléatoires pour... favoriser une équipe. Je n'avais jusque-là jamais imaginé une quelconque technique permettant de donner un avantage à telle ou telle équipe. Je ne voyais pas comment je pouvais distribuer volontairement des bonnes cartes ou des combinaisons, sans que cela ne soit visible et ne débouche sur des mains stéréotypées. Mais là, par le biais des enchères, j'entrevoyais une solution. Si je ne gardais que les donnes où une équipe gagnait les enchères, celle-ci allait certainement être avantagée. J'analysais rapidement les différents points suivants :
Boîte de dialogue pour régler l'avantage Nord‑Sud
D'autant plus que l'avantage à la distribution laisse intact le défi qui consiste à gagner la comparaison. L'utilisateur joue les mêmes donnes que l'ordinateur à la comparaison, et donc il peut toujours chercher à le dépasser, que les donnes soient favorables ou pas. Bien sûr, un utilisateur plus habile en attaque aura peut-être de meilleurs résultats en réglant l'avantage sur les hauts contrats. Mais la différence ne doit pas être grande. Dans la fenêtre des statistiques, l'écart de pourcentage entre l'utilisateur et l'ordinateur doit rester un bon indicateur de niveau, qu'il y ait avantage ou pas.
Les plaintes sur l'aléatoire ont naturellement cessé. Notez que je n'ai jamais reçu de messages d'excuses de la part de tous ceux qui ont accusé le programme à tort. Je suppose que ces utilisateurs indélicats restent convaincus d'avoir eu raison, et qu'ils ont trouvé une façon ou une autre de s'accorder avec leur conscience. Peu importe finalement, ils m'ont poussé pendant dix ans à améliorer mes programmes, et ce fut un mal pour un bien.
Dans mes 4 logiciels, j'ai même renforcé la liberté de l'utilisateur en lui donnant la possibilité de redistribuer une donne sans interrompre la partie en cours. Cela se fait par le menu Jouer / Redistribuer la donne en cours, ou le raccourci Ctrl+F8. Jusque-là, les joueurs mécontents de la distribution étaient obligés d'interrompre leur partie. A présent, ils peuvent redistribuer la donne, autant de fois qu'ils le souhaitent, à la condition de le faire avant qu'elle ne soit entièrement jouée. Ainsi, ils peuvent gagner jusqu'à 100% de leurs parties !
Confirmation demandée pour redistribuer la donne en cours
Le principe ne semble avoir un intérêt que pour une petite minorité d'utilisateurs. Mais ce n'est pas tout à fait juste. On peut rechercher une donne d'un type particulier, tout en voulant conserver le donneur, la marque en début de donne à la belote, les conditions de vulnérabilité au bridge, etc. Interrompre la partie modifiait toujours ces conditions. La redistribution pure et simple est bien plus pratique. Je m'en sers maintenant souvent en phase de test.
J'ai quand même reçu une plainte d'une personne très sympathique, mais qui refusait clairement de donner un avantage à son équipe. Elle était on ne peut plus mécontente de la distribution. Selon elle, il y avait des annonces plus fortes en Est‑Ouest, des enchères très risquées qu'elle n'aurait jamais faites elle-même, tout cela ne pouvait pas être une coïncidence : les adversaires étaient sans aucun doute avantagés. Elle voulait que cela cesse, mais pour autant elle ne voulait pas utiliser la boîte de dialogue pour régler l'avantage. Elle refusait l'idée d'être avantagée à la distribution, ce qui était tout à son honneur.
Malheureusement, je n'ai pas trouvé de solution pour cette personne. Mais sa demande était néanmoins digne d'intérêt. Ce qu'elle voulait, tout simplement, c'est ce qu'on pourrait appeler un aléatoire complaisant. En gros, un aléatoire qui favorise l'utilisateur, mais sans le lui dire. Après quelques recherches sur le Web, je me suis rendu compte que le principe avait déjà été bien étudié, et qu'il était probablement utilisé dans certains logiciels de jeu, évidemment d'une manière cachée. C'est un procédé qui peut se justifier, pour certains types de jeux en tout cas, si le but est de rendre le programme agréable aux joueurs débutants. Mais pour un jeu de cartes, je pense que la grande majorité des joueurs de bon niveau souhaitent jouer sur des donnes totalement aléatoires. Dans mes programmes, le nombre de donnes différentes n'est limité que par le nombre des combinaisons possibles des cartes distribuées :
A la belote
99 561 092 450 391 000 donnes possibles
Au bridge
53 644 737 765 488 792 839 237 440 000 donnes possibles
Pour en terminer avec le sujet sensible de l'aléatoire, je dois avouer que je me surprends souvent moi-même à développer de fausses connaissances à partir de faits aléatoires pourtant réels. Par exemple, quand je fais mes courses au supermarché et que je suis pressé, je choisis toujours, mais toujours la mauvaise caisse. Je ne sais pas comment je fais, mais 9 fois sur 10 je choisis la caisse où il va y avoir un problème ou un retard. Là, c'est un client un peu âgé qui veut payer en petites pièces et qui n'y arrive pas. Là, c'est une dame qui veut régler une partie de ses courses en chèque et avec facture, et l'autre partie avec sa cagnotte de fidélité, si bien sûr il y a assez d'argent dessus. Et c'est interminable ! Là, c'est le monsieur qui a oublié de peser ses fruits, il a dit qu'il en avait pour une minute, mais on attend, on attend, mais qu'est-ce qu'il fait ?! Là, tout va bien, c'est à moi de passer, vite, vite, je suis dans les temps, et non mais c'est pas vrai, voilà la responsable qui vient retirer les gros billets de la caisse ! Et elle choisit ma caisse, pas une autre ! Et la caissière qui doit compter, compter, compter. Moi, je me tape la main sur la tête. Mais pourquoi n'ai-je pas choisi la caisse d'à côté, où tous les clients passent à toute vitesse ?! Mais c'est tout le temps comme ça, tout le temps, tout le temps ! A croire que le supermarché et les autres clients le font exprès parce que je suis en retard ! Mais c'est vrai, je vous jure, j'ai fait l'expérience mille fois ! Ils doivent le savoir, je ne sais pas comment ils font ! Ils me voient arriver, ils voient que je suis pressé, et c'est immanquable : ils font tout pour me retarder !
L'homme pressé qui perd son jugement
Donc, je comprends très bien ce qui se passe chez l'utilisateur de Bel Atout qui a une forte envie de gagner. Quand il voit Est ou Ouest annoncer un carré, il ne se trompe pas. Il n'a pas la berlue, il est bien témoin d'un fait réel. Mais à partir de cette information indubitable, il va se construire la fausse connaissance "Presque tous les carrés sont pour Est‑Ouest". Et il va incriminer la seule personne qui pourrait être responsable de cette injustice : l'auteur du logiciel. C'est fascinant, et effrayant à la fois.
Non, l'aléatoire ne nous en veut pas. Mais nos émotions modifient notre façon de le percevoir et de l'analyser. Nos capacités d'apprentissage et de généralisation sont une des forces de notre cerveau. Mais cette force implique aussi des faiblesses, dont nous devons apprendre à nous méfier.
|