MiniChess - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Moteurs

MiniChessAI
Petit moteur pour petits joueurs



MiniChessAI est un petit moteur pas très fort mais équilibré et au jeu de qualité dont on n'aura pas à rogner les ailes avant de l'offrir comme adversaire à des joueurs modestes.






Comme je ne manque jamais une occasion de le répéter, si l'on est un joueur de 1500 Elo ou moins, il est beaucoup plus rationnel de jouer contre un moteur de force limitée mais sérieux plutôt que de ramener à 1500 Elo un moteur surpuissant comme Stockfish. Les programmeurs de ces moteurs ne se demandent jamais comment les faire jouer faiblement de manière crédible.

MiniChessAI est justement l'un de ces vieux petits moteurs dont les joueurs modestes et les amateurs ont toujours besoin. Développé il y a bien des années par le polonais Marcin Gardyjan, il n'est pas très puissant : sa force est estimée à 1600 Elo ou un peu plus. Mais il a beaucoup de qualités. Grâce à un algorithme de recherche silencieuse, il explore l'arborescence des coups, parallèlement à son algorithme standard, au delà de sa profondeur d'analyse habituelle.  Cette heuristique, qui était rare sur des productions de programmeurs amateurs il y a 20 ans et plus, limite le très négatif effet horizon, qui conduisait les moteurs à des bévues que ne feraient pas des joueurs de club débutants. Elle contribue à l'homogénéité du jeu de MiniChessAI
Autres perfectionnements intéressants et plutôt rares pour un moteur de cette génération : la bibliothèque d'ouvertures s'améliore dans le temps par auto-apprentissage ; et  le moteur peut changer de style. Quatre tempéraments différents sont possibles : défensif ("Calm"), offensif ("Agressive"), équilibré entre ces deux tendances ("Normal") ou variable en fonction de la situation dans la partie ("Mixed").


Téléchargement

MiniChessAI a disparu du Web. Je le propose donc sur mon espace Mega.

Télécharger MiniChessAI ?

L'archive du moteur contient les fichiers suivants :
"minichessai.exe" : l'exécutable du moteur
"minichessai.ini" : un fichier de configuration éditable
"minichessai.txt" : petite documentation bien utile pour comprendre le paramétrage du moteur
"minichessai.log" et "minichessai.log2" : fichiers de données
"miniailastgame.pgn" : sauvegarde des dernières parties
"minichessaimaster.book" : bibliothèque d'ouvertures

MiniChess est un moteur Winboard. J'ai proposé un temps ici une version que j'avais adapté à l'UCI avec Wb2Uci mais je l'ai supprimée en constatant qu'elle ne fonctionnait pas exactement de la manière prévue.


Installation



Installation dans Arena

Pour Arena, menu "Modules" > "Installer nouveau module" et allez chercher le fichier "minichessai.exe".

Installation dans Crafty Chess Interface

Pour Crafty Chess Interface, menu "Moteurs" > "Ajouter nouveau moteur" et allez chercher "minichessai.exe".

Installation dans PyChess

Pour PyChess, menu "Éditer" > "Moteurs" puis bouton "Nouveau"... Utilisez le navigateur pour localiser le fichier "minichessai.exe" et injectez-le dans l'interface avec "Ouvrir".

Moteur Winboard, MiNiChessAI ne fonctionne ni avec Lucas Chess ni avec Mayura Chess Board.



Configuration

MiniChess s'appuie pour fonctionner sur un fichier "minichessai.ini", bien documenté par l'auteur du programme. Ce fichier est modifiable avec un simple éditeur de textes tels le bloc-notes ou la WordPad. Voici les paramètres les plus importants :

Bibliothèque d'ouvertures interne

"usebook on" (active) ou "usebook off" (désactivée)

La bibliothèque interne est assez petite (71 ko) mais suffisante pour donner le ton de la partie. Elle affiche l'extension  "*.ebook" mais n'est pas pour autant une eBook habituelle car il est impossible de lui substituer une autre bibliothèque à ce format. Si vous comptez utiliser le moteur avec Crafty Chess Interface il devra se contenter de cette bibliothèque. Avec Arena, il suffira de désactiver la bibliothèque interne et d'aller dans le module de gestion des moteurs pour le forcer à utiliser l'une de celles de l'interface.

Algorithme de "recherche silencieuse"

"quiescentsearch on" (actif) ou "quiescentsearch off" (désactivé)

Cet algorithme de "recherche tranquille" ralentit un peu le moteur mais améliore la qualité générale de son jeu. Il ne faut surtout pas le désactiver.

Réglage du "tempérament" du moteur

Pour varier le style de jeu du moteur, il faut jouer sur les quatre paramètres suivants :

"emotionrandom on"

L'un des quatre tempéramments sera choisi aléatoirement au début de chaque nouvelle partie.



...ou "emotionrandom off"

Dans ce cas, vous devrez indiquer au moteur laquelle des quatre personnalités vous souhaitez :

➤"emotion calm" : tempérament posé et défensif
"emotion normal" : tempérament équilibré
➤"emotion aggressive" : tempérament offensif, voire imprudent

"emotion mixed" : le style évoluera en fonction de la situation de Minichess dans la partie : s'il perçoit sa position comme très bonne, il gagnera en confiance et prendra des risques ; s'il perçoit au contraire sa position comme mauvaise, il se calmera et jouera plus prudemment.

Table de hachage

"sethashtable x"

x est la taille de la table de hachage en Mo. Par défaut elle est à 1 Mo, une valeur ridiculement faible, même pour un petit moteur comme MiniChess.

x doit être un chiffre en octets. Donc :
x = 16384 pour 16 Mo
x = 32768 pour 32 Mo
x = 65536 pour 64 Mo
16 Mo devrait suffire, mais à moins de faire tourner MiniChess sur un vieux riblon, vous devriez pouvoir porter la taille de la table à 32 ou même 64 Mo sans problème. Compte tenu de la force du programme, il ne me parait vraiment pas nécessaire de mobiliser davantage de mémoire vive.



Pas de menu de configuration, juste un petit fichier ini...

Paramètres de temps et de profondeur

Il est possible de régler les paramètres de temps dans le fichier "ini" mais cela ne fait pas bon ménage avec les choix faits depuis l'interface utilisée pour faire tourner MiniChess. Mieux vaut s'abstenir.  Par contre les réglages de profondeur sont pris en compte, du moins tant qu'ils n'entrent pas en conflit avec le temps déterminé pour la partie. Si vous mettez dans le fichier ini:

levelmode depth
depth 1

MiniChess jouera en ne recherchant qu'un coup en avant, donc à toute vitesse, même si vous avez sélectionné une partie longue depuis l'interface. Si vous mettez :

levelmode depth
depth 15

le moteur explorera au maximum jusqu'au 15eme coup si le réglage de temps de l'interface ne l'oblige pas à jouer plus vite. Cela étant dit, le réglage de profondeur n'est pas recommandé en général.


Niveau de force

Il est possible de fixer dans le fichier ini des limites de temps, de profondeur ou de nombre de situations explorées, mais avec une interface performante comme Arena, il vaut mieux se contenter des 15 réglages standards du menu "Niveaux". Eviter d'utiliser le sous-menu "Régler" d'Arena, permettant des réglages plus personnalisés, car nombre d'entre-eux disfonctionnent avec Minichess. C'est le cas du réglage "Temps/par coup", par exemple. Par ailleurs,  Minichess étant un moteur assez faible, l'intérêt est de l'affronter au maximum de ses possibilités. Si vous le voulez moins fort, le plus simple est de l'affronter en désactivant la pendule pour vous et en sélectionnant une partie rapide, par exemple "Partie de tournoi en 5 minutes".

Voici pour finir le contenu du fichier "minichessai.ini" que vous trouverez avec l'archive :

quiescentsearch on
usebook on
emotionrandom on
sethashtable 65536


La recherche silencieuse est activée, la bibliothèque interne aussi, le style de jeu est choisie aléatoirement à chaque nouvelle partie et la table de hachage est portée à 64 Mo.

C'est un simple texte, qui peut être modifié facilement en utilisant le bloc-notes ou le Wordpad de Windows. Si vous souhaitez en savoir plus sur ce qu'il est possible de modifier dans ce fichier, vous trouverez un fichier d'aide (en anglais) dans le répertoire du moteur.


Simple Chess et Arena "Petits Moteurs"

Si l'intégration du moteur dans une interface comme Arena vous semble rebutante ou trop complexe, vous pourriez lancer le programme Simple Chess. C'est une petite interface  que Marcin Gardyjan a développé parallèlement au moteur pour accompagner Minichess. Elle est assez mignone et très facile à utiliser (Voir la page "Simple Chess").

Une autre possibilité serait de télécharger la copie portable d'Arena dans laquelle j'ai pré-installé 17 moteurs faibles (750 à 1600 Elo) dont 4 versions de MiniChessAI, chacune avec l'un des tempéraments possibles (voir la page "Arena petits moteurs").

Rob Rob, avril 2019 (révision approfondie en juin 2024)


 
 
 
 
 
 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();