Echecs : Les tables de finales - Comme Robinson dans la crise spécial jeux gratuits

Rechercher
Aller au contenu

Menu principal :

Jeux de réflexion > Grands classiques

Echecs : les tables de finales



Voici un point assez délicat - et souvent négligé par les joueurs d'échecs pourtant habitués aux joutes contre des adversaires informatiques : les programmes d'échecs ont une certaine difficulté à faire face aux fins de parties. Le phénomène est bien connu : les moteurs s'affaiblissent en finale à cause de l'effet "horizon". Pour simplifier, en caricaturant, les moteurs ne voient pas au delà de leur profondeur d'analyse maximale et peuvent ignorer un petit pion ordinaire qui va passer et se transformer en une redoutable dame.
Enfin, ça c'était surtout le cas il y a 20 ans. Le problème est beaucoup moins sérieux aujourd'hui mais cette perte d'efficacité en finale existe toujours. Beaucoup de moteurs recourent à des algorithmes spécifiques, qui explorent certaines branches de l'arbre à grande profondeur, en tache de fond, afin de limiter l'effet horizon.  Ce choix à une conséquence : il consomme de 15 à 25% du temps de réflexion - et donc le ralenti sensiblement le moteur. C'est pourquoi beaucoup préfèrent se reposer sur des tables de finales.  

Le principe de ces tables est de rassembler l'ensemble des configurations possibles lorsqu'il ne reste plus que 3 à 6 pièces sur l'échiquier.  Elles sont un élément concourant à l'homogénéité et à l'équilibre des moteurs de jeu, surtout ceux de force moyenne. La problématique sera moins cruciale pour les très forts moteurs (plus de 2700 Elo) qui sont beaucoup moins sensibles à l'effet horizon et ne risque pas de laisser passer un pion oublié dans un coin de l'échiquier. Il n'en reste pas moins que sans ces bases, même les meilleurs moteurs verront leurs performances baisser en fin de partie.

Elles existent depuis longtemps et pourtant elles ne sont pas très populaires. Elle présentent trois inconvénients qui ont freiné leur diffusion : la taille des fichiers (7 Go pour les tables de à 5 pièces Nalimov compressée), l'obligation  pour le moteur de décompresser les fichiers à la volée et d'accéder sans cesse au disque dur pour lire les données. J'ose dire que ces inconvénient n'existent plus aujourd'hui, l'ensemble des conditions matérielles ayant fortement évolué dans tous les domaines. Je les utilise et je n'ai jamais remarqué le moindre allongement du temps de réflexion du moteur, bien au contraire : dès que la sixième pièce est mangée, les coups se suivent à un rythme nettement plus rapide.


Arena en première ligne

En matière d'interface de jeu, j'ai fait le choix de ne conserver que deux interfaces : Lucas Chess et Arena (Crafty Chess Interface est conçu pour un usage plus restreint).
Lucas Chess, très moderne, très ludique, exceptionnel outil d'études doté d'une module d'analyse de parties extra… a carrément fait l'impasse sur les bases de finales ! La dernière version contient 50 moteurs et n'offre en guise de database de fin de parties que les fichiers à 3 pièces au format Syzygy, le plus moderne mais le moins courant et dont ne se servent que les versions récentes de quelques moteurs ultra-puissants. Depuis l'interface rien n'est prévu pour paramétrer les moteurs afin de leur permettre d'utiliser des tables Nalimov, beaucoup plus courantes.
Arena, plus ancien, plus austère que Lucas Chess, reste incontournable car il offre des possibilités ignorée de Lucas Chess ou d'autres interfaces. Par exemple il permet de faire tourner les vieux moteurs Winboard.  Et en matière de gestion des bases de fin de parties, tout a bien été prévu. cette interface sera donc naturellement le support de notre expérimentation de ces fameuses endgame database.


Les différents formats de bases de données de finales

Comme toujours, pour compliquer les choses, il y a 5 ou 6 formats de database de fin de parties et les moteurs utilisent les unes et pas les autres. Trois sont tout de même plus courantes : les bases Nalimov, les bases Gaviota - et les bases Syzygy.

Le format Nalimov est assez ancien et à l'inconvénient de générer de gros fichiers, difficiles à stocker et manipuler. Mais 80% des moteurs l'utilisent encore, à commencer par tous les moteurs Winboard (du moins ceux qui sont capables d'exploiter de telles bases). Parmi les moteurs UCI, nombreux sont ceux qui utilisent encore les bases Nalimov ; y compris de très forts moteurs comme Fritz, Junior, Hiarcs, Nimzo, Chess tiger, ProDéo, Shredder, Patzer, Crafty…

Le format Gaviota peut-être considéré comme une évolution du format Nalimov, dont il est très proche. Il se différencie essentiellement par un encombrement inférieur de 10%. Son handicap est qu'il est moins standard que le Nalimov. Beaucoup de moteurs UCI seront capables d'exploiter une base Gaviota au lieu d'une Nalimov mais généralement pas les moteurs Winboard.

Le format Syzygy est beaucoup plus récent. Il n'est pas considéré comme vraiment meilleur, en terme d'efficacité (les avis sont partagés, preuve que la distance est faible), mais il a l'énorme avantage sur Nalimov de prendre 7 fois moins de place. Ce qui laisse envisager la possibilité d'utiliser une base à 7 pièces, laquelle ne prendra "que" 150 Go au format Syzygy contre plus de 1000 Go pour les vieux formats.
Syzygy reste marginal quantitativement mais quelques uns des plus importants moteurs d'aujourd'hui s'y sont convertis : Deep Fritz depuis la version 14, et le tiercé gagnant des moteurs du jour : Stockfish depuis la version 7. Komodo à compter la v8 et Houdini à partir de la v4.


Avec Arena

Arena propose en standard dans son dossier "TB" les finales à trois pièces des databases Gaviota. Il est judicieux d'y ajouter au moins les fichiers à 4 pièces. Et à 5 pièces si c'est possible. Le problème est qu'elles ne sont pas facile à trouver.
La croissance du volume des données de ces tables est géométrique. Les tables à 5 pièces Gaviota ou Nalimov pèsent déjà plus de 7 Go compressées ! Quant aux fichier à 6 pièces, c'est 1000 Go. Donc n'en parlons même pas !
Si vous avez de la place sur votre disque et un peu de temps à perdre, vous pouvez compléter la TB Gaviota d'Arena. Vous trouverez ici les fichiers à 4 et 5 pièces.
https://chess.cygnitec.com/tablebases/gaviota/
Arena a déjà dans le répertoire "TB", "Gtb.cp4" les dossiers tout prêts à accueillir les fichiers Gaviota : "gtb4" et "gtb5".
Le fichier à 4 pièces est une unique archive appelée "4.7z". Téléchargez-là, ouvrez l'archive, elle contient un dossier "4". Videz-le dans le répertoire "gtb4" d'Arena.
La base à 5 pièces, beaucoup plus grosse, est scindée en 53 parties au format de 7zip. Ca va prendre du temps !
La décompression est aussi plus compliquée. Il faut coller tous les morceaux dans un dossier, y compris le fichier "md5sum" (qui sert à vérifier que des fichiers ne sont pas altérés). Ensuite venir sur le "5.7z.001" et le décompresser avec 7-zip. Il va alors vous décompresser automatiquement tous les fichiers. Si vous n'avez pas cet archiveur, vous devrez le télécharger et l'installer. Vous le trouverez ici : https://7zip.fr/ Par chance c'est un gratuit.
Ensuite copiez tous les fichiers décompressés dans le dossier "gtb5" d'Arena.

Notez qu'on trouve également les fichiers à 4 pièces à cette adresse : https://github.com/michiguel/Gaviota-Tablebases/tree/master/gtb

En cas de problème d'indisponibilité ou de disparition, voici une source alternative
de téléchargement pour les fichiers à 4 et 5 pièces :
https://tablebase.lichess.ovh/tables/standard/Gaviota/


Finales Nalimov

Les moteurs UCI utiliseront en principe les finales Gaviota comme si c'était des Nalimov. Il n'en est pas de même des moteurs Winboard, protocole plus ancien. Il y a donc un intérêt à installer aussi les TB Nalimov dans Arena.
Vous trouverez les bases à 3 et 4 pièces Nalimov ici :
http://horizonchess.com/FAQ/Winboard/egtb.html#%5BA.7%5D
Cherchez sur la page "Alternatively, Frank Quisinsky offers all the 3 and 4 men tablebase for download in one 30 meg file." Presque tous les autres liens sont morts.
Si vous voulez les 5 pièces, vous les trouverez ici :
http://tablebase.sesse.net/3-4-5/
C'est galère ! 7 Go de données répartis en près de 300 fichiers, à télécharger un par un ! On en bave, quand même !
Une fois que vous les aurez, créez un répertoire "Nalimov" dans le dossier "TB" d'Arena et copiez-y vos fichiers.


Comment les moteurs utilisent-ils les databases de finales ?

Par défaut, Arena conduit les moteurs UCI vers le dossier "TB". Si vous voulez le vérifier :
menu "Modules", "Gérer", onglet "Détails", puis onglet  "UCI". Assurez-vous que "Chemin des tablebases communes 'Nalimov)" est coché et que le chemin vers le dossier "TB" est bon.
Si vous avez plusieurs coeurs, cochez aussi "Configuration du nombre max. de coeur CPU en commun" et indiquez "2" (même si plus de coeurs).
Remarque : si vous avez installé les tables Gaviota et les tables Nalimov, vous n'avez pas à choisir entre les deux. L'adresse du répertoire "TB" suffit.  



Pour les moteurs Winboard, le principe est le même. Ouvrez l'onglet "Winboard" : il y a trois chemins par défaut : vers Gaviota, vers Scorpio et vers Nalinov. Là, par contre, vous devez être très précis dans l'adressage.



L'ensemble de ces paramètres sont communs à tous les moteurs d'Arena. Autrement dit, si vous avez copié vos fichiers dans les bons répertoires et si tout est bien coché et renseigné, vous n'avez pas à y revenir chaque fois que vous installez un nouveau moteur. Vous n'avez plus à vous préoccuper de rien. Il ira de lui-même chercher ce dont ils ont besoin.

Cependant  ils ne sont valables que pour ceux qui utilisent les tables Nalimov ou Gaviota.


Ce n'est pas encore tout à fait fini. Vous devez aussi indiquer à Arena qu'il doit conduire les moteurs vers les tables de finale : menu "Options", "Configuration tablebases". Cochez la case  "Utilise tablebases des finales" et assurez-vous que le nombre de pièces que vous avez installé son bien reconnues par Arena, comme sur l'illustration ci-dessous.




Les databases Syzygy

Plus récemment un nouveau format de tablebases est apparu, le format Syzygy. Principal avantage: elles occupe 7 fois moins d'espace, soit environ 1 Go pour les fichiers de 3 à 5 pièces. Elles sont particulièrement recommandées pour le moteur Houdini, dont la version 4 a été spécialement optimisée pour cela. Autres moteurs célèbres les utilisant : Rybka, Fritz, Junior.
Les bases Syzygy se composent de deux ensembles de fichiers, les fichiers WDL stockant les informations de gain et pertes en fonction des positions, afin de déterminer lesquelles sont gagnantes.  Et les fichiers DTZ avec des informations de distance à zéro indiquant au moteur comment terminer la phase finale.   

Les fichiers Syzygy sont sous licence libre, donc librement téléchargeables. Le problème est toujours le même : il s'agit de fichiers imposants et nombreux qu'il faut télécharger un à un. L'ensemble des fichiers à 3, 4 et 5 pièces sont disponibles sur cette page :
https://tablebase.lichess.ovh/tables/standard/3-4-5/
Taille totale : un peu moins d'un Go (les deux catégories de fichiers sont mélangées).
On trouve aussi les fichiers à 6 pièces. Télécharger les fichier dtz ici :
https://tablebase.lichess.ovh/tables/standard/6-dtz/
Et les WDL ici :
https://tablebase.lichess.ovh/tables/standard/6-wdl/
Total : environ 150 Go !
Alternative de téléchargement pour les 3,4 et 5 pièces :
http://tablebase.sesse.net/syzygy/3-4-5/
Alternative pour les six pièces :
http://tablebase.sesse.net/syzygy/6-DTZ/
http://tablebase.sesse.net/syzygy/6-WDL/

On trouve même ici les fichiers à 7 pièces :
http://tablebase.sesse.net/syzygy/7-DTZ/
http://tablebase.sesse.net/syzygy/7-WDL/
Mais alors là bon courage ! Des centaines de fichiers et plus de 16 térabits de données, vous n'avez pas encore fini !

Comment forcer les moteurs à utiliser Syzygy ?

Arena ne propose dans son gestionnaire de module qu'un réglage général pour tous les moteurs utilisant les tables Gaviota ou Nalimov.  Pour ceux utilisent  les tables Syzygy, rien n'est prévu en interne pour Arena. Mais ces moteurs ont toujours un module ou à défaut un fichier de configuration à modifier pour indiquer au moteur le chemin vers les tables. La méthode, par exemple pour une version récente de Stockfish :
1/ D'abord faire de Stockfish le moteur 1 d'Arena (Menu "Modules", "Gérer" et choisissez Stockfish).
2/ Ensuite menu "Modules", "module1" et "configurer". Dans le champ "Syzygy path", allez chercher le chemin de la base Syzygy.


Visionner le travail des tables de finales

Arena vous permet de visionner son interprétation des données des tables de finales. Sous les boutons de déplacement vous avez quatre discrets petits onglets qui ont pour nom "Liste de coups", "Biblio./Tb", "Mix 1" et "Temp". Si vous sélectionnez "Biblio./Tb" puis "Mix 1" l'espace se partagera entre la liste des coups et les données des tables, comme sur l'exemple ci-dessous.



Ici AnMon joue contre lui-même une partie où il ne reste que cinq pièces sur l'échiquier. Dans cette position, les tables de finales indiquent que si au prochain coup la tour noire prend la tour blanche c6, les noirs peuvent encore faire partie nulle. Tous les autres coups prédisent la défaite des noirs en un nombre de coups variables. Evidemment les noirs ont suivi le conseil. Ce coup était évident mais l'aurait-il été beaucoup moins que cela n'aurait rien changé.


Et pour Lucas Chess ?


C'est par un paramétrage interne qu'Arena conduit  les moteurs vers les finales Gaviota, Nalimov ou Syzygy, lorsqu'ils en mesure de les gérer. Lucas Chess ne propose rien de tel. Pire, pour les 51 moteurs "internes", il n'y a aucun accès à un éventuel fichier de configuration. Vous pourriez éventuellement y accéder depuis Arena ou en piochant un fichier de configuration dans le dossier du moteur mais je ne vous le conseille pas. Si Lucas Chess cherche à vous interdire l'accès au fichier de configuration, c'est parce que lui-même intervient massivement sur les moteurs, avec lequel il simule un comportement humain typé, affiche un Elo fixe ou imite le style de jeu d'un grand champion. Mieux vaut lui laisser le champ libre ou vous risquez de perturber son fonctionnement.
C'est différent avec les moteurs "externes", c'est-à-dire tous ceux que vous auriez installé vous-même dans Lucas Chess. Pour eux, l'accès au fichier de configuration est possible depuis le module de gestion des moteurs, lorsqu'il est disponible. Dans ce cas, il est parfois possible de diriger un moteur vers les tables de finales. Pour  les 18 moteurs que j'ai sélectionné pour vous, ce sera le cas pour :

Komodo 9 (utilise les tables Syzygy), Stockfish (utilise les tables Syzygy), Smarthink (utilise les tables Syzygy) et Mustang (utilise les tables Gaviota ou Nalimov).

Remarque : Komodo et Stockfish sont des moteurs internes d'Arena. Si vous voulez accéder à leur module de configuration, il faut les réinstaller comme moteurs externes. Cela étant dit, ce sont des moteurs si forts que même sans recours aux tables de fins de partie, ils resteront plus forts que la plupart des utilisateurs.

Deux moteurs utilisent une mini-table interne : Chesterfield et Chenard. Huit autres n'utilisent pas les tables de finales. Le problème ne se pose pas pour eux. Il s'agit de : Sissa, Greko, Obender, Alarm, Adroitchess, CDrill (déjà installé dans Lucas Chess), MiniChess et Winchess. Je n'ai pas trouvé de solution pour Prodeo, AnMon, Rybka et Rhetoric (ces deux derniers étant déjà des moteurs "internes"), bien qu'ils soient susceptibles d'utiliser les tables Nalimov.

Rob Rob, avril 2019

 




 
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); })();