Komodo - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Komodo, parfait pour l'analyse et le conseil






Avec un Elo de plus de 3400, Komodo 14, bien que supplanté par sa nouvelle version Dragon, reste dans le peloton de tête des plus puissants moteurs d'échecs. C'est un produit commercial mais la version 12, datant de 2018, est proposée gratuitement.
Ce qui différencie Komodo de la plupart des autres très forts moteurs, c'est qu'il est plus équilibré. Fort en calcul mais soutenu par une connaissance aigue de la position, il offre un jeu qui reste d'apparence humaine, proche du style prudent et ultra-positionnel d'un Anatoli Karpov. Pour cette raison, c'est selon moi l'un des meilleurs moteur pour le conseil et l'analyse.




Il joue comme... Anatoli Karpov

Proche par son style du célèbre moteur commercial Shredder, Komodo offre un jeu solide mais peu entreprenant, plutôt défensif et matérialiste. Il va privilégier davantage l'évaluation positionnelle que la profondeur de calcul pour la tactique. Il est très fort en défense, garde une position qui paralyse son adversaire mais il vous attaquera avec vigueur si vous lui en offrez l'occasion. Vous découvrirez alors que ses compétences en tactique sont également très importantes.
Par son jeu prudent et positionnel Komodo est proche de joueurs comme Capablanca et, plus près de nous, du russe Anatoli Karpov.


Komodo 12 offert gratuitement

Komodo est un engine commercial mais ses ayant-droits ont l'habitude de mettre dans le public d'anciennes versions. Longtemps, ce role de vitrine a été dévolu à Komodo 9. Il y a quelques mois, alors que Komodo 14 venait d'être commercialisé, les versions 10 et 11 ont été mises en libre téléchargement sur le site officiel.  Plus récemment c'est la version 12 qui est devenue "free". Il est vrai que Dragon by Komodo, évolution de Komodo à évaluation NNUE, commence à remplacer le Komodo "simple"...
Disponible pour Linux, MacOs et Windows, en version 32 et 64 bits
(seul Komodo 8 est proposé avec une version Androïd), Komodo 12 frise les 3400 Elo et offre en prime un mode Monté-Carlo Tree Search - utilisable uniquement si on le souhaite. En effet, ce système substitue une évaluation probabiliste à l'habituelle évaluation logique de Komodo, ce qui fait perdre de la force au moteur mais lui donne une personnalité différente, beaucoup plus offensive et d'allure plus humaine.


Sommaire

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 12 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



Téléchargement

On téléchargera le moteur de préférence sur la page officielle.
Télécharger Komodo Free ?


Komodo utilise 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 "Polyglot book of 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. Je vous suggète notamment le pack "de Donna":
Télécharger le pack de biothèques d'ouvertures de Donna ?

Cliquez sur le bouton vert "Clone or download" puis sur "Download Zip" pour le télécharger. Ce pack contient trois bibliothèques: une petite, "gm2001.bin", "rodent.bin", la bilbliothèque standard de Rodent III, et "komodo.bin", très imposante (pas loin de 9 Mo) et très performante.  



Installation

Pour Arena :

1/ Collez la bibliothèque "komodo.bin" dans le dossier de Komodo (ou une autre bibliothèque polyglot)

2/Menu "Modules" > "Installer nouveau module" et allez chercher celui des trois exécutables qui s'accorde le mieux à votre ordinateur:
➤"komodo-12.1.1-64bit-bmi2.exe" (version pour ordinateur 64 bits récent compatible avec l'architecture BMI2)
➤"komodo-12.1.1-64bit.exe" (Windows 64 bits standard)
➤"komodo-12.1.1-32bit.exe" (pour vieux systèmes Windows 32 bits).

Si votre ordinateur est assez récent mais que vous ne connaissez pas ses possibilités, essayez d'abord de faire fonctionner la version BMI2. Elle apportera à Komodo quelques points de vitesse supplémentaires. Si ça ne marche pas, rabattez-vous sur la version 64 bits standard.


Komodo est déjà un moteur interne de Lucas Chess. Mais c'est une version plus ancienne pour machine 32 bits et elle est non configurable. Il est beaucoup plus intéressant d'installer Komodo 12 en "externe", version 64 bits BMI2 si possible : menu "Outils" > "Moteurs" > "Moteurs externes" et bouton "Nouveau"...


Configuration

Le module de configuration de Komodo, accessible avec Arena depui "Modules" > "Module 1" > "Configurer"  permet de faire de très nombreux réglages. Komodo 12 étant proposé avec évaluation classique ou avec recherche Monté-Carlo, il importe de distinguer les paramètres valables pour les deux systèmes, ceux qui concernent l'évaluation classique et celle de la recherche MCTS.
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 (et non-virtuels) de votre ordinateur.  C'est un paramètres 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. 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.   

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 avec les règles des échecs aléatoire 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 l'augmente, Komodo prendra plus de temps à réfléchir et jouera donc moins rapidement. Si on le diminue, c'est l'inverse.
Le paramètre peut être réglé entre -9 et +9 mais, indiquent les auteurs, il est prudent de ne tester que de faibles variations. Les valeurs extrêmes vont amoindrir le jeu du moteur.

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 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. Vous devrez le faire si Komodo se met à perdre des parties au temps. Essayez d'abord une valeur de 60, et si cela ne marche pas, passer à 80 ou 100. Voire plus.  

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 le output 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 "MEPRIS"

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 à accepter la nullité de la partie dans des situations proches de l'égalité.
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. Contre un adversaire humain, il doit être d'au moins 40, même s'il est le champion du monde. 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 BIBLIOTHEQUES D'OUVERTURES

Ici, vous devez d'abord décider si vous allez demander au moteur d'utiliser sa ou ses propres bibliothèques 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 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 (voir la section "Téléchargement" ci-dessus pour vous procurer des bibliothèques).
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.
Avec 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 dans la zone "Répertoire" de l'onglet "Coups initiaux" du menu.
N'importe quelle bibliothèque Polyglot valide (extension .bin) pourra être utilisée à condition qu'elle soit copiée dans le répertoire "Openings" de l'interface.  


Book file
+++ :
par défaut Komodo va lire la bibliothèque "komodo.bin" que normalement vous avez pris soin de placer dans le dossier du moteur. C'est une grosse bibliothèque. Vous pourriez préférer en utiliser une autre plus légère, par exemple "gm2001.bin". Il suffit d'indiquer ici le chemin vers cette bibilothèque.

Alternative intéressante : proposer à Komodo la bibliothèque "ph-karpov2.bin", construite à partir de nombreuses parties de l'ancien champion du monde par Pawel Hase (et distribuée avec le moteur Rodent)
Télécharger la bibliothèque "ph-karpov2.bin" ?
Ouvrez l'archive, copiez la bibliothèque bin, collez-là dans le dossier du moteur et déclarez-là au moteur. Ainsi l'analogie du jeu de Komodo avec celui de Karpov sera renforcée...
Si vous utilisez Komodo en mode MCTS, au style plus agressif et spéculatif, une autre idée serait de lui proposer la bibliothèque "ph-tal2.bin", toujours de Pawel Hase, constituée à partir des jeux de Mikhaïl Tal.
Télécharger la bibliothèque "ph-tal2.bin" ?

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. Si vous décochez la case (valeur par défaut), Komodo pourra choisir de temps en temps une ligne au score moins élevé. Il perdra un petit peu en force mais ses ouvertures seront 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. Il signifie que Komodo pourra tirer des mouvements dans sa bibliothèque jusqu'au 500ième coup ! 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.  


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 très 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 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, par contre...


Paramètres de l'évaluation alpha/bêta

Ce sont les paramètres qui agissent sur la fonction d'évaluation 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 rapides ou 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 4 Go de mémoire ram.

Hash File name + : sur Komodo 12, 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 du pion, 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 beaucoup mieux.

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 vous l'employez comme tuteur, il est probable que vous utilisez é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 DE L'ARBRE DES COUPS

Komodo met en œuvre pas moins de deux procédés différents pour élaguer l'arbre des coups des branches qui, pour différentes raisons, 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 beaucoup mieux explorées.
A noter : par défaut, l'algorithme est activé.  

Null Move Pruning ++ : comme LMR, c'est aussi une technique pour élaguer de manière agressive les mouvements de 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 a 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%. Si quelqu'un obtient une confirmation...


AUTRES PARAMETRES


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.


Paramétres du mode Monté-Carlo


Sur Komodo 12, pour lequel la recherche MCTS est encore expérimentale, il y a 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.  

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 copier la bibliothèque .bin de Komodo dans le dossier "Openings" de Lucas Chess.
➤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 : lorsque vous débutez une partie, vous pouvez changer de bibliothèque dans la zone "Répertoire" de l'onglet "Coups initiaux" du menu. N'importe quelle bibliothèque Polyglot valide pourra être utilisée mais elle devra impérativement être copiée dans le répertoire "Openings" de l'interface.


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 ne consomme en effet pratiquement pas de ressources supplémentaires.


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.


Ces valeurs sont indicatives. Elles correspondent à des machines  équipées de processeurs de performances moyennes. Si vos processeurs sont très rapides, elles devraient être majorées.  Si vous utilisez comme moi une machine de bureautique un peu ancienne, avec des processeurs lents, elles pourraient au contraire être abaissées. Je suppose aussi, en l'absence d'indications contraires, que ces valeurs sont valables avec un MCTS Explore de 5. Un chiffre plus élevé devrait aboutir à remplir plus rapidement la table de hachage MCTS.

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 12 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 12,  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 ½ coup, vous n'obtiendrez -
il ne faut pas rêver - qu'une analyse sommaire. Pour un résultat un peu pointu, 10 secondes par ½ coup est un minimum. Si une réflexion de plusieurs heures 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 est donc important 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é.

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.

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