Comment l'adversaire artificiel choisit son coup

Voici la machinerie réelle de l'adversaire artificiel : ce qu'il mesure, les majorations qu'il s'impose, la note qu'il donne à chaque coup légal, la recherche qui affine le tout. De quoi comprendre pourquoi il garde une carte que vous auriez remplacée.

Tout se ramène au score de manche estimé

L'adversaire artificiel ne raisonne pas en bons ou mauvais coups. Il attribue à sa grille un score de fin de manche estimé, en points, où plus bas vaut mieux, et un coup vaut exactement la différence entre l'estimation d'avant et celle d'après.

Le calcul se fait colonne par colonne : somme des cartes visibles, plus chaque case cachée comptée à sa valeur d'attente. Une colonne engloutie vaut zéro ; une colonne dont les trois cases sont retournées sur la même valeur aussi, puisque le moteur va la vider. Il en faut bien trois : deux cases identiques et une troisième encore cachée ne valent pas zéro, elles valent une espérance escomptée.

Ce découpage n'est pas cosmétique : poser une carte ne touche qu'une colonne sur les quatre, et le robot réutilise les trois autres telles quelles. D'où une évaluation assez peu coûteuse pour être appelée des milliers de fois avant un seul coup.

Le robot majore chaque case cachée, et il le fait exprès

À une case encore cachée, le robot n'inscrit pas l'espérance du sabot complet — 5,07, démontrée dans « Le sabot en chiffres ». Il inscrit l'espérance des cartes encore INCONNUES, c'est-à-dire la même moyenne recalculée après avoir retiré tout le visible, et il la majore d'une prime de risque dont le plancher vaut 0,4 point.

Le motif : deux grilles de même espérance ne se valent pas. Celle qui reste incertaine peut exploser, et si la manche se referme on n'aura plus le temps de la corriger. Cette prime est le prix de l'information : à gain égal, le robot choisit le coup qui lève une incertitude, puisque sonder une case fait tomber sa prime.

Elle n'est pas fixe. Une seconde part, pesant jusqu'à 1,6 point, est pondérée par une urgence valant 1 divisé par 1 plus le plus petit nombre de cartes cachées adverses : à six cases cachées adverses, 1 / 7, soit 0,14 ; à une seule, 1 / 2. Plus la manche approche de sa fin, plus une case cachée coûte cher, sans qu'aucune de vos cartes ait bougé.

Une colonne à moitié faite n'est jamais comptée à son prix brut

Quand les cartes visibles d'une colonne portent la même valeur et qu'il reste au moins une case à pourvoir, le robot escompte l'alignement à venir : il estime la probabilité d'obtenir encore un exemplaire de cette valeur, l'élève à la puissance du nombre de cases manquantes, et retranche d'autant.

Cette probabilité sort d'un décompte : exemplaires encore inconnus rapportés au total inconnu, multipliés par le nombre de cartes qu'il espère voir défiler — une piochée et un sommet de défausse par tour, comptés 1,5 en moyenne, sur sept tours d'horizon au plus. Deux garde-fous bornent l'optimisme : la probabilité plafonne à 0,6, et le gain est décoté de 10 %, puisqu'il faut encore poser la carte sans se la faire souffler.

Un dernier détail explique un comportement déroutant : seule la part positive de la colonne est escomptée. Trois 12 alignés effacent 36 points, et le robot les cherche ; engloutir trois zéros efface exactement zéro point, et il ne les cherchera jamais. Une colonne de -2 lui ferait même perdre des points en disparaissant.

Le retournement gratuit a sa propre note, et ce fut un correctif

L'estimation posée, noter les coups est mécanique, à trois nuances près. Prendre la défausse engage : la carte devra obligatoirement être posée, et ce coup vaut donc sa meilleure pose, rien d'autre. Piocher n'engage pas : le robot garde le droit de poser la carte ou de la rejeter pour sonder une case, et sa note est l'espérance, sur toutes les valeurs inconnues, du meilleur de ces deux débouchés — sauf pour le Maître du solo, qui voit la carte et n'a donc plus d'espérance à prendre, seulement deux nombres à comparer. Ce droit de refuser interdit toute comparaison naïve entre le sommet de la défausse et une carte moyenne ; la question appartient au guide piocher ou prendre. S'y ajoute une marge de 0,25 point en faveur de la pioche, qui n'annonce rien à la table.

Le retournement libre, lui, existe une fois par case cachée : dix au sortir de la révélation initiale, puisque deux cartes sont déjà retournées. Tant qu'il héritait de la note de la pioche, onze candidats se retrouvaient ex æquo, dont dix retournements ; les ex æquo se départageant à pile ou face, le retournement l'emportait presque à tous les coups : les robots ouvraient leur grille au lieu de jouer. Sa vraie note est le gain espéré de la case visée, sans marge — la pioche la domine alors faiblement, puisqu'elle offre le meilleur de deux débouchés là où lui n'en offre qu'un.

Le monde qu'il tire au sort ne contient rien qu'il ne puisse voir

Aux niveaux hauts, l'heuristique ne décide plus seule : elle amorce une recherche arborescente à ensembles d'information — ISMCTS, d'après Cowling, Powley et Whitehouse, IEEE Transactions on Computational Intelligence and AI in Games, 4(2), 2012. Elle règle le problème de quiconque s'assoit ici : l'arbre du jeu ne s'explore pas quand on ignore les cartes. Chaque itération tire donc un monde possible compatible avec ce qui est visible.

Ce monde n'est pas bricolé. Le robot part du sabot complet et en retire tout le visible : cases révélées de toutes les grilles, la sienne comprise, la carte qu'il tient, et la défausse entière — pas son seul sommet, puisqu'elle est consultable intégralement à tout moment. Il ne sait donc rien que vous ne puissiez savoir ; il l'ouvre simplement à chaque tour, et c'est le seul écart entre lui et vous. Il se comble d'un clic. Le Maître du mode solo fait exception, et la dernière section de cette page dit laquelle.

Le remélange ne l'avantage pas davantage. Quand la pioche s'épuise et que la défausse repart de zéro, les cartes qu'elle contenait retournent dans l'abysse des inconnues, et son modèle ne retranche plus que la défausse courante — remis à zéro au même instant que votre propre comptage.

Cette recherche est bridée exprès, faute de quoi elle jouerait moins bien

Sous budget serré, une recherche libre fait pire que l'heuristique qu'elle affine ; plusieurs bornes l'en empêchent. À la racine, seuls les six meilleurs coups heuristiques sont explorés : une phase de pose en offre jusqu'à treize — douze cases plus le rejet — et diluer quelques centaines d'itérations sur treize branches ne distinguerait rien.

Chacun de ces six coups démarre avec huit visites virtuelles issues de sa note, converties en récompense par une échelle de 14 points. D'où une conséquence utile : à faible nombre d'itérations, la recherche se comporte comme l'heuristique et jamais au hasard ; quand elles s'accumulent, les statistiques réelles reprennent la main.

Les scénarios s'arrêtent au bout de douze demi-coups, la position étant alors jugée par l'heuristique. Jouer la manche jusqu'au bout coûterait plusieurs fois plus cher et, surtout, le score final dépend de dizaines de tirages : ce bruit noierait la différence entre deux bons coups. L'estimation à l'horizon est plus biaisée, mais bien plus stable.

La politique qui joue ces scénarios est enfin bruitée à 0,12, sans quoi tous les déroulés se ressembleraient, et la constante d'exploration vaut 0,3 au lieu du √2 théorique : les récompenses n'occupent pas tout l'intervalle, et une valeur trop grande égaliserait les visites, vidant de son sens le critère final — le coup le plus visité.

Il ne vise pas un score bas, il vise un score plus bas que le vôtre

La récompense d'un scénario n'est pas le score obtenu : c'est l'écart entre ce score et la moyenne de ceux des adversaires, ramené sur une amplitude fixe de 50 points — fixe, et non calée sur les extrêmes d'une manche, qui dépendent d'un seul adversaire malchanceux.

D'où deux comportements : il accepte une grille médiocre quand toute la table souffre, et refuse un coup confortable quand un adversaire est très bas. Et lorsqu'un joueur a déjà déclenché le dernier tour, le risque de voir son score doublé est ajouté à l'estimation de celui qui a fermé : trop structurant pour être ignoré. La règle exacte du doublement, et la marge à exiger, appartiennent au guide sur la clôture.

Les grilles lui sont fermées par construction ; sa seule carte en plus est annoncée

Toute lecture d'une grille par le robot passe par une seule fonction de normalisation, qui remplace par 0 la valeur de chaque case non révélée : la valeur n'est pas ignorée par convention, elle est effacée avant d'entrer dans l'évaluation. Même si on lui passait par erreur l'état complet du serveur — et les déroulés y travaillent bel et bien, pour aller vite — lire une case cachée resterait matériellement impossible. Cela vaut pour les quatre niveaux, sans exception ni réglage.

Une seule information peut lui être tendue, et le mode solo la tend à son dernier niveau : la pioche, dans son ordre exact. Le Maître ne devine plus la carte qu'il s'apprête à tirer, il la lit ; et comme il sait ce qui dort en pioche, il sait par soustraction ce qui dort encore face cachée sur la table — le compte de ces cartes, jamais leur place. Deux conditions le bornent : le profil du niveau doit l'autoriser, et la table doit la tendre. Une table en ligne ne la tend à personne ; le solo ne la tend qu'au Maître.

D'où deux registres à ne pas confondre. Ce que calculent les trois premiers niveaux, un humain assis à la même table peut le calculer : quand ils vous battent, ils ne vous ont rien volé. Le Maître, lui, joue avec un handicap déclaré, comme on donne des pierres au meilleur joueur du club — le battre ne se compare donc pas au reste.