Menu principal :
MicroMax
Minimalist Chess
Moteur d'échecs de Harm Geert Muller codé en C et ne comportant que 2000 caractères et 133 lignes. Malgré cette taille infime, Micro-
Objectif : minimalisme et performance...
En tant que joueur d'échecs je trouve étrange de se fixer comme objectif premier de faire tenir le moteur d'échecs dans le plus petit volume possible, à une époque ou la valeur de l'octet n'est pas loin d'être nulle. Mais je comprends qu'en tant que programmeur le défi puisse être mobilisateur. Harm Geert Muller s'était d'abord fixé la limite de 1200 caractères de code avant de se rendre compte que même en ne retenant que le principal des règles FIDE la force du moteur serait insuffisante. C'est ce qu'à fait Oscar Toledo avec NanoChess(1), qui atteint difficilement les 1200 Elo et fait preuve d'un jeu qui fera souvent se dresser les cheveux sur la tête d'un bon joueur d'échecs. Du coup Muller a déplacé la limite à 2000 caractères. Cela lui a permis de prendre en compte toutes les règles FIDE à l'exception de la sous-
Bien sûr, la place était trop chiche pour faire entrer des quantités de connaissances positionnelles dans l'évaluation. Par exemple, la prise en compte de la structure de pions est minimale, ignorant notamment les situations de pions doublés. Il n'empêche : MicroMax dépasse les 1800 Elo. Et sur la dernière version, la 4.8, les comportements les plus problématiques du moteur ont été supprimés ou limités. Il reste de quoi offrir un adversaire honorable à la grande majorité des joueurs.
Téléchargement
Vous trouverez sur la page de téléchargement de Harm Geert Muller l'ensemble de ses nombreux moteurs et utilitaires. Repérez micro-
"Micromax48_c2d" (pour Intel Core 2)
"Micromax48_PI", "PII", "PIII" et "PIV" (pour pentium 1 à 4(2))
"umax4_8w.exe"
Les cinq premiers ont été obtenus par Denis Mendoza en utilisant un compilateur développé spécifiquement par Intel pour ses processeurs. La dernière, "umax4_8w.exe", est la compilation standard de Muller. Elle fonctionnera toujours mais elle est assez lente. Si vous avez un processeur Intel, essayez prioritairement la version "PIV". Sur mon ordinateur, celle-
J'ignore si les exécutables pour processeur Intel risquent de planter avec un processeur AMD ou autre ; je pense plus probable que les gains de vitesse soient simplement effacés. Le mieux est de lancer la version "Pentium IV" et de voir si elle fonctionne. Si ce n'est pas le cas, rabattez-
Si vous souhaitez des certitudes, vous pourrez simplement tester les versions les unes après les autres. Il suffit de faire un double-
post
level 40 400 0
time 500000
go
Déclenchez un chronomètre et mesurez en combien de temps la version affiche son premier coup (b1c3).
En combien de temps le moteur conclut-
Installation et configuration
Rien de particulier à signaler. Moteur Winboard, MicroMax ne fonctionne pas avec les interfaces Lucas Chess et Mayura Chess Board, qui n'acceptent que les moteurs UCI.
Installation dans Arena
Pour employer MicroMax dans Arena : menu "Modules" > "Installer nouveau module" et allez chercher le bon fichier exécutable. Normalement, Arena détecte qu'il s'agit d'un moteur Winboard et ne vous demande rien à ce sujet. Dans le cas contraire, indiquer qu'il s'agit d'un moteur Winboard (et non d'un UCI).
Installation dans PyChess
Avec PyChess : menu "Éditer" > "Moteurs" puis bouton "Nouveau"... Utilisez le navigateur pour localiser le bon fichier exécutable et "Ouvrir".
Installation dans Crafty Chess Interface
Pour Crafty Chess Interface : menu "Moteurs" > "Ajouter nouveau moteur" et allez chercher le bon fichier exécutable.
Il n'y a aucune possibilité de configuration du moteur. Prévoir de configurer certains paramètres aurait d'ailleurs alourdi le code sans apporter grand chose. MicroMax utilise une table de hachage de taille fixe qui, autant que j'ai pu en juger, consomme jusqu'à une centaine de Mo en fonctionnement -
Bibliothèque d'ouvertures
Évidemment pas de prise en compte d'une bibliothèque d'ouvertures interne. Avec Arena nous pourrons facilement guider le moteur vers une bibliothèque au format Abk. Au besoin je peux vous en proposer une, obtenue à partir de la base de jeux d'Olivier Deville fournie avec Arena. C'est une petite bibliothèque généraliste, d'une profondeur de 12 ½ coups.
Copier de préférence la bibliothèque dans le dossier "Books" d'Arena. Puis menu "Modules" > "Gérer", choisir MicroMax dans la liste des moteurs, onglet "Détails", onglet "Bibliothèque" ; cocher "Utiliser bibliothèque principale d'Arena" ou faire un autre choix de bibliothèque avec le sélecteur de fichiers (ne pas oublier dans ce cas de décocher la bibliothèque principale).
Pour ceux qui utiliseraient PyChess, rappelons nous que l'interface peut forcer n'importe quel moteur à employer une bibliothèque au format Polyglot (*.bin). Je peux vous proposer par exemple la même bibliothèque O-
Pour employer cette bibliothèque avec PyChess : menu "Editer" > "Préférences", s'assurer que "Utiliser la bibliothèque des ouvertures" est coché et utiliser le sélecteur de fichier pour aller chercher "O-
Attention : PyChess ne peut pas lier un moteur particulier et une bibliothèque. Celle qui vient d'être sélectionnée pour MicroMax devient de facto la bibliothèque d'ouvertures principale de l'interface. Ne pas l'oublier !
Gérer la force
Avec un niveau de jeu de l'ordre de 1800 Elo en partie 40/15, limiter MicroMax ne sera pas une question essentielle. Rappelons donc rapidement le plus important :
➤Avec Arena, nous pouvons désactiver la pendule (menu "Options" > "Pendule arrêtée" (l'icône en forme d'horloge doit être entourée d'un filet bleu). Dans ce cas, seul le moteur subit la pression du temps) et choisir un contrôle de temps rapide pour le moteur (menu "Niveau" > "Régler" (ou Ctrl+L), choisir "Blitz" ou "Tournoi")
➤Avec PyChess, choisir MicroMax comme moteur et démarrer une partie : menu "Partie" > "Nouvelle partie" > "Depuis la position classique de départ" (ou Ctrl+N). Un menu s'ouvre et à partir de là nous devons fixer les conditions de la partie. Avec PyChess nous n'avons pas trop de choix : il faut choisir un contrôle de temps (au besoin en modifiant le choix par défaut) et réduire la force du moteur en jouant sur la réglette de force, qui se trouve sous les joueurs. Par défaut elle est à 20 et la force du moteur sera maximale. A 1 le moteur sera très faible.
➤Avec Crafty Chess Interface, tout se passe dans la fenêtre "Control panel". Nous pouvons ne pas imposer au joueur humain la pression du temps. Il suffit de régler le contrôle de temps souhaité pour le moteur, de valider (bouton "Set") puis de cliquer sur le bouton "Go" sans avoir coché la case "On".
+Accepter de subir la pression du temps mais en se donnant une marge supplémentaire : cocher "On", double-
L'IA d'échecs préférée des microcontrôleurs
La combinaison d'un très faible encombrement, d'une grande légèreté logiciel et d'un niveau de jeu restant substantiel a permis à MicroMax de s'imposer comme le "cerveau d'échecs" de nombre de petits systèmes informatiques tel l'Atmel ATmega88, l'Elektor ATM18 Minichess ou encore l'Arduino Due Chess Robot.
L'Elektor Chess Computer
(1) 1257 caractères, exactement
(2) Il faut se rappeler que MicroMax est un vieux moteur, les premières versions apparaissant au début des années 2000.
Rob Rob, juillet 2024