Menu principal :
ZChess 2.00 London
Le moteur sacrificiel
Mis en circulation en 2000, ZChess version "Londres" est un peu à part dans la lignée de moteurs de Franck Zibi -
Au milieu des années 90, le français Franck Zibi a développé en assembleur HP Chess, un mini-
ZChess a évolué jusqu'à la version 2.22 d'octobre 2000 qui atteignait 2450 Elo ; puis le moteur a changé de nom pour devenir Pharaon, lequel a continué à évoluer jusqu'en 2006, approchant les 2700 Elo*. ZChess et Pharaon sont de bons moteurs mais qui ne se distinguent pas particulièrement d'une masse imposante d'autres bons moteurs… sauf ZChess 2.0 London !
* Pharaon est l'un des moteurs de l'interface Eschecs. J'en dit quelques mots dans l'article concernant cette mini-
Style : attaquant à la Mikhaïl Tal
C'est son style de jeu très agressif et spéculatif qui m'a poussé à ajouter ZChess version "London" dans ma sélection de moteurs d'échecs. Ses parties sont souvent étincelantes d'originalité et émaillé de sacrifices que ne renierait pas le "magicien de Riga". L'analogie entre ZChess et Tal s'impose, y compris lorsque le moteur est poussé vers la défaite par ses coups un peu trop aventureux. Il est fort -
* Il s'agit de la valeur fourni par l'auteur. J'ai fait jouer Zchess 2.0 un tournoi 40/10 avec quelques autres moteurs et Bayeselo a estimé son niveau aux environs de 2360 Elo.
Téléchargement et installation
ZChess a quasiment disparu du Web. Je propose donc le moteur sur mon espace Mega.
Télécharger ZChess London ?
L'archive contient six fichiers dont un exécutable ("ZChess.exe") un fichier batch ("ZCH.BAT"), une bibliothèque d'ouvertures ("z_book.bin"), un fichier texte contenant une liste imposante de coups recommandés ou à éviter ("z_style.txt") et un fichier d'initialisation ("ZCHESS.INI").
ZChess est un moteur Winboard qui semble perturber les modules d'installation des interfaces. Il fonctionne avec Arena mais celle-
Pour Arena, menu "Modules" > "Installer nouveau module" et allez chercher le fichier "ZChess.exe". Comme l'interface croit reconnaitre un moteur UCI, il faut la détromper : menu "Modules" > "Gérer", onglet "Détails", choisir "ZChess" et dans le champ "Type", remplacer "UCI" par "Winboard" (le moteur ne fonctionnera pas si ce n'est pas fait).
Lorsque le moteur fonctionne, il génère deux fichiers binaires supplémentaires : "z_learn.bin", qui contient des données d'apprentissage, et "z_style.bin", qui, je crois comprendre, compile les données du fichier "z_style.txt" (auquel vous pouvez ajouter ou même retrancher des entrées -
Le dossier du moteur contient un fichier d'initialisation, "ZCHESS.INI", qui permet de régler un certain nombre de choses. Ouvrez-
[HashTables]
SIZE_HT=16
Il s'agit de la taille de la table de hachage. Valeurs possibles : 8, 16, 32, 64, 128, 256. Porter de préférence à 64 voire 128 Mo si vous comptez utiliser le moteur à un bon niveau de force et / ou en parties longues.
EFFACER_HT=TRUE
Remise à zéro de la table au démarrage. Ne pas modifier.
[HashPawns]
SIZE_HP=4
Taille de la table de hachage de pions en Mo. Valeurs possibles : 1, 2, 4, 8, 16, 32, 64. Porter éventuellement à 8 Mo.
[Display]
noise=5
La réflexion du moteur ne commence à s'afficher qu'au 5eme coup de profondeur d'évaluation. Ne pas modifier.
K_BEST_MODE=1
Il s'agit ici ni plus ni moins du système MultiPv. Par défaut il est désactivé, ce qui est le mieux lorsque le moteur est utilisé comme adversaire. Si supérieur à 1, l'interface affichera la variation principale puis PV2, PV3...
[Search]
min_sd=2
Quel que soit le temps dont dispose le moteur, sa recherche ira au moins jusqu'à la profondeur de 2 coups. Ne pas modifier.
max_sd=35
Quel que soit le temps dont dispose le moteur, sa recherche s'arrêtera à la profondeur de 35 coups. Ne pas modifier.
selectivite=25
Nombre maximal de plies qui doivent être ajoutées à la profondeur d'exploration. Ne pas modifier.
USE_COMBINATION_EXTENSIONS=TRUE (sans intérêt pour nous)
USE_PVS_SEARCH=TRUE (ne pas modifier)
USE_FAILSOFT=FALSE (ne pas modifier)
USE_NULL_MOVE=TRUE
USE_MOINS1=TRUE
USE_FUTILITY_SUPERIEUR=FALSE
USE_BIG_FUTILITY_SUPERIEUR=FALSE
Les quatre paramètres précédents concernent les diverses routines d'élagage de l'arbre de recherche. Null Move et Moins1 sont activés par défaut. Si on les désactive, le moteur produira un jeu de meilleure qualité (un peu) mais sera sensiblement plus lent et perdra en force (beaucoup). Les deux routines d'élagage de futilité sont par contre désactivées par défaut, mais on pourrait faire la même remarque : si on les active, le jeu perdra en qualité mais gagnera en force. Mon conseil : ne rien changer.
[TableBase]
ZChess est capable d'exploiter les tables de finale Nalimov. Vous devrez indiquer le chemin vers vos tables, si vous les avez.
USE_TB=TRUE
Recherche des tables de finales activée. Si vous ne les avez pas ou ne comptez pas les utiliser, remplacer TRUE par FALSE
TBPATH=./TB;C:\Echecs\Arena\TB\Nalimov;
Chemin vers les tables Nalimov. Remplacez la partie en rouge par votre propre chemin. Vérifiez que les tables sont bien prises en compte en lançant l'exécutable du moteur. Si tout va bien vous devez avoir le message "Found TableBase Files, up to 3 (4 ou 5) men".
[MISC]
ENABLE_PONDERING=TRUE
La pondération est activée par défaut. Je conseille généralement de la désactiver (FALSE)
ENABLE_BOOK=TRUE
La bibliothèque d'ouvertures interne est activée. Ne la désactivez que si vous comptez utiliser plutôt une bibliothèque Abk d'Arena.
ENABLE_LOG=TRUE
Le fichier journal est créé par défaut. Inutile pour la plupart des utilisateurs, donc à mettre de préférence sur FALSE.
ENABLE_LEARN_BIN=TRUE
Le fichier d'apprentissage sera créé et alimenté. Il permettra au moteur de ne pas rejouer une position qui l'a fait perdre dans une partie antérieure.
[Evaluation]
DRAW_SCORE=0
Réglage du "Contempt factor" en centième de la valeur d'un pion. Ici, augmenter la valeur pousse le moteur à accepter plus facilement d'aller vers une partie nulle.
OPPONENT_TYPE=0
Il y a trois types d'opposant pour le moteur : 0 = indéterminé, 1 = humain, 2 = moteur d'échecs ou ordinateur. Si vous utilisez ZChess comme adversaire, le mieux sera de régler ce paramètre sur "1".
ENABLE_RESIGN=TRUE
Si TRUE, le moteur est autorisé à abandonner dans une situation qu'il estime désespérée (il ne le fera pas par contre si l'adversaire n'a plus que très peu de temps disponible).
ENABLE_DRAW_OFFER_WHEN_GAFFE=FALSE
Ce paramètre permet d'autoriser (TRUE) ou interdire (FALSE) au moteur de proposer à l'adversaire humain d'abandonner s'il a commis une gaffe dans une situation nettement meilleure.
[Debuggage]
Ces paramètres ne concernent généralement pas les simples utilisateurs. Ils ne sont pas commentés.
DEBUT_DEBUG_INFO=1
FIN_DEBUG_INFO=1
DEBUG_TEST=1
ECART_DEBUG_INFO=1
START_DEBUG_INTERACTIF=1
DEBUG_LINE=
DEBUG_EPD=
USE_INTERNAL_ITERATIVE_DEEPENING=FALSE
USE_FENETRE_ASPIRANTE=FALSE
Gérer la force du moteur
Avec un niveau de force de 2360 Elo, la question de l'affaiblissement de ZChess se posera pour beaucoup d'utilisateurs. Pour Arena, plusieurs méthodes sont disponibles. Nous pouvons d'abord désactiver la pendule pour nous : 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). Assurez-
Une autre possibilité serait de ralentir le moteur : menu "Modules" > "Gérer", onglet "Détails", sélectionnez ZChess dans la liste des moteurs, onglet "Spécial" et changez la valeur de "Force (%)".
Par défaut la valeur est à 100, soit la force maximale du moteur. Le problème est de savoir à quelle force correspondent les diverses valeurs possibles. Mais comme Zchess m'a servi de banc-
La courbe de progression de la valeur de Force (%) est une croissance de type logarithmique : En partant de 1 la progression est très rapide d'abord (raison pour laquelle il y a 8 niveaux dans les premiers 10%) puis elle s'infléchit progressivement pour finir presque à plat avec les valeurs supérieures à 80%*.
Vous noterez qu'à 1%, Zchess affiche une force qui reste supérieure à 2000 Elo. Si c'est encore trop fort, imposez au moteur un contrôle de temps rapide et désactivez la pendule.
* Le tournoi avec lequel j'ai établi cette courbe était de 1054 parties de 40 coups par tranche de 5 minutes, donc un contrôle de temps assez rapide. Je suppose que le même tournoi en contrôle de temps 40/10 pourrait donner un résultat un peu différent mais c'était vraiment beaucoup trop coûteux en temps !
Rob Rob, octobre 2024