Rodent IV moteur programmable - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Moteurs

Rodent IV : l'ultime rongeur




De tous les moteurs que j'ai testés et que j'utilise, Rodent (rongeur) reste mon préféré. Très fort, mais équilibré et polyvalent, il est doté d'un système de programmation de personnalités qui autorise la reproduction de pratiquement tous les styles de jeu employés par les joueurs humains. L'intérêt de cette "accordabilité" hors norme est multiple. Rodent me semble en particulier être un précieux auxiliaire pour les formateurs, dans les clubs, comme dans les écoles et collèges, qui trouveront en lui un outil fabuleux pour l'entraînement des élèves.

Il a beaucoup été question ici de Rodent III, à qui j'ai consacré de nombreuses pages et articles. A elles-seules, ces pages attirent une portion importante des consultations du site, preuve de l'intérêt que suscite ce moteur.

Pawel Koziol, a livré il y a maintenant plus de deux ans  la version IV de son "rongeur". Ce sera la dernière, car après plus de 10 ans de développement, l'auteur estime que son œuvre est achevée.

Voyons d'abord ce qui distingue cet ultime Rodent de la version précédente…



Ce qui change sur Rodent IV

Ceux qui connaissent déjà Rodent III ne seront pas dépaysés. La philosophie reste essentiellement la même. J'insisterai surtout sur les principaux changements :


Fin de la compatibilité ascendante

Si la mise à disposition d'une nouvelle version de Rodent est une bonne nouvelle, il y en a une mauvaise : les transformations sont trop importantes pour que les anciens profils développés pour Rodent II ou III soit compatibles avec la v4. Les poids de la plupart des tables ont été modifiés, le système d'accord de personnalité est enrichi d'un nouveau paramètre et l'équilibre de l'ensemble a été revu ; un nouveau système de style, plus sophistiqué et plus performant, a été mis en place.
Heureusement, Pawel Koziol a livré Rodent IV avec 16 profils différents, la plupart adaptés d'anciennes personnalités de Rodent III. Du côté des grands maîtres, il y a un nouveau : Morphy et deux anciens de la série des GM historiques : Tal, l'incontournable, et Nimzowitsch. Tous les autres manquent à l'appel, mais j'ai fini par adapter à Rodent IV toutes les anciennes simulations de GM historiques (Voir: Personnalités pour Rodent IV).



Réglage de force : Slider Elo

La première grande nouveauté de Rodent IV est la mise en place de "UCI_Elo", un système autorisant le réglage du moteur au Elo près depuis l'interface. Fini l'obligation de créer des quantités de profils différents en adaptant la force à coups de "NpsLimit" et de "EvalBlur" !  Créer un mini-Morphy  à 1500 Elo ne prend plus qu'un instant.
Les profils très faibles restent crédibles, car le réglage ELO est une combinaison automatique de "NpsLimit" et de "EvalBlur". En dessous de 1600 Elo, l'évaluation est dégradée aléatoirement par un système de blur (flou) dont l'intensité augmente au fur et à mesure que l'on abaisse le niveau de jeu.



Rodent IV fait tourner le profil Morphy grâce à l'interface Arena. Ici, j'ai sléctionné un mini-Morphy à 1500 Elo.

Le seul inconvénient de d'UCI_Elo réside dans la nécessité d'adapter les bibliothèques d'ouvertures. Par exemple, une bibliothèque principale aussi performante que "Rodent.bin" ne convient pas à un joueur à 1500 Elo ou moins. Il est toutefois possible de bricoler le fichier d'initialisation du moteur afin qu'au démarrage, on puisse lui proposer d'autres bibliothèques (voir plus bas).


Modification des points d'équilibre de nombreuses valeurs

Les paramètres de Rodent III concernant le poids des pièces, les systèmes de bonus-malus pour les paires de pièces et pour les pions doublés, arriérés ou isolés sont conservés mais avec une évolution notable des valeurs d'équilibre. Le poids standard des pièces se voit par exemple légèrement diminué pour les pions alors que celui des pièces mineures et lourdes est augmenté d'un pourcentage variant entre 10 et 22%. D'autres valeurs connaissent de petits changements...


Evolution du système d'accord de personnalité

La base du système d'accord de personnalité est conservée.  Nous avons toujours le couple évaluation de l'attaque (OppAttack / OwnAttack) et évaluation de la mobilité (OppMobility / OwnMobility),  mais si la valeur standard de OppAtt et OwnAtt ne change pas (100), celle de OwnMob et OppMob est divisée par deux, à 50.
L'évaluation de la mobilité est par ailleurs doublée d'une évaluation dite "à plat" (FlatMobility). La mobilité principale donne un score de mobilité qui dépend de la distance des cases accessibles, alors que la mobilité Flat pondère chaque case accessible à une pièce de façon presque égale, fût-elle très éloignée. Cela donne au moteur un choix d'action plus grand.



Les styles : un grand chantier achevé

Afin de limiter le recours à de lourdes heuristiques, tout bon moteur d'échecs effectue d'abord une exploration peu coûteuse en temps machine - dites évaluation paresseuse - qui consiste à obtenir un score rapide pour chaque position en explorant d'abord les tables de poids des pièces puis le contenu d'une table pièces/cases. Il s'agit en gros d'une table de scores liant les diverses pièces à des positions sur les cases de l'échiquier. (voir "Tables pièces/cases" dans le glossaire technique). Elle apporte au moteur une "connaissance" positionnelle très rapide qui soulage l'évaluation. En dessous d'un certain score, la position est en effet considérée comme mauvaise et abandonnée sans autre exploration - et ce avec un risque faible de laisser passer une ligne gagnante. Au dessus de ce score les heuristiques plus lourdes entrent alors en jeu.
Il n'existe pas de table  pièces/cases universelle, valable partout, pour tout. Au contraire, il y a plusieurs tables valables correspondant seulement à des styles de jeu différents. Raison pour laquelle d'ailleurs Pawel Koziol préfère les nommer "tables de style". Rodent étant un moteur conçu pour l'accordabilité, il s'appuie en effet sur plusieurs tables, afin d'accompagner des profils de joueurs différents. Rodent III utilisait déjà un système de gestion de tables pièces/cases assez sophistiqué. Mais sur Rodent IV, ce système connaît de considérables perfectionnements. Ils sont la véritable raison de l'incompatibilité des profils de Rodent III. On distingue trois principaux points d'amélioration :


1/ Le paramètre PstStyle est abandonné et remplacé par quatre nouveaux paramètres:
PrimaryPstStyle et SecondaryPstStyle, permettent de doter chaque personnalité d'un style principal et d'un style secondaire, alors que PrimaryPstWeight et SecondaryPstWeight, règlent le poids relatif des deux styles pour chaque personnalité.  

2/ Il y a maintenant cinq tables de styles au lieu de quatre : Quirky (dynamique, jeu de flanc), Classic (jeu plutôt au centre), Normal (équilibré, moyen), Blunt (centralisation plus faible et primitive) et, le nouveau, Forward (jeu en avant, offensif).

3/ Enfin, au lieu de la relation rigide entre l'évaluation et le score rendu par les tables qui caractérisait Rodent III, Rodent IV instaure une relation dynamique : le score des tables est ajusté en fonction de la situation sur l'échiquier.  Grâce à quoi le moteur parait moins mécanique, plus intelligent, plus humain...


Nouveaux paramètres et paramètres supprimés

La plupart des paramètres de Rodent III sont repris dans la version IV. Quelques-uns ont disparu, car le nouveau système de styles les rend inutiles. Il s'agit de Control Center, PiecePlacement et Forwardness, qui modifiait à la marge les scores des tables "pièces/cases". La seule vraie nouveauté réside dans le critère Space, bonus de milieu de jeu pour les cases au centre contrôlées par le moteur et inaccessibles aux pièces de l'adversaire. En outre, Space donne un bonus supplémentaire pour contrôler les cases situées derrière les pions du moteur. Pawel a ajouté cette heuristique lorsqu'il a voulu simuler la personnalité de Morphy, dont le jeu au centre était très ambitieux. Space sera donc utilisé avec une valeur supérieure à zéro pour tous joueurs accordant une importance marquée à la domination du centre.



Moins fort mais plus fin
 
Comme nous l'avons vu avec d'autres puissants moteurs, rendre le jeu plus subtil et plus humain alourdit l'évaluation et a tendance à faire perdre de la force. C'est le cas pour Rodent IV, qui atteint 3002 Elo sur CCRL dans la catégorie 40/15 alors que la version la plus puissante de Rodent III affiche 3069 Elo dans ce classement. La chute est conséquente : plus de 60 points. Mais Rodent IV ne concourt pas pour une place au Top Chess Engine Championship. Ce n'est franchement pas le plus important, d'autant que même à son niveau de force actuel, il reste bien plus fort que les meilleurs joueurs humains.



Téléchargement, installation

On trouve Rodent IV sur le site officiel de Pawel Koziol.

Télécharger Rodent IV ?

Vous obtiendrez une archive appelée "FinalRodent.7z" contenant tous les fichiers nécessaires au fonctionnement du moteur, les nombreuses bibliothèques d'ouvertures (répertoire "books"), les 16 personnalités pré-programmées (répertoire "personalities"), un éditeur de personnalités en JavaScript (répertoire "tools") et une documentation succincte en anglais (répertoire "docs").

L'installation est standard. La seule difficulté est de déterminer lequel des trois exécutables du moteur ("rodent-iv-plain.exe", "rodent-iv-x32.exe" ou  "rodent-iv-x64.exe") convient le mieux à votre ordinateur.  La version "x64" est adaptée aux systèmes Windows 64 bits modernes. Commencez par essayer avec celui-ci. Si Rodent joue après avoir épuisé les coups des bibliothèques d'ouvertures, c'est que ça marche. Sinon, rabattez-vous sur la version "plain", pour systèmes 64 bits plus anciens. Enfin, la version "x32", est réservée aux très vieilles machines, dont Windows reste configuré sur 32 bits.

A noter : Pawel Koziol propose sur son espace GitHub certaines ressources absentes de la distribution officielle. Comme par exemple deux nouvelles personnalités fictives, ''Dynamic'' et ''Swaper''.


Moteur au standard UCI2, Rodent IV fonctionne en principe avec toutes les interfaces, gratuites ou payantes, acceptant ce protocole de communication. Il semble toutefois que l'interface Fritz ait des difficultés avec ce moteur. En revanche, Rodent IV fonctionne à la perfection dans au moins deux des meilleures interfaces gratuites :  Arena et Lucas Chess.


Configuration

Pour l'essentiel, les paramètres du menu de configuration de Rodent IV sont ceux de Rodent III, classiques et déjà bien commentés. Je n'y reviens pas. La principale nouveauté réside dans l'apparition du choix "Personality",  qui permet de sélectionner une personnalité parmi les 16 que propose Pawel Koziol avec le moteur.  

Ci-contre, menu de configuration de Lucas Chess. C'est d'ici que l'on règle la force du moteur.

Avec Lucas Chess, on accède au menu de configuration depuis le menu "Outils" > "Moteurs" > "Moteurs externes", puis choix du moteur dans la liste des moteurs disponibles et bouton "Modifier". Bien sûr, il faut préalablement que Rodent IV ait été installé dans l'interface.
Par défaut "Slider Elo" est coché et la force du moteur réglée sur 2800 Elo. Si vous souhaitez obtenir la force maximale de Rodent, vous devrez décocher "UCI_LimitStrength".


Si vous utilisez Arena, lancez le moteur préalablement installé : menu "Modules" > "Module 1" > "Démarrage" (ou Shift + F11). Puis menu "Modules" > "Module 1" > "Configurer" (ou Ctrl + 1).
Vous ne trouverez pas dans ce menu la réglette permettant de déterminer le Elo désiré pour le joueur actif. On y accède en ouvrant le menu "Niveaux". Sélectionnez "Limite ELO de la force de jeu" et choisissez votre réglage entre 800 et 2800 Elo - ou bien conservez la force unique maximale du moteur.  


Menu de configuration d'Arena. Le choix de la force se fait depuis le menu "Niveaux".


Le système de création de personnalités




Comme vu plus haut, les principes de la création de personnalités de Rodent sont restés les mêmes. Le plus gros de ce qui a été vu pour Rodent III reste donc valable pour Rodent IV. Le changement du point d'équilibre des valeurs de nombreux paramètres - ou autrement dit les valeurs de la personnalité par défaut du moteur -  ne pose de problème que lorsque l'on souhaite adapter un ancien profil de Rodent III au nouveau moteur.  Pawel Koziol a cependant omis de nous fournir un profil pour ce joueur standard. La raison en est simple : si vous ne choisissez pas une personnalité lorsque vous lancez Rodent IV, le moteur jouera automatiquement avec la personnalité par défaut. Il est cependant très important  de bien la connaître, car elle est au point médian de tous les paramètres et fait du moteur un joueur au style équilibré et neutre. Le style de vos futures personnalités, si vous comptez en créer, se déterminera souvent en partant de ces fameuses valeurs standards. J'ai donc créé le profil correspondant à ce style par défaut du moteur. Le voici ci-dessous :


; PERSONNALITÉ STANDARD POUR RODENT IV
;
; PARAMETRES MATERIELS
;
setoption name PawnValueMg value 90
setoption name KnightValueMg value 380
setoption name BishopValueMg value 390
setoption name RookValueMg value 530
setoption name QueenValueMg value 1160
;
setoption name PawnValueEg value 110
setoption name KnightValueEg value 360
setoption name BishopValueEg value 370
setoption name RookValueEg value 650
setoption name QueenValueEg value 1190
;
; Keep (préférence)
;
setoption name KeepPawn value 0
setoption name KeepKnight value 0
setoption name KeepBishop value 0
setoption name KeepRook value 0
setoption name KeepQueen value 0
;
; Paires
;
setoption name BishopPairMg value 51
setoption name BishopPairEg value 51
setoption name KnightPair value -1
setoption name RookPair value -11
;
; Autres
;
setoption name ExchangeImbalance value 10
setoption name Material value 100
setoption name KnightLikesClosed value 6
setoption name RookLikesOpen value 0
setoption name MinorVsQueen value 10
;
; ACCORD DE PERSONNALITÉ et STYLES
;
setoption name OwnAttack value 100
setoption name OppAttack value 100
setoption name OwnMobility value 50
setoption name OppMobility value 50
setoption name FlatMobility value 50
;
setoption name PrimaryPstStyle value 0 ; style ''quirky''
setoption name SecondaryPstStyle value 1 ; style ''classic''
setoption name PrimaryPstWeight value 58
setoption name SecondaryPstWeight value 40
;
setoption name KingTropism value 20
setoption name PiecePressure value 100
setoption name Lines value 100
setoption name Outposts value 78
setoption name Space value 0
;
; STRUCTURE DE PIONS
;
setoption name PawnStructure value 100
setoption name PassedPawns value 100
setoption name PawnMass value 100
setoption name PawnChains value 100
setoption name PawnShield value 119
setoption name PawnStorm value 99
;
setoption name DoubledPawnMg value -8
setoption name DoubledPawnEg value -21
setoption name IsolatedPawnMg value -7
setoption name IsolatedPawnEg value -7
setoption name IsolatedOnOpenMg value -13
setoption name BackwardPawnMg value -2
setoption name BackwardPawnEg value -1
setoption name BackwardOnOpenMg value -10
;
; PATTERNS
;
setoption name FianchBase value 13
setoption name FianchKing value 20
setoption name ReturningB value 10
;
; AUTRES PARAMÈTRES
;
setoption name Contempt value 0
setoption name SlowMover value 100
setoption name Selectivity value 175
setoption name SearchSkill value 10
setoption name BookFilter value 20
;
; BIBLIOTHÈQUES
;
setoption name GuideBookFile value guide.bin
setoption name MainBookFile value rodent.bin

Télécharger le profil Standard ?


Éditer de nouvelles personnalités

Si vous souhaitez créer de nouvelles personnalités pour le moteur, vous devrez choisir une méthode : soit partir du fichier texte d'une personnalité, soit en utilisant l'éditeur de personnalité en JavaScript fourni par Pawel Koziol.

L'éditeur JavaScript

Dans le dossier "tools" de Rodent IV, vous trouverez un fichier "tuner.html". Lancez-le et il s'ouvrira dans votre navigateur habituel. Il s'agit d'un petit éditeur de personnalités développé en Javascript.



C'est un outil sommaire mais efficace. Il suffit d'écrire les valeurs directement dans les champs et lorsque l'édition est terminée, de sauvegarder à l'aide du bouton "Save personality". Un profil appelé "personality" est alors sauvegardé dans le répertoire "Téléchargement" de Windows.

Vous observerez que l'éditeur permet d'une part de revenir d'un clic sur "Reset to default" à la configuration standard de Rodent, et d'autre part de sélectionner un profil préenregistré à choisir parmi quatre styles de jeu :

➤attaquant (Attacker),
➤défenseur (Defender),  
➤bloqueur (Constrictor)
➤esquiveur (Escapist).

Cependant, les changements ne concernent que les quatre paramètres de base du système d'accord de personnalité, rassemblés dans le groupe "Weights 1".
Ces cinq styles correspondent aux cinq variations possibles des valeurs 100 et 125 pour OppAttack et OwnAttack, 50 et 75 pour OwnMobility et OppMobility. On peut dire que ce sont en effet les styles de base de l'accord de personnalité et il est important de bien les connaître. Pour notamment savoir s'en éloigner en connaissance de cause.
Évidemment, les quatre paramètres OwnMob OppMob, OwnAtt et OppAtt ne suffisent pas à caractériser un style, il en forment seulement la base. De nombreux autres paramètres doivent être mobilisés pour créer une personnalité.


Modifier un profil existant

L'autre méthode est de partir d'une personnalité existante, de préférence le profil standard ci-dessus.  Comme vous le voyez, j'ai classé les paramètres en plusieurs groupes et sous-groupes et ajouté beaucoup de commentaires (textes suivants les ";"), ce qui devrait faciliter vos éventuels projets d'édition.

Une fois une personnalité terminée, qu'elle ait été développée avec l'éditeur ou depuis un ancien profil, vous la sauvegardez dans le dossier "personalities" du moteur en lui donnant un nom quelconque, disons par exemple "tototata". Ensuite vous ouvrez le fichier "basic.ini" (avec un éditeur de texte quelconque) et vous ajoutez à la suite des personnalités précédentes : "Tototata=tototata.txt".
Lorsque vous lancerez le moteur, Rodent IV affichera "Tototata" dans la liste des profils disponibles.


Gestion des bibliothèques

Chaque profil se termine en principe par deux lignes indiquant au moteur quelles bibliothèques il doit aller lire et où elles se trouvent à l'intérieur du répertoire "books". Par exemple :

setoption name GuideBookFile value guide/closed.bin
setoption name MainBookFile value main/rodent.bin


Traduction : Rodent IV doit ouvrir le sous-dossier "guide" pour aller chercher la bibliothèque "closed.bin" puis le sous-dossier "main" pour charger la bibliothèque principale "rodent.bin".

Ce système est simple et pratique mais il est fait pour accompagner un profil à son niveau de force maximum. Il peut ne pas convenir si l'on abaisse beaucoup le niveau du moteur avec Slider Elo. Imaginez par exemple une personnalité réglée sur 1000 Elo mais qui utiliserait quand même "guide.bin" et "rodent.bin". Ces deux bibliothèques rendraient le moteur beaucoup trop fort dans l'ouverture !

Sur Rodent III, chaque personnalité était dotée de son propre niveau de force (en utilisant NpsLimit et EvalBlur) et le moteur était guidé vers une bibliothèque guide et une bibliothèque principale adaptées à ce niveau. Par exemple, les personnalités des groupes "Kids" (moins de 1200 Elo) et "School" (entre 1200 et 1400 Elo) créés par Pawel Koziol pour simuler des joueurs faibles, utilisaient la petite bibliothèque "micro.bin" (75 Ko) à la fois comme bibliothèque guide et comme bibliothèque principale. Pour le groupe "Club" (entre 1400 et 1700 Elo), Pawel a employé "mini-bin", une bibliothèque deux fois plus lourde que la précédente.
Toutes ces bibliothèques sont encore fournies avec Rodent IV. Mais comment les utiliser ?

Il y a une solution relativement simple et assez adéquate si vous utilisez fréquemment les personnalités de Rodent IV a des niveaux de force inférieurs à, disons 2600 Elo. Elle consiste à éditer l'en-tête du fichier "basic.ini" de la façon suivante :  

1/ Supprimez "PERSONALITY_BOOKS", qui ordonne au moteur de lire les bibliothèques prévues par le profil et remplacez-le par "GENERAL_BOOKS".
2/ Supprimez "HIDE_PERSFILE"
3/ Sauvegardez le fichier "basic.ini".
Dans cette nouvelle configuration, le moteur ne lira aucune bibliothèque et l'interface affichera deux nouveaux sélecteurs : "GuideBook File" et "MainBook File". Avec lesquels vous pourrez guider votre personnalité vers les bonnes bibliothèques.



Voir aussi :

Personnalités pour Rodent IV, profils commentés simulants 27 grandes personnalités des échecs.
Les moteurs "Grand maitre", moteurs autonomes se présentant comme des moteurs UCI uniques installables dans n'importe quelle interface et offrant 10 niveaux de jeux, de 1200 à 3000 Elo.



 

Rodent IV,
Moteur d'échecs humain, plastique, programmable...


L'article ci-dessus est une première approche utile de Rodent IV mais ne remplacera pas une étude approfondie. Durant plusieurs mois j'ai décortiqué l'ultime rongeur de Pawel Koziol pour préparer un nouvel article pour ce site. Initialement, je comptais désactiver peu à peu les pages concernant Rodent III, pour les remplacer par le même type de pages, mais pour Rodent IV. Je ne me suis aperçu seulement en avançant de l'ampleur de la tâche. Je voulais être plus juste et plus précis et, en échangeant avec Pawel Koziol, j'ai découvert d'abord que les pages sur Rodent III recélaient des approximations, voire quelques petites erreurs. D'autre part, la documentation accompagnant la dernière distribution de Rodent IV ne fournissait pas une base suffisante pour rédiger un nouvel article aussi précis et juste que je le voulais. Bref, le projet d'article, prenant beaucoup d'ampleur,  est devenu un livre :

"Rodent IV : moteur d'échecs plastique, humain, programmable…"

Il rassemble actuellement 164 pages. J'y aborde Rodent IV sous tous ses aspects.  Notamment le système de création de personnalités y est décortiqué avec soin ; les profils fournis avec le moteur sont commentés en détails et les neufs styles de base sont passés à la loupe. Toute personne désirant créer des joueurs crédibles d'un certain style et de force variable trouvera dans ce livre les outils adéquats.
J'indique également une méthode pour faire d'une personnalité un moteur autonome, utilisable comme n'importe quel moteur UCI dans n'importe quelle interface d'échecs. Enfin, j'aborde le délicat problème de l'étalonnage du niveau de force des personnalités nouvelles.
Pour les curieux ou ceux qui souhaiteraient en savoir plus, voici le sommaire détaillé du livre. Contrairement à ce que j'ai annoncé ici il y a déjà quelques mois, il n'y aura pas de version eBook, uniquement une version papier. On peut commander le livre sur la plateforme Bookélis à cette adresse :
https://www.bookelis.com/informatique-et-internet/53811-Rodent-IV.html
Le prix de vente est de 24 euros. L'achat du livre donne accès à une page réservée de ce site où sont rassemblées toutes les ressources nécessaires, notamment les 28 personnalités "Grand Maître" avec les niveaux de force étalonnés : Alekhine, Anand (deux versions), Anderssen, Botvinnik, Capablanca, Euwe, Fischer, Karpov, Kasparov, Kortchnoï, Larsen (deux versions), Lasker, Marshall, Morphy, Nimzowitsch, Petrossian, Réti, Rubinstein, Short, Spassky, Spielmann, Steinitz, Tal, Tarrasch, Topalov et Vachier-Lagrave. D'autres contenus s'y ajouteront au fil du temps. D'ici peu on y trouvera par exemple la personnalité Ulf Andersson avec le niveau de force étalonné. Les acheteurs enregistrés auront toujours la possibilité d'y accéder.

Rob Robinson, novembre 2022.


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