Menu principal :
Komodo et Dragon by Komodo
Parfait pour l'analyse et le conseil
Créé en 2007 par Don Dailey et Larry Kaufman, deux grands noms des échecs informatiques, Komodo a gravi rapidement les échelons. En 2013, alors que Don Dailey se mourrait d'une leucémie, la version 6 remportait pour la première fois le TCEC, la plus prestigieuse des compétitions ouvertes aux moteurs d'échecs. Mark Lefler a remplacé Don Dailey en tant que programmeur principal et Komodo a poursuivi sa route jusqu'à aujourd'hui sans jamais quitter le peloton de tête des plus forts moteurs d'échecs du monde. En 2021 Komodo a intégré la nouvelle technologie NNUE et a donné naissance à une nouvelle lignée : Dragon by Komodo, qui affiche actuellement (en octobre 2024) plus de 3600 Elo en format 40/15, à quelques petits points Elo derrière Stockfish et ShashChess.
Mais ce qui différencie Komodo de la plupart des autres très forts moteurs, c'est la qualité de son jeu : Komodo et Dragon restent des moteurs équilibrés entre stratégie positionnelle et capacités tactiques. Moyennement forts en calcul, mais soutenus par une connaissance aiguë de la position, ils offrent un jeu très solide et qui reste d'apparence humaine. Ce sont des moteurs parfaits pour l'analyse et le conseil.
Lorsque Komodo a dépassé Rybka en force en 2009, le moteur est devenu un produit commercial. Cependant les auteurs ont toujours eu à cœur de proposer gratuitement des versions plus anciennes. Ainsi, depuis peu, ils nous offrent la première version Dragon de Komodo, datant seulement de novembre 2020. Une véritable aubaine !
IMPORTANT : l'article ci-
Pour l'essentiel, tout ce qui a été écrit pour Komodo 12 1.1 et Komodo 13.02 reste valable. On note juste par-
(voir aussi la page du blog consacrée à Komodo 13)
Dragon by Komodo offert gratuitement
Komodo est un engine commercial mais ses ayant-
Disponible pour Linux, MacOs et Windows, en version 32 et 64 bits (seul Komodo 8 est proposé avec une version Androïd), Dragon by Komodo première version approche les 3450 Elo sur une bonne machine à quatre coeurs et offre en prime un mode Monté-
Dragon by Komodo 1 et Komodo 14.1 :
ce qui est nouveau
Comme toujours, Dragon 1 bénéficie par rapport aux précédentes versions d'un grand nombre d'améliorations dans beaucoup de domaines. Ainsi, le mode MCTS est nettement plus fort lui aussi. Toutefois la principale grande nouveauté de Dragon par rapport à la lignée Komodo réside dans la mise en place d'une évaluation NNUE.
Les nouveautés apparues sur Komodo 14.1 (et donc je n'avais pas encore parlé) sont bien sûr disponibles aussi sur la version Dragon. Il s'agit principalement des sept personnalités alternatives, du mode Armageddon et du réglage de force Skill / AutoSkill.
Evaluation NNUE
La mise en place de l'évaluation NNUE a permis au moteur de faire un bond de force spectaculaire. J'ai un peu de mal à m'y retrouver avec les côtes Elo des différentes versions de Komodo... mais il semblerait que sur une configuration très musclée, avec huit coeurs actifs, on passe avec Dragon 1 de 3400 à 3450 Elo. C'est déjà bien mais d'après Mark Lefler et Larry Kaufman ce sont sur les configurations les plus faibles que le gain de force de la version NNUE est considérable. On parle d'environ 200 Elo sur une machine à simple cœur!
Dragon fonctionne par défaut en mode NNUE. Si vous ouvrez son menu de configuration vous verrez que le paramètre "Use Regular Eval" est décoché. Si vous le cochez, Dragon tournera dans le mode ancien, fournissant un jeu identique à celui de Komodo 14.1. Personnellement c'est celui que j'utilise pour le conseil ou l'analyse.
Menu de configuration de Dragon by Komodo dans Arena
Depuis "WeightsFile" il est théoriquement possible de charger un autre réseau neuronal mais en pratique ce champ ne sert à rien car les auteurs ne fournissent pas de réseau alternatif et il n'est pas possible d'utiliser d'autres réseaux, par exemple ceux de LC0.
Le champ "NNU-
Personality
Le champ "Personality" s'ouvre sur un pop-
➤"Defensive" : personnalité conservant une position solide et mobilisant beaucoup de pièces pour assurer la protection de son roi.
➤"Active" : personnalité au jeu très dynamique, recherchant prioritairement la maîtrise de l'espace dans des positions très ouvertes.
➤"Positionnal" : la personnalité positionnelle tend vers un jeu solide, de préférence dans des positions fermées.
➤"EndGame" : personnalité qui poursuit le but d'arriver coûte que coûte en fin de partie pour promouvoir un pion.
➤"Beginner" : personnalité volontairement affligée de défauts typiques de joueurs débutants. Par exemple, elle sera particulièrement avide des pièces de l'adversaire et très mauvaise en fin de partie.
➤"Human" : cette personnalité est censée jouer comme un maître humain fort. Elle est assez agressive, "évitant les simplifications et les répétitions inutiles, en visant des positions ouvertes et en mettant l'accent sur les avantages statiques". Le mieux est de la faire jouer pour voir vraiment de quoi il retourne...
Skill et Auto Skill
Skill est un réglage permettant de limiter la force du moteur. C'est une jauge qui s'étend de 1 à 25. A 1 le moteur à l'intelligence d'un enfant en bas-
Les auteurs préviennent que le niveau de force dépend du nombre de cœurs activés. Pour deux cœurs, je conseille de retrancher 50 Elo et pour un cœur 100 Elo.
Pour les niveaux 1 à 23 ces réglages seront probablement assez fiables quelque soit la machine utilisée si elle est assez récente. Les deux derniers niveaux dépendent en partie de la puissance de votre matériel.
Sur les versions les plus récentes de Dragon, les développeurs du moteur ont enfin renoncé à ce réglage Skill pour le remplacer par un réglage de type "UCI_Elo", beaucoup plus parlant, pour lequel on choisit directement un niveau Elo. Il faudra attendre encore quelques années, sans doute, pour en bénéficier sur une version libérée.
L'auto Skill est un système qui force le moteur à abaisser son niveau de jeu si vous êtes vraiment dans les choux ou au contraire à l'augmenter si votre position venait à être nettement supérieure. Par défaut, AutoSkill est bien sûr désactivé.
Armageddon
Armageddon est un mode jusqu'au-
Sommaire
Style : attaquant positionnel
Téléchargement
Installation
Configuration
Paramètres généraux
Contempt
Gestion des bibliothèques d'ouvertures
Table de fin de parties Syzygy
Paramètres de l'évaluation alpha/bêta
Table de hachage
Elagage de l'arbre des coups
Autres paramètres
Paramétres du mode Monté-Carlo
Le mode Monté-Carlo : avantages, inconvénients et restrictions
Plus offensif et plus humain
Moins fort sauf avec le MultiPv activé
Bonne configuration matérielle indispensable
Points divers
Komodo pour le conseil et l'analyse
Généralités
Laisser du temps au moteur pour réfléchir
Préparer l'environnement matériel
Bien configurer le moteur
Style : attaquant positionnel
Proche par son jeu du célèbre moteur commercial Shredder, Komodo et son successeur Dragon offrent un jeu solide mais assez peu entreprenant, plutôt défensif et matérialiste. Si je devais absolument les ranger dans une case, je dirais que Komodo et Dragon, du moins en mode "normal" (non-MCTS - voir plus bas), sont des "attaquants positionnels" dont le jeu évoque Karpov ou plus près de nous Magnus Carlsen. Ils sont agressifs non pour acquérir du matériel ou pour forcer le mat mais pour obtenir un avantage positionnel. Sachez néanmoins qu'ils vous attaqueront quand même avec vigueur si vous leur donnez une bonne occasion de le faire.
Téléchargement
On téléchargera le moteur sur la page officielle. Télécharger Dragon by Komodo Free ?
Komodo et Dragon utilisent les bibliothèques d'ouvertures au format polyglot (*.bin). Les différentes versions de Komodo sont fournies sans bibliothèque mais vous trouverez sur la page de téléchargement la "Komodo 3 Polyglot book by Salvo Spitaleri", qui accompagnait Komodo 3. Téléchargez-là, copiez là dans le dossier du moteur et vous pourrez depuis le menu de configuration indiquer le chemin pour la trouver. Tout autre bibliothèque d'ouvertures polyglot pourra être utilisée de la même façon.
Installation
Quelle que soit l'interface utilisée, collez d'abord la bibliothèque "komodo.bin" dans le dossier de Komodo (ou une autre bibliothèque polyglot)
Installation dans Arena
Pour Arena, menu "Modules" > "Installer nouveau module" et allez chercher celui des deux exécutables qui s'accorde le mieux à votre ordinateur : "dragon-64bit.exe" (pour Windows 64 bits standard) ou "dragon-64bit-avx2.exe" (pour Windows 64 bits plus évolués). Notez qu'il n'est plus proposé de versions pour vieux systèmes en 32 bits.
Installation dans Lucas Chess
Komodo 13.02 est déjà un moteur interne de Lucas Chess mais pas encore Komodo Dragon. Il est donc intéressant de l'installer en "externe" : menu "Outils" > "Moteurs" > "Configuration des moteurs" ; bouton "Nouveau" et allez chercher celui des deux exécutables qui s'accorde le mieux à votre ordinateur : "dragon-64bit.exe" (pour Windows 64 bits standard) ou "dragon-64bit-avx2.exe" (pour Windows 64 bits plus évolués).
Menu de configuration de Dragon dans l'interface Lucas Chess
Installation dans Pychess
Pour PyChess : menu "Éditer" > "Moteurs" puis bouton "Nouveau" et allez chercher le fichier exécutable qui correspond le mieux à votre sytème. A noter : à ce stade, si vous ouvrez l'onglet "options" vous accéderez aux paramètres de configuration du moteur.
Je ne vois pas l'intérêt d'installer un moteur aussi sophistiqué que Komodo Dragon dans des interfaces qui ne permettent pas d'accéder au menu de configuration du moteur tels que Crafty Chess Interface ou Mayura Chess Board Free.
Configuration
Le menu de configuration de Komodo Dragon est très copieux et doit être maitrisé, si l'on veut vraiment profiter du moteur. Il est accessible avec Arena depuis "Modules" > "Module 1" > "Configurer". Il faut savoir pour commencer que le moteur peut fonctionner avec trois évaluation différentes : NNUE, MCTS (Monté-Carlo) et avec l'évaluation algorithmique classique. Il importe de distinguer les paramètres valables pour les trois systèmes.
Etant donné le nombre élevé de réglages, j'indique par +++ les paramètres les plus importants, par ++ ceux qui compte et par + ceux, moins importants, que vous pourriez négliger.
Paramètres généraux
Threads +++: indiquez ici, de préférence, le nombre de coeurs physiques de votre ordinateur. C'est un paramètres de performance important. Si vous avez quatre coeurs et que vous laissez ce paramètre sur "1", la puissance de Komodo sera très inférieure à ce que vous pourriez espérer.
Remarque : le fichier d'aide recommande de désactiver l'Hyperthreading si vous avez plus de six coeurs physiques.
MultiPv ++: Komodo gère bien sûr le MultiPv. Par défaut seule une piste de recherche est explorée - ce qui équivaut à dire qu'il est désactivé. Si vous l'utilisez pour l'analyse ou le conseil, vous pouvez lui demander d'en explorer quelques autres mais la chute de Elo est importante. Prévoir d'allonger le temps de réflexion.
Dans ce domaine, la recherche MCTS est particulièrement performante car elle permet de suivre un très grand nombre de pistes en mobilisant très peu de ressources-machine supplémentaire. Sur trois ou quatre pistes elle devient plus performante que la recherche classique.
Ponder +++ : par défaut, la pondération est désactivée. Autant la laisser ainsi.
UCI Chess 960 ++ : si ce paramètre est coché, le moteur jouera selon les règles des échecs aléatoires de Bobby Fischer, une variante assez intéressante des échecs pour laquelle la position des pièces mineures et lourdes est tirée au sort en début de partie.
Time usage + : ce paramètre permet de manipuler le contrôle du temps de Komodo. Le paramètre par défaut, "0" est à priori le meilleur et conviendra à la plupart des situations. Si on choisi une valeur négative, Komodo prendra moins de temps à réfléchir et jouera donc plus rapidement. Si on l'augmente, c'est l'inverse. Le paramètre peut être réglé entre -90 et +90 mais, indiquent les auteurs, il est prudent de ne tester que de faibles variations.
L'utilité de "Time usage" est de permettre de compenser le temps nécessaire à transmettre les données à l'interface dans les cas où l'on fait tourner Komodo sur un ordinateur très peu puissant ou lorsque Komodo est utilisé pour jouer à distance avec une connexion à bas débits. Au temps de jeu du moteur s'ajoute en effet le temps de transfert à l'interface et le moteur, dans les pires des cas, peut arriver en zeinot et perdre au temps. Evidemment, comme on réduit le temps de réflexion du moteur, il faut s'attendre aussi à une baisse de force.
Overhead ms + : ce paramètre gère le temps laissé à l'interface pour prendre en compte le transfert d'informations depuis le moteur. Son but est de compenser une éventuelle lenteur d'une interface tournant sur une machine peu performante, par exemple un vieux portable, ou encore dans le cas d'une connexion à distance. La valeur par défaut est réglé sur 40 millisecondes et dans la grande majorité des cas, vous n'aurez pas à la changer.
Log file + : si vous voulez avoir une sortie texte du fonctionnement de Komodo, demandez lui d'aller sauvegarder un fichier - que vous appellerez "logfile" - dans le dossier du moteur.
Minimal reporting + : ce paramètre diminue la quantité d'information qui sera affichée par la sortie moteur. A moins que vous n'ayiez un ordinateur du siècle dernier, vous ne devriez pas toucher à la valeur par défaut, "0", qui ne limite aucunement les données affichées.
Il s'agit de prendre en charge les situations où le débit de communication entre l'interface et le moteur est faible, par exemple si vous utilisez Komodo sur Internet via un serveur de parties en ligne ou un réseau privé, avec une connexion limitée. Concrètement, la valeur x choisi correspond aux premières x plis qui ne seront pas affichées par le output moteur.
Facteur de "Mépris"
Contempt ++ : le contempt ou "mépris" est utilisé par l'évaluation de l'ordinateur pour encourager (valeur négative) ou décourager (valeur positive) les échanges de pièces, les structures de pions bloquées et les nullités intempestives. Il traduit l'optimisme plus ou moins grand du moteur face à sa situation sur l'échiquier. Un contempt fortement négatif poussera par exemple le moteur à rechercher la nullité de la partie dans des situations proches de l'égalité. Un contempt fortement positif poussera au contraire le moteur à rechercher à faire mat même dans une situation difficile.
La valeur par défaut est maintenant de -16 centipawns, ce qui devrait aider contre les adversaires les plus faibles, indique la documentation. Le moteur sera en effet enclin à accepter la nullité assez facilement. Pour plus de précisions, se référer à la documentation anglaise du moteur.
White Contempt + : si ce paramètre est coché, Komodo utilisera la valeur de Contempt du point de vue des blancs. Par défaut White Contempt est décoché. Le mieux est de le laisser ainsi. Pour plus de précisions, voir la documentation du moteur.
Gestion des bibliothèques d'ouvertures
Ici, vous devez d'abord décider si vous allez demander au moteur d'utiliser sa ou ses propres bibliothèques d'ouvertures ou bien laisser l'interface s'en occupper. Ensuite, sélectionner une ou plusieurs bibliothèques .bin à utiliser et enfin indiquer à Komodo où se trouve celle que vous voulez employer.
OwnBook +++ : si coché (choix par défaut), OwnBook va ordonner au moteur de lire dans le répertoire du moteur la bibliothèque "komodo.bin" - qui initialement ne s'y trouve pas ! Il faut donc copier une bibliothèque "komodo.bin" à cet emplacement. Ou bien , utiliser "Book file" pour guider le moteur vers une autre bibliothèque. Si décoché, vous devrez demander à l'interface utilisé de gérer elle-même les bibliothèques.
Pour Arena, menu "Modules" > "Gérer" puis choix du moteur dans la liste, onglet "Détails", onglet "Bibliothèque" et cocher "Utiliser bibliothèque principale d'Arena" ou faîtes un autre choix avec le sélecteur de fichiers.
Pour Lucas Chess c'est la bibliothèque par défaut, "GMopenings.bin", qui est utilisée automatiquement. Mais lorsque vous débutez une partie, vous pouvez changer de bibliothèque depuis l'onglet "Coups initiaux" du menu. N'importe quelle bibliothèque Polyglot valide (extension .bin) pourra être utilisée. Dans la zone "Activer répertoire : adversaire" (qui doit être coché) cliquez sur le petit "+" Bleu à côté de "GMopenings". C'est le sélecteur de fichiers qui vous permettra d'aller chercher où vous voulez la bonne bibliothèque .bin. L'intérêt de procéder ainsi est double : 1/ Vous pouvez limiter ici la profondeur d'utilisation de la bibliothèque (par défaut 8 coups) 2/ Vous pouvez forcer une ouverture particulière ou agir sur les paramètres de sélection d'une ouverture :
Aléatoire équitable : tirage au sort de n'importe quelle ouverture
Aléatoire proportionnel : tirage au sort aléatoire mais proportionnel au nombre de fois où l'ouverture a été utilisée dans l'échantillon qui a servi à créer la bibliothèque. Une ouverture fortement utilisée aura plus de chance d'être sélectionnée qu'un ouverture très peu utilisée.
Toujours le pourcentage le plus élevé : sélection des ouvertures qui ont donné le plus de victoires - donc les plus performantes.
Book file ++ : sélecteur de fichier permettant de lier le moteur avec une autre bibliothèque polyglot.
Best book line ++ : si la case est cochée, Komodo utilisera les lignes d'ouvertures les plus performantes. Ce qui veut dire qu'il aura tendance à jouer toujours le même petit nombre d'ouvertures très solides. Si vous décochez la case (valeur par défaut), Komodo pourra choisir une louverture au score moins élevé. Il perdra un petit peu en force mais son jeu sera plus variées.
Book Moves ++ : ici est défini le nombre de mouvements, exprimé en 1/2 coups, qui seront pris en compte dans l'ouverture. La plage de valeur s'étend de 0 à 1000. 1000 est le choix par défaut. Autant dire qu'il n'y a pas de limitation ! Si vous voulez que la bibliothèque ne soit utilisée que pour les 10 premiers coups des blancs et les 10 premiers coups des noirs, il suffit de donner la valeur 20 à Book Moves.
Remarque : en mode MCTS, Komodo refuse d'utiliser sa propre bibliothèque. Par contre si le moteur est réglé dans Arena pour employer l'une des bibliothèques de l'interface (ou sa bibliothèque principale), ça fonctionne.
Gestion des tables de fin de parties SYZYGY
Pour géer ses fins de parties Komodo peut s'appuyer sur les tables Syzygy, si vous les avez (voir le dossier sur les tables de finales).
Use Syzygy ++, SyzygyPath ++ et Syzygy 50 Moves rule + : "Use Syzygy" est coché par défaut, ce qui signifie que le moteur va tenter de lire les tables lorsqu'il ne restera que cinq pièces ou moins sur l'échiquier. Vous devrez cependant indiquer, avec "SyzygyPath", où elles se trouvent sur votre ordinateur. Si vous n'avez pas les tables, décochez "Use Syzygy" (ce n'est pas très grave si vous oubliez de le faire).
"Syzygy 50 Moves rule" est coché par défaut, afin d'éviter d'interminables finales (voir règle des "50 coups").
Les accès aux tables de fin de parties peuvent être couteux en temps et abaisser la force du moteur au lieu de lui en faire gagner. Les choix à faire dépendent essentiellement de la performance de votre matériel et du nombre de pièces gérés par les tables. Si vous avez les tables Syzygy à six pièces, mais que vous ne disposez que d'un simple ordinateur de bureau avec un disque dur mécanique, Komodo va passer son temps à sonder les tables et perdra à tous les coups beaucoup de points de Elo. Or, les paramètres par défaut sont optimistes sur les capacités de votre matériel ! Pour la majorité des utilisateurs, il sera nécessaire de restreindre l'accès aux tables et/ou d'augmenter la capacité de votre ordinateur - par exemple en ajoutant de la mémoire et en adoptant un disque dur SSD.
Dans le cas où vous devriez vous contenter d'un matériel moyen, le menu de configuration offre plusieurs possibilités pour que votre ordinateur soit moins solicité.
Syzygy ProbeDepth +, Syzygy Probe Limit + et Smart Syzygy ++
Syzygy Probe Depth détermine la profondeur en 1/2 coups à partir de laquelle les tables de finales seront sondées à la place de l'évaluation interne. Le chiffre par défaut est très bas (2) si vos tables sont stockées sur un disque dur mécanique. En effet cela signifie qu'elles seront sondées très tôt, ce qui va occasionner un ralentissement de la réflexion et probablement une baisse de la force. une valeur de 6 à 10 sera probablement mieux, d'autant que Komodo est naturellement fort en finale même sans recours aux tablebases. Par contre si les tables sont sur un disque dur SSD, 7 ou 8 fois plus rapide, une valeur inférieure à 6 est recommandée.
Syzygy Probe Limit détermine le nombre de pièces restant sur l'échiquier à partir duquel Komodo va commencer à sonder les tables Syzygy. Par défaut, il est défini sur 6, alors que vous n'avez probablement, comme moi, que les tables à 5 pièces. Autant mettre le bon chiffre dans le champ. J'en profite pour dire qu'il ne serait pas raisonnable d'installer les 150 Go des tables Syzygy à 6 pièces sur une machine ordinaire puis de laisser Komodo les sonder sans restriction. Pour explorer une base aussi grosse, il faut des processeurs musclés, 8 Go de mémoire au moins et un bon disque dur SSD.
Smart Syzygy, s'il est activé, va limiter le recours aux tables, en tenant compte des valeurs de Probe Deth et de Probe Limit. Ce paramètre, décoché par défaut, est prévu pour compenser la lenteur d'un disque dur mécanique. On considère donc que vous avez un disque SSD ! N'oubliez pas de cocher Smart Syzygy si ce n'est pas le cas. Inversement, ne cochez pas Smart Syzygy si vous avez un disque SSD...
Remarque : le mode MCTS utilise bien les tables de finales
Paramètres de l'évaluation alpha/bêta
Ce sont les paramètres qui fonctionnent avec le mode algorithmique classique de Komodo mais restent sans effets sur la recherche MCTS.
Table de hachage
Hash +++ : ici est définie la quantité maximale de mémoire que va utiliser la table de transposition. C'est un paramètre à bien maîtriser pour obtenir un jeu performant. La valeur par défaut, 192 Mo, est suffisante pour des parties blitz. Mais si vous utilisez Komodo pour jouer une partie de longue durée ou pour le conseil et l'analyse, il faudra l'augmenter. 500 Mo est une bonne valeur si vous avez au moins 8 Go de mémoire ram.
Hash File name + il est possible d'interrompre une analyse approfondie d'une partie et de sauvegarder le contenu de la table de hachage, afin que le moteur puisse travailler plus rapidement lorsque vous reprendrez l'analyse. Mode d'emploi : avant de commencer l'analyse, ouvrez le menu de configuration du moteur et utilisez le sélecteur de fichier de "Hash File Name" pour donner un nom au fichier et une localisation sur votre ordinateur, de préférence dans le répertoire de Komodo.
Lorsque que vous interromprez l'analyse, vous reviendrez au menu de configuration et vous cliquerez sur le bouton "Save Hash to File". Le contenu de la table sera sauvegardé sur votre disque dur.
Avant de reprendre l'analyse, vous reviendrez dans ce menu cliquer sur le bouton "Load Hash from File", pour recharger la table.
Table Memory ++ : ce paramètre détermine la quantité de mémoire que Komodo allouera à diverses tables internes telles que la table de hachage de la structure de pions, le cache d'évaluation et d'autres. Par défaut, elle est fixée à 128 Mo, une valeur correcte pour des parties rapides ou blitz. Pour une utilisation de Komodo à plus haut niveau, par exemple pour le conseil ou l'analyse, 256 Mo sera mieux - à condition d'avoir assez de Ram !
Clear Hash + : cliquez sur ce bouton pour vider la table de transposition.
A noter : un moteur comme Komodo, utilisé à haut niveau, consomme beaucoup de ressources machine et de mémoire. Si par exemple vous l'employez comme tuteur dans Lucas Chess, il est probable que vous utilisiez également un autre moteur, celui contre lequel vous êtes en train de jouer. Il est donc indispensable de fermer toutes les applications inutiles, et en particulier les navigateurs internet, gros consommateurs de Ram. Personnellement, je fais un "Ctrl Alt Suppr" et j'arrête manuellement tous les processus et services dont je n'ai pas immédiatement besoin (voir aussi "Comment régler une table de hash?")
Remarque : le mode MCTS fonctionne avec sa propre (grosse) table de hachage, mais comme il utilise aussi une mini-évaluation alpha-bêta, il faut conserver une table de hachage minimale.
Elagage et réduction de l'arbre de recherche
Komodo met en œuvre deux gammes de procédés pour élaguer l'arbre des coups des branches qui, pour différentes raisons, lui donnent à penser qu'elles seraient moins productives. Grâce à elles, le moteur peut explorer beaucoup plus profondément et gagne considérablement en force. Ces procédés ont tous le même défaut : le moteur va forcément laisser de côté de temps à autre des lignes qui auraient pu être fructueuses. Il pourra aussi louper quelque chose d'important. C'est pourquoi, si vous utilisez Komodo pour analyser une partie, vous pourriez avoir intérêt, selon le résultat recherché, à réduire l'efficacité des procédés d'élagage et à augmenter, pour compenser, le temps que vous laisserez au moteur pour effectuer son analyse. Le résultat sera obtenu plus lentement mais sera de meilleure qualité (voir ci-dessous).
Use LMR ++ : LMR (Late Move Reductions) est une technique de recherche conçue pour réduire de manière agressive certains mouvements dans l'arborescence de recherche, afin d'obtenir de plus grandes profondeurs. C'est une bascule : ou vous élaguez ou vous n'élaguez pas. Mais "Reduction" permet plus loin de paramétrer l'élagage, si LMR est activé.
En général, Komodo joue beaucoup plus fort avec LMR activé. Si vous l'éteignez, la recherche sera moins profonde mais certaines positions seront mieux explorées.
A noter : par défaut, l'algorithme est activé.
Null Move Pruning ++ : comme LMR, c'est aussi une technique pour élaguer l'arbre de recherche. Komodo joue beaucoup plus fort avec Null Move Pruning activé, mais peut laisser passer des choses importantes.
Reduction + : contrôle la profondeur des recherches de Komodo. La plage de valeurs s'étend de -1000 à +120. Les valeurs élevées conduisent le moteur à explorer à plus grande profondeur mais au prix du sacrifice de plus de lignes. Selon les auteurs, les valeurs autour de zéro apportent le meilleur compromis entre qualité de la recherche et efficacité de l'évaluation.
A noter : LMR est inutile en mode MCTS.
Selectivity + : autre moyen d'ajuster l'agressivité de l'élagage, cette fois en poussant le moteur à élaguer moins ou davantage à de faibles profondeurs. Plage de réglage : 0 à 250. Valeur par défaut : 140. Plus la valeur est élevée plus le moteur élaguera tôt, plus il pourra explorer profondément mais plus il risque de manquer certains mouvements.
Inutile en mode MCTS.
Je crois comprendre que Reduction et Selectivity agisent sur Null Move Pruning et sur LMR, mais je n'en suis pas sûr à 100%.
Autres paramètres
King Safety + : ce paramètre contrôle l'importance que Komodo accorde à la sécurité de son roi. Plus la valeur est élevée, plus les effets des attaques sur le roi seront importants dans l'évaluation de Komodo, dont le jeu sera plus défensif. Une valeur faible poussera Komodo à consacrer plus d'effort à son action offensive. La plage de valeur s'étend de zéro à 200. La valeur par défaut est de 70.
King Safety n'a pas d'effet sur l'exploration MCTS.
Dynamism + : ce paramètre agit sur le comportement de Komodo en majorant ou minorant l'importance, si j'ai bien compris, de l'évaluation de la mobilité (en gros le nombre de mouvements disponibles à tous moments de la partie). La plage de réglage s'étend de zéro à 400 ; la valeur par défaut est de 140. En dessous, le moteur accordera moins d'importance à sa mobilité. Son jeu sera plus sage, plus conservateur ; en dessus, le moteur sera davantage incité à prendre de risques, à être plus offensif.
Selon les auteurs, un Dynamism fixé à 80 fera perdre 20 à 30 points de Elo - et rendra le jeu du moteur frileux - mais donnera une évaluation plus naturelle, plus humaine.
Les valeurs extrêmes ne sont bien sûr pas recommandées. Elles feront perdre beaucoup de force au moteur.
Dynamism n'a aucun effet sur la recherche MCTS.
Variety + : ce paramètre impose au moteur de joueur d'autres coups que celui que son évaluation considère comme le meilleur. A zéro, valeur par défaut, Variety est désactivé et Komodo jouera son meilleur coup. La plage de valeur s'étend de 0 à 20. Plus le chiffre est élevé, plus la variété de mouvements sera grande. Bien entendu, cela fait perdre un peu de force au moteur, mais très peu. Selon les auteurs, l'affaiblissement est à peine d'un point de Elo par tranche de 5 points. Soit 4 points maximum pour la valeur 20. Ca ne vaut pas le coup de s'en priver !
Progress Threshold + (seuil de progression) : le seuil de progression permet de définir le nombre de demi-coups joués sans capture ni avance de pion (selon la règle des 50 coups) pour lequel Komodo commence à tirer le score d'évaluation vers zéro. Plus la valeur est basse, plus le moteur abandonnera tôt une ligne ne donnant aucun progrès pour une autre. La valeur par défaut est de 30, alors qu'elle était à 80 dans les précédentes versions du moteur. Ce qui coûte un ou deux points de Elo, mais fera de Komodo un meilleur outil d'analyse et raccourcira les longues finales.
Skill +++ : ce paramètre permet de diminuer le niveau de force du moteur. Par défaut, il est à 20, valeur maximale. On peut l'abaisser jusqu'à zéro mais j'ignore à quel niveau de force cela correspond.
Auto Skill +++ : le niveau de jeu s'ajuste automatiquement à la force du joueur humain. Cela donne des parties paraissant peu naturelles et qui tendent vers la nulle mais c'est un moyen motivant pour les joueurs faibles qui peuvent espérer remporter une partie de temps en temps.
Personnality +++ : ce menu donne accès à sept personnalités alternatives qui ont pour but de fournir des partenaires de jeu pour joueurs humains. Elles doivent donc presque nécessairement être utilisées avec un niveau de force ("Skill") nécessairement inférieur à 25. Il serait aussi certainement opportun de changer la valeur de "Variety", par défaut sur zéro. Une valeur positive poussera le moteur à jouer de temps à autre un coup un peu moins bon que le meilleur trouvé. Bien entendu cela signifie que le moteur va s'affaiblir un peu. Avec Variety sur 40, par exemple, il faudrait s'attendre à une perte de l'ordre d'une dizaine de Elo.
Paramétres du mode Monté-Carlo
En ce qui concerne la recherche MCTS, il y a relativement peu de paramètres à régler, l'algorithme étant optimisé automatiquement. Mais puisque nous sommes dans la section "paramétrage", voyons rapidement ce qui nous est proposé (j'approfondirai certains points dans le chapitre suivant).
Use MCTS +++ : pour activer le mode MCTS, il suffit de cocher "Use MCTS". L'évaluation classique et ses réglages seront désactivés.
MCTS Hash +++ : le mode MCTS utilise une grosse table de transposition pour fonctionner. D'où MCTS Hash réglé par défaut à 320 Mo, valeur minimale de la recherche MCTS. Une valeur très basse, avec laquelle on ne fera pas grand chose. Une valeur standard de 1 Go serait beaucoup plus raisonnable - si on en dispose !
MCTS Explore +++ : en mode MCTS, la recherche est contrôlée par le taux d'exploration (recherche d'un arbre plus large et ajout de plus de variations) et le taux d'exploitation (extension des lignes existantes pour voir plus profondément). La plage de valeur s'étend de 1 à 100. Plus MCTS Explore est élevé plus le moteur va utiliser d'exploration. Mais plus il va solliciter la mémoire ram disponible. La valeur par défaut est de 5.
Remarques IMPORTANTES
Komodo en mode standard propose des paramètres par défaut assez optimistes. Pour le MCTS, c'est l'inverse : tout semble sous-calibré, alors que ce système ne donne de résultats probants qu'à haut niveau d'utilisation. J'y reviendrai dans la section suivante.
En mode MCTS, Komodo ne lit plus sa bibliothèque d'ouvertures, même si "OwnBook" et coché. Embêtant car il est très important d'utiliser une bibliothèque solide pour les premiers coups, afin de ne pas remplir inutilement l'arborescence. Si vous utilisez Arena ou Lucas Chess comme interface, vous pourrez cependant guider le moteur vers l'une des bibliothèques Abk d'Arena ou vers une bibliothèque polyglot pour Lucas Chess (comme vu plus haut).
Le mode Monté-Carlo : avantages, inconvénients et restrictions
Peu d'indications sont données sur la manière dont fonctionne la recherche MCTS sur Komodo. Voici ce que j'ai pu glaner, ici ou là : une recherche Monté-Carlo est une exploration basée sur la construction d'une arborescence de la partie en cours, les lignes étant choisies en partie aléatoirement (pour découvrir de nouvelles branches efficaces), en partie méthodiquement, en retenant les lignes qui montraient déjà un fort pourcentage de victoires. Pour estimer ces probabilités, d'autres moteurs s'appuient sur la connaissance profonde d'un réseau neuronal déjà constitué. Les développeurs de Komodo ont préféré utiliser une version allégée - et donc rapide - de l'algorithme alpha/bêta classique du moteur. Lequel effectue une courte recherche à chaque nœud MCTS, les scores obtenus étant sauvegardés à la racine de l'arbre. La recherche est d'abord très large, puis elle se resserre autour d'un certain nombre de lignes très prometteuses.
Le MCTS de Komodo est donc un système hybride, propre à ce moteur. Il a été développé et perfectionné sur Komodo 13 et 14. Au point de rejoindre l'évaluation classique en terme de force. Mais Komodo évolue maintenant vers la technologie NNUE, avec Dragon...
Plus offensif et plus humain
L'avantage principal du mode MCTS est que le moteur change totalement de style. Alors que l'évaluation classique de Komodo donne un jeu positionnel et prudent, en mode MCTS, il semble à l'opposé : moins matérialiste et beaucoup plus offensif, dans la style de Mikhaïl Tal, disent les auteurs. Le MCTS de Komodo "a battu (...) le champion des États-Unis Hikaru Nakamura par 2,5 à 1,5 malgré le fait qu'il lui ait donné une tour contre un cavalier, un pion f2, un pion f7 et quatre handicaps de coups".
Les parties semblent aussi plus humaines, car si l'évaluation alpha/bêta d'un moteur d'échecs tend vers un jeu parfait, face à un adversaire qui joue imparfaitement, le MCTS va chercher seulement, comme un être humain, le mouvement qui lui donnera la meilleure chance de gagner - ou de faire nulle en cas de déséquilibre important. Quoi qu'il en soit, pour une même position, le MCTS choisira souvent un mouvement très différent de l'évaluation classique.
Moins fort sauf avec le MultiPv activé
Pour la version 12, le mode MCTS est moins compétitif que l'évaluation "normale" de Komodo. Sur l'échelle CCRL 40/4, la force de Komodo en mode MCTS est évaluée à :
➤3300 Elo sur douze coeurs
➤3220 Elo sur quatre coeurs
➤3170 Elo sur deux coeurs
➤3120 Elo sur un simple coeur
Cela reste une force respectable, bien suffisante pour une analyse de qualité. Cependant, le mode MCTS devient vraiment puissant lorsque le MultiPv est activé et que de nombreuses pistes sont suivies en même temps. Pour le MCTS, le MultiPv n'épuise pas le moteur comme le mode normal.
Bonne configuration matérielle indispensable
En mode MCTS, Komodo va développer l'arbre des mouvements en stockant les données dans sa table de hachage dédiée. D'une part ce processus consomme beaucoup de mémoire, d'autre part, il faut savoir que lorsque la table est pleine, la recherche se termine, tout simplement ! Le moteur ne fait pas le ménage dans la table, comme cela se passe avec une évaluation classique. Il est donc important d'évaluer correctement les besoins du moteur pour déterminer la taille utile de MCTS Hash. Ce n'est pas évident. Voici quelques repères qui devraient vous aider. Pour une partie ou une analyse incluant deux heures de réflexion du moteur MCTS il faudrait :
➤Avec un coeur : moins de 300 Mo. La valeur par défaut est donc suffisante.
➤Avec deux coeurs : 600 Mo
➤Avec quatre coeurs : 1,2 Go
➤Avec 8 coeurs : 2,4 Go
A noter : le mode MCTS ne peut utiliser que 12 cœurs au maximum.
Comme vous le voyez, le mode MCTS est un gros consommateur de ressources machine, en particulier de mémoire. D'autant que Komodo conservant un noyau d'analyse alpha/bêta, une table de hachage classique d'une certaine taille reste nécessaire.
Par ailleurs, c'est un système qui bénéficie davantage qu'une évaluation classique de la mobilisation de plusieurs threads. En conclusion, pour en tirer de bonnes performances, il vaudra mieux posséder une machine puissante et rapide, à quatre coeurs ou plus et dotée d'au moins 8 Go de mémoire vive.
Points divers
Pour finir avec le mode MCTS, deux derniers points méritant une observation...
Profondeur : les MCTS ne sont pas comme une recherche traditionnelle où, lorsque la profondeur augmente, cela est indiqué en sortie de moteur au fur et à mesure qu'une nouvelle itération est terminée. Au lieu de cela, les meilleurs choix de mouvements sont mis à jour une fois toutes les trois secondes, de sorte qu'il peut sembler que certaines profondeurs sont ignorées. Étant donné que la plupart des interfaces graphiques veulent voir une sortie de profondeur, Komodo l'estime en fonction des nœuds MCTS recherchés. Cette valeur n'est qu'indicative. Et c'est pourquoi il ne faut pas utiliser la profondeur comme moyen de fixer le niveau du moteur. La meilleure façon de limiter le moteur est le temps en seconde par 1/2 coup. J'en profite pour signaler que la construction d'un arbre est un processus assez lent qui fait que le mode MTCS ne produit pas un jeu décent en dessous de 4 ou 5 secondes par coup.
Score d'évaluation : il en va de même pour l'évaluation, affichée dans le format traditionnel en centipawn, qui n'est réalité qu'une probabilité de victoire convertie en un score acceptable par l'interface.
MultiPv : une caractéristique intéressante de MCTS est que suivre un grand nombre de pistes avec le Multi-PV activé est pratiquement "gratuit". En mode "normal", chaque déplacement MultiPV supplémentaire prend plus de temps. Mais en mode MCTS, l'arborescence des mouvements est enregistrée comme probabilités gagnantes pour tous les mouvements de racine. Ne nous privons pas de l'utiliser massivement, si le besoin se fait sentir !
Komodo, pour le conseil et l'analyse
N'ayant jamais cessé de dire que Komodo est un excellent moteur pour l'analyse de parties, je vais profiter de l'actualisation de cet article, à l'occasion de la mise à disposition de Komodo 13, pour pousser un peu le sujet. Si vous n'utilisez Komodo que pour une analyse sommaire de vos propres parties, afin que soient soulignées vos erreurs les plus grossières, il n'est probablement pas nécessaire que vous alliez plus loin. Si en revanche vous attendez de Komodo une analyse fine, qu'il soit capable de bien "comprendre" des positions complexes, en déjouant les pièges dans lesquels les moteurs tombent facilement, alors la suite vous sera sans doute utile.
Généralités
La première chose à faire est de s'armer pour comprendre comment fonctionnent les modules d'analyse et de faire le choix d'un module. Personnellement j'utilise essentiellement celui de Lucas Chess. Il est particulièrement performant, s'il peut s'appuyer sur un bon moteur. J'ai déjà publié plusieurs articles à ce sujet sur Echecs & Informatique. Je vous invite en particulier à lire:
L'analyse de parties (item du glossaire technique)
Le module d'analyse de Lucas Chess
Notez que le site Chess.com propose un module d'analyse de parties qui utilise au choix Komodo (actuellement 13.1) ou Stockfish comme moteur d'analyse. Mais je ne connais pas bien cet outil, qui n'est pas dans le champ d'Echecs & Informatique. Chess.com est en effet un site payant et si le module d'analyse est accessible gratuitement, toutes ses possibilités ne sont pas disponibles sans abonnement Premium.
Laisser du temps au moteur pour réfléchir
Si vous ne laissez à Komodo (ou n'importe quel autre moteur) qu'une seconde de réflexion par position, vous n'obtiendrez - il ne faut pas rêver - qu'une analyse sommaire. Pour un résultat un peu pointu, 10 secondes par position est un minimum. Si une réflexion de plusieurs heures pour l'analyse d'une partie entière est envisageable pour vous, n'hésitez pas à laisser au moteur une minute par mouvement, ou plus encore.
Préparer l'environnement matériel
Pour donner de bons résultats, Komodo ou n'importe quel moteur d'analyse a besoin de mémoire et de toute la puissance de votre ordinateur. Tous les logiciels et applications en fonctionnement qui ne sont pas utiles doivent être arrêtés. Fermez en particulier les navigateurs internet, qui utilisent énormément de mémoire vive. Vous pouvez aussi arrêter manuellement (depuis Ctrl+Alt+Suppr) les processus qui tournent en tache de fond : gestionnaires d'imprimante, services de communication, applications de partage de fichiers, etc. La liste est souvent très longue !
Vous trouverez dans l'article "Comment régler une HashTable" quelques détails pratiques pour peaufiner ce ménage.
Bien configurer le moteur
Bien configurer un moteur comme Komodo est rébarbatif mais indispensable, en particulier lorsque l'on veut l'utiliser pour obtenir une analyse performante. Le plus gros a déjà été vu plus haut :
➤Mobiliser tous les coeurs de processeurs disponibles
➤Choisir une taille conséquente pour la table de hachage.
➤Augmenter la taille de "Table Memory"
➤Choisir une bibliothèque d'ouvertures très performante et bien scorée, ce qui permettra d'économiser pas mal de temps machine (Lucas Chess peut épargner au moteur l'analyse des coups de la bibliothèque).
➤Guider le moteur vers les tables de finales Syzygy et régler correctement l'ensemble.
C'est l'essentiel, mais on peut encore augmenter sensiblement la qualité de l'analyse en réglant finement certains paramètres.
Limiter l'élagage
Renoncer à l'élagage ou le limiter vigoureusement permet d'accroitre la qualité de l'analyse mais fait perdre beaucoup de vitesse à Komodo. Je parle de tous les dispositifs qui ont pour but de supprimer le maximum des branches sans intérêt afin de permettre au moteur d'explorer à plus grande profondeur. Pour Komodo, comme vu déjà plus haut, il s'agit de LMR et de Null move pruning.
Pour décider d'éliminer une branche, ces dispositifs prennent en compte certains indices laissant entrevoir qu'elle ne sera pas productive. Le pari est généralement gagnant et permet d'augmenter beaucoup la force du moteur. Mais la qualité générale de l'appréciation est en baisse. Ainsi, certaines positions, sur lesquelles le moteur est passé trop vite, ne seront pas bien "comprises". Il aura aussi plus de mal à percevoir des menaces très profondes ou anticiper de complexes positions de zugzwang. Il peut donc être judicieux de limiter l'impact de l'élagage. Deux voies sont principalement envisageables :
1/ Désactiver LMR et Null move pruning. Ce choix radical est le plus efficace mais il faudra augmenter fortement le temps consacré à l'analyse, pour compenser. De combien ? Je ne sais pas trop. Il faudrait faire des tests, mais je n'ai pas tout mon temps pour les échecs ! Au doigt mouillé, je dirais qu'il faudrait doubler. En passant par exemple de 15 à 30 secondes par mouvement.
2/ Réduire la quantité de branches élaguées en diminuant la valeur du paramètre "Reduction" pour diminuer la profondeur de recherche et en augmentant "Selectivity" pour retarder l'élagage. Reduction est par défaut sur zéro. Une idée est de l'abaisser à -150 par exemple. Selectivity est à 140. Essayez donc 80...
Il faudra là aussi compenser en augmentant la durée de réflexion du moteur, mais dans une moindre mesure. Disons de 30 à 50% selon le degré de limitation de la réduction.
C'est peut-être le bon compromis entre performance et qualité mais je ne le garanti pas.
Enfin, il est possible aussi de jouer sur la valeur de Dynamism, fixée par défaut à 140. Selon la documentation du moteur, la valeur de 80 produit un jeu plus défensif mais plus naturel. Komodo y perdra de 25 points de Elo, qu'il faudra si possible compenser par une petite hausse du temps de réflexion.
Rob Rob, avril 2019 (article original pour Komodo 9) ; actualisation pour Komodo 12 en avril 2021. Actualisation pour Komodo 13 en mai 2022. Actualisation pour Dragon 1 en octobre 2023. Article encore revu en juillet 2024.