← Retour au blog

L'algorithme optimal pour résoudre le mastermind

En 1977, l'informaticien Donald Knuth publie un court article, « The Computer as Master Mind », dans lequel il montre qu'avec la bonne méthode, n'importe quel code du mastermind classique se trouve en cinq essais au plus. Cet article explique sa méthode, donne les chiffres exacts (que nous avons recalculés en faisant tourner l'algorithme sur les 1 296 codes) et précise ce que « optimal » veut dire, car il y a deux façons de l'entendre.

🎮 Jouer au mastermind

Le problème posé

Le mastermind classique se joue avec 4 pions et 6 couleurs, doublons permis. Cela fait exactement 1 296 codes possibles (64). C'est la configuration du jeu de plateau, et celle du niveau Classique sur ce site.

La question est la suivante : comment choisir ses essais pour être certain de trouver le code en un minimum de coups, quel que soit ce code ? Chaque essai est une question, chaque verdict (tant de pions noirs, tant de pions blancs) est une réponse qui élimine une partie des 1 296 codes.

La méthode de Knuth, pas à pas

Knuth applique un principe appelé minimax : à chaque coup, jouer l'essai dont le pire verdict possible laisse le moins de codes en lice.

1. Ouvrir par deux paires

Le premier essai est toujours le même : deux pions d'une couleur, deux pions d'une autre (noté AABB, ou 1122 chez Knuth). Après cet essai, 13 verdicts différents peuvent tomber, et le plus gros groupe de codes restants en compte 256. Aucune autre ouverture ne fait mieux dans le pire cas.

Verdict après AABBCodes encore possibles
0 noir, 0 blanc256
0 noir, 1 blanc256
1 noir, 0 blanc256
1 noir, 1 blanc208
2 noirs, 0 blanc114
0 noir, 2 blancs96
1 noir, 2 blancs36
2 noirs, 1 blanc32
3 noirs, 0 blanc20
0 noir, 3 blancs16
2 noirs, 2 blancs4
0 noir, 4 blancs1
4 noirs1 (c'est gagné)

Le total fait bien 1 296. Un verdict manque à l'appel : « 1 noir, 3 blancs », impossible à obtenir avec deux paires.

2. Tenir la liste des codes possibles

Après chaque verdict, on ne garde que les codes qui auraient donné exactement les mêmes verdicts à tous les essais déjà joués. Knuth appelle cette liste S.

3. Choisir l'essai qui limite la casse

Pour chacun des 1 296 codes (et pas seulement ceux de S), on regarde comment il découperait S selon les verdicts possibles, et on retient la taille du plus gros morceau. On joue le code dont le plus gros morceau est le plus petit. À égalité, on préfère un code qui appartient à S, puisqu'il a une chance d'être le bon.

Conséquence surprenante : l'algorithme joue parfois un essai dont il sait qu'il ne peut pas être le code, parce que cet essai sépare mieux les candidats restants. Tu peux le voir faire dans notre partie commentée, gagner au mastermind en 5 coups.

4. Recommencer jusqu'à quatre noirs

On répète les étapes 2 et 3 jusqu'à ce qu'il ne reste qu'un code.

Les résultats, code par code

En appliquant cette méthode aux 1 296 codes, on obtient la répartition suivante :

Code trouvé enNombre de codesPart
1 coup10,1 %
2 coups60,5 %
3 coups624,8 %
4 coups53341,1 %
5 coups69453,5 %

Soit 5 801 essais pour 1 296 codes : 4,476 coups en moyenne, 5 au maximum. Plus de la moitié des codes demandent les cinq coups.

🎮 Jouer au mastermind

« Optimal » : dans le pire cas ou en moyenne ?

La méthode de Knuth est optimale pour le pire cas : aucune stratégie ne peut garantir moins de 5 coups. En revanche, elle n'est pas la meilleure en moyenne.

En 1993, Kenji Koyama et Tony Lai ont calculé la stratégie qui minimise le nombre moyen de coups : 4,340 coups (5 625 essais pour les 1 296 codes), au prix d'un pire cas de 6 coups. En s'interdisant de dépasser 5 coups, la meilleure moyenne possible est de 4,341 (5 626 essais). L'écart avec Knuth est faible : un peu plus d'un dixième de coup par partie.

Autre nuance : l'ouverture AABB est la meilleure pour le pire cas, mais ce n'est pas celle qui apporte le plus d'information en moyenne. Trois couleurs dont une doublée (AABC) ou quatre couleurs différentes (ABCD) laissent en moyenne un peu moins de codes derrière elles. Nous comparons ces ouvertures chiffres à l'appui dans la première tentative au mastermind, et l'approche par l'entropie dans le mastermind et la théorie de l'information.

Et avec plus de couleurs ou plus de pions ?

La méthode de Knuth compare chaque essai envisageable à chaque code restant. Avec 1 296 codes, c'est l'affaire d'un instant pour un ordinateur. Avec les 32 768 codes du niveau Difficile ou les 100 000 du niveau Extrême, le même calcul devient beaucoup plus lourd, et on lui préfère des méthodes approchées : choisir l'essai parmi un échantillon, ou utiliser des algorithmes génétiques comme l'ont proposé Berghman, Goossens et Leus.

Sur le plan théorique, Jeff Stuckman et Guo-Qiang Zhang ont montré en 2005 que décider s'il existe un code compatible avec une série d'essais et de verdicts est un problème NP-complet quand on laisse grandir le nombre de pions et de couleurs. Autrement dit, on ne connaît pas de méthode rapide qui marche pour toutes les tailles. La bataille navale pose un problème de recherche par élimination du même genre, voir l'algorithme chasse-cible.

Ce qu'un joueur peut en retenir

Pour voir une machine raisonner par élimination, choisis un code sur la page l'ordinateur devine. Pour l'appliquer à ta propre partie, le solveur calcule les codes restants et un coup conseillé. Et si tu préfères une approche sans calcul, nos stratégies pour gagner au mastermind et la logique de déduction suffisent largement pour bien jouer.

À lire aussi

← Retour au blog Jouer au mastermind
Infos 1/9
Voir tous nos défis du jour
Jeux à la une
Voir tous les jeux →