Arasan Chess - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Programmes


Arasan chess




Arasan Chess est une interface de bonne facture dédiée à Arasan, l'un des meilleurs moteurs d'échecs freeware. Compatible UCI et Winbaord, Arasan est aussi utilisable avec la plupart des interfaces graphiques - commerciales ou freewares.


Arasan signifie "roi" en tamoul (illustration du site Chess Engine Diary).

Sommaire de cette page :

Arasan Chess, l'interface
Arasan, le moteur


En bref

Jon Dart, informaticien professionnel, a commencé à développer le moteur Arasan (qui veut dire "roi" en tamoul) au début des années 90. Les premières versions, proposées en 1994, font preuve de performances modestes mais le moteur s'améliore peu à peu et se hisse dans le peloton de tête des gratuits.  Il n'a jamais cessé d'évoluer, jusqu'à devenir l'un des meilleurs moteurs d'échecs actuels. Non seulement parce qu'il est ultra-fort, mais aussi parce qu'il fait preuve d'un beau style d'attaquant tactique, à l'allure assez naturelle. Compatible Winboard et UCI, disponible pour Windows, Mac Os et Linux, ce moteur peut-être utilisé avec toutes les bonnes interfaces graphiques - freewares ou commerciales - actuelles.


Arasan Chess : affichage par défaut

Pour ceux qui disposent d'un PC / Windows, il est aussi possible de le faire tourner avec l'interface dédiée que Jon Dart a développée parallèlement pour lui. Elle est très complète, proposant toutes les fonctions de base attendues d'une bonne interface. Seule l'apparence visuelle, très quelconque, pèche un peu - mais ce n'est pas le plus important.



Arasan : l'interface


Téléchargement & installation

Téléchargez l'interface de préférence sur le site officiel d'Arasan. Vous aurez la certitude de disposer de la version la plus récente.

Télécharger Arasan ?

Sélectionnez la ligne "Windows installer" pour télécharger le logiciel. Si vous utilisez Google Chrome comme navigateur et que rien ne se passe, faites un clic gauche sur le lien "Windows installer" et sélectionnez "Enregistrer le lien sous...". Le navigateur vous proposera alors de copier le fichier quelque part sur votre ordinateur. Si Chrome vous dit que le fichier n'est pas sûr, n'en tenez aucun compte et forcez le téléchargement.

Si je n'ai pas parlé de ce programme jusqu'ici c'est parce qu'il n'avait jamais fonctionné sur mon ordinateur.  Au lancement, l'application m'informait d'un dysfonctionnement du moteur. J'ai finalement résolu le problème. Il semble qu'Arasan Chess ne supporte pas d'être installé ailleurs qu'à l'emplacement par défaut. Laissez donc l'installeur le mettre où il veut et tout devrait bien aller.


Les fonctions de l'interface

Rien d'essentiel ne manque. Arasan peut lire et sauvegarder des positions Fen ou des parties au format standard PGN, y compris les PGN comportant plusieurs parties. Il peut copier une position ou la partie en cours, permet d'annuler le dernier coup et d'aller et venir d'avant en arrière dans la partie. On peut forcer l'ordinateur à jouer, lui demander un conseil (mais il répondra de façon hâtive et ne vous proposera pas forcément le meilleur coup), le forcer à changer de camp et, bien sûr, lui demander de retourner l'échiquier.

La gestion du temps est assez complète. L'horloge peut être mise en pause, réinitialisée à tout moment et réservée, ou pas, à l'ordinateur. Depuis le menu "Options" > "Search limits", vous pouvez assigner un temps par coup à l'ordinateur. Et dans ce cas vous disposez de tout votre temps pour réfléchir à vos propres coups.
Si vous décidez de vous battre à égalité avec le moteur sur le plan temporel, vous pourrez programmer un bonus-temps incrémental pour chaque coup joué et organiser un tournoi en fixant la limite de temps par tranche de X coups (par défaut, 40). Vous pourrez vous placer ainsi dans les conditions habituelles de tournoi.

Arasan gère la pondération, appelée ici "Think when Idle" (menu "Options" > "Preferences"). N'oubliez pas que si vous laissez travailler le moteur pendant que vous réfléchissez à votre prochain mouvement, il sera beaucoup plus fort. Il est judicieux de ne pas activer la pondération lorsqu'on a imposé un temps/coup au moteur.


Arasan Chess gère très bien les PGN multiples.
Ici, une collection de parties du GMI Nigel Short.


Une petite remarque : lorsque l'on télécharge un PGN multiple, la réglette de navigation sert d'abord à se déplacer de partie en partie, même lorsqu'une partie a déjà été sélectionnée. Pour activer la navigation dans cette partie, cliquez d'abord sur "Go" ; et continuez à cliquer sur "Go" (ou Ctrl G), pour avancer.


Changer l'apparence

Arasan Chess ne sera jamais époustouflant de beauté mais vous disposez quand même de trois jeux de pièces alternatifs et de la possibilité de changer les couleurs des cases de l'échiquier. J'aime particulièrement la possibilité d'afficher les pièces et l'échiquier en noir et blanc, ce qui rappelle les tableaux des journaux d'autrefois et les vieilles publications sur les échecs.


Arasan Chess Black & White : un petit air oldies


Paramétrer le moteur

Du côté des réglages de base, nous avons, depuis le menu "Options" > "Preferences" :

Think when Idle (pondération on/off)
Computer can resign (le moteur peut abandonner ou pas en cas de déficit important)
Hash table size (taille de la table de hachage, déterminée automatiquement par défaut mais pouvant être fixée à la taille voulue). A priori, je vous conseillerai plutôt de la laisser sur "auto". Si vous décidez de choisir vous même la taille, lisez mon article à ce sujet.
Processor cores used : pour choisir le nombre de cœurs utilisés par le moteur (attention: c'est un seul, par défaut).
Playing Strength permet de régler finement la force du moteur entre 0 (très faible) et 100 (ultra fort, valeur par défaut).
Notez qu'il y a plusieurs autres méthodes pour limiter la force d'Arasan. On peut aussi :
-Limiter la profondeur de recherche ("Options" > "Search Limits" > "Fixed depth", un choix que je déconseille généralement).
-Limiter le temps/par coup en seconde (dans ce cas, laisser de préférence "Playing Strength" à 100).


Un menu de configuration complet

Pour éviter que l'interface ne dysfonctionne sur les vieilles machines, Jon Dart a choisi de ne lui associer que la basique version 32 bits, moins performante que les différentes versions 64 bits. Mais Arasan en a tellement sous le capot que cela ne changera pas grand chose pour la plupart d'entre nous.

Pour plus de précision, référez-vous à l'aide du programme, que j'ai traduite en français.

Télécharger l'aide d'Arasan Chess en français ?



Bibliothèque d'ouvertures


Le moteur est accompagné d'une bibliothèque binaire (book.bin) riche de plus de 750.000 entrées et en grande partie réglée à la main. Cette bibliothèque de très haute qualité, finement optimisée, assure au moteur un début de partie très performant. Mais sans doute trop performant si vous l'utilisez à un niveau faible ou moyen. Malheureusement, malgré les apparences, ce n'est pas une bibliothèque Polyglot ; elle ne peut donc pas être remplacée de façon simple par une autre bibliothèque. Il y a cependant des possibilité de correction. J'y reviens un peu plus bas.
Cerise sur le gâteau, la bibliothèque "book.bin" a connaissance du classement ECO, ce qui permettra à l'interface d'identifier les ouvertures avec une grande précision.

A noter : pour ceux qui aime mettre les mains dans le cambouis, Jon Dart propose "Makebook", un utilitaire en ligne de commande permettant de créer ses propres bibliothèque d'ouvertures. Rendez-vous sur le site officiel d'Arasan pour en savoir plus (je ne l'ai pas testé, cet utilitaire dépassant le cadre de ce "en bref").


Utilisation avancée

La plupart des utilisateurs se contenteront des informations précédentes, pour faire fonctionner Arasan. Les plus exigeants trouveront dans cette section quelques informations utiles pour un usage plus poussé de l'interface et de son moteur.

Le fichier arasan.rc


Dans le répertoire d'Arasan, vous trouverez un fichier nommé "arasan.rc". C'est un outil de configuration du moteur qui vous permettra d'aller plus loin que les choix possibles depuis l'interface. Au format texte, vous pouvez l'ouvrir avec un traitement de texte quelconque ou le Wordpad (mais pas le bloc note !) et changer les valeurs qu'il contient. Pour vous aider, j'en ai réalisé une version simplifiée et en français.

Télécharger "arasan.rc" francisé ?

Pour l'utiliser, renommer le fichier "arasan.rc" du répertoire d'Arasan en "xarasan.rc". Cela vous permettra de conserver l'ancienne version anglaise. Puis coller le nouveau "aransan.rc", simplifié et francisé, dans le répertoire d'Arasan.

Voici le contenu de ce fichier :

# Fichier de configuration de l'exécution d'Arasan
#
# JOURNAL
#
# true pour conserver un fichier journal, false pour aucun journal.
log.enabled=false
# Le fichier journal s'appelle "arasan.log"
# On le trouve dans le répertoire du moteur.
#
# true pour ajouter au fichier journal (s'il existe déjà), plutôt que de l'écraser
# false pour repartir d'un journal vierge
log.append=true
#
# PARTIES JOUÉES
#
# true pour stocker toutes les parties jouées dans le fichier "games.pgn" (format PGN).
# false pour ne rien enregistrer (fonction non supporté sous l'UCI).
store_games=true
#
# LIVRE D'OUVERTURES
#
# true par défaut. Mettez cette option à false pour désactiver le livre d'ouverture
book.book_enabled=true
#
# Facteur de fréquence du livre (0-100).
# Plus la fréquence est élevée, plus le livre se concentre sur les coups fréquemment joués.
book.frequency=50
#
# Facteur de pondération du livre (0-100).
# Plus le nombre est élevé, plus le livre se concentre sur les coups
# qui ont un poids élevé, configuré manuellement.
book.weighting=100
#
# Facteur de notation du livre (0-100).
# Plus le nombre est élevé, plus le livre est orienté vers les coups
# qui ont un score élevé (basé sur l'historique des gains/pertes/nulles).
book.scoring=50
#
# Facteur aléatoire du livre (0-100).
# Plus les valeurs sont élevées, plus la sélection des coups est aléatoire.
book.random=50
#
# APPRENTISSAGE
#
# true pour activer le stockage et l'utilisation des valeurs de position, false pour le désactiver.
# (Non disponible en mode UCI)
learning.position_learning=true
#
# DÉMISSION DU MOTEUR
#
# true pour permettre à l'ordinateur d'abandonner, false si vous voulez qu'il n'abandonne jamais.
# Note : sous UCI, c'est l'interface graphique qui s'occupe de cela.
search.can_resign=true
#
# Seuil de démission (unités de 1 pion=100)
search.resign_threshold=-500
#
# PERFORMANCES DU MOTEUR
#
# Hashtable
#
# Taille de la table de hachage en octets (peut être remplacée par -H)
# Peuvent être utilisés : K pour kilo-octets, M pour méga-octets, G pour giga-octets.
# En mode UCI, ceci est généralement défini à partir de l'interface graphique.
search.hash_table_size=64M
#
# Coeurs
#
# Nombre maximal de coeurs à utiliser pendant la recherche
# En mode UCI, ceci est généralement défini à partir de l'interface graphique.
search.ncpus=1
#
# Tables de fin de parties syzygy
#
# true pour activer l'utilisation des tables-bases, false pour les désactiver.
search.use_tablebases=true
#
# Si les tables sont dans un répertoire "syzygy",  sous le répertoire où Arasan est installé,
# Il n'y a pas nécessité de préciser leur emplacement.
# Si elles sont ailleurs, il faut spécifier où elle se trouvent
# Pour moi :
search.syzygy_path
=\Jeux Rob\Echecs\Arena\TB\Syzygy
# à remplacer par le chemin de votre emplacement des tables
#
# ÉVALUATION NNUE
#
# Choisissez si l'évaluation du réseau neuronal sera utilisée (true) ou non (false)
search.useNNUE=false
#
# Emplacement du fichier du réseau NNUE, par rapport à l'emplacement de l'exécutable Arasan
search.nnueFile=arasan-d8-9-20210827.nnue


Tout ce qui suit les "#" n'est que simples commentaires. Seules les textes non-précédés de "#" sont interprétés par l'interface.

Quelques remarques rapides :

➤ Par défaut, le fichier journal n'est pas alimenté. Activez-le si vous souhaitez avoir un retour du fonctionnement du moteur.

➤ Par défaut, l'interface enregistre toutes vos parties dans un fichier "games.pgn", même si vous ne les sauvegardez pas.

➤ Par défaut, l'interface enregistre au cours des parties que vous jouez avec lui les positions qui renvoient des scores inattendus, en général très faibles ou très forts, et constitue une table qu'il pourra réutiliser plus tard.

Table de Hachage et nombre de cœurs sont définissables depuis l'interface mais vous pouvez fixer ici une valeur par défaut.

➤ Vous pouvez augmenter ou diminuer le seuil d'abandon de l'ordinateur.

➤ Si vous utilisez les tables de fin de parties, n'oubliez pas de spécifier où elles se trouvent.

➤ Par défaut, l'évaluation NNUE est désactivée, comme sur le fichier d'origine. Elle augmente fortement le Elo du moteur mais elle est encore en phase de test. Si vous souhaitez l'utiliser, il faut l'activer (true), puis copier le fichier de poids (actuellement "arasan-d8-9-20210827.nnue") dans le répertoire du moteur.

Ce fichier, bien que déjà assez costaud, sera probablement amélioré dans les prochains mois. D'où l'intérêt de regarder de temps en temps le site de Jon Dart pour voir ce qui est proposé.
Pour l'instant, il n'est pas proposé avec l'interface. Je vous invite à le télécharger sur mon espace Mega : Télécharger le fichier "arasan-d8-9-20210827.nnue" ?

➤ Réglage de la bibliothèque d'ouvertures. C'est le point le plus important. Si vous avez besoin qu'Arasan ne soit pas trop fort dans l'ouverture, une astuce consiste à abaisser successivement les facteurs de fréquence, de pondération, de poids, de notation et augmenter le facteur aléatoire. Sur une échelle de 0 à 100, ces cinq paramètres sont par défaut sur 50, sauf la prise en compte du poids qui est à 100. Mettre les quatre premiers à zéro affaiblira beaucoup le moteur en début de partie.



Arasan : le moteur

Jon Dart est depuis les années 90 l'un des plus solides piliers des échecs libres, auteur notamment du premier protocole de communication universel interface / moteur, le Chess Engine Communication Protocol, plus connu sous le nom de protocole xboard (pour Linux) et Winboard (pour Windows). Il a mise en service les premières versions d'Arasan en 1994. Ses performances étaient alors modestes mais le moteur n'a cessé d'évoluer depuis plus de 30 ans, pour rester à la pointe du progrès. Ainsi la dernière version, qui ne date que de quelques semaines, intègre déjà la technologie NNUE, à base de recherche neuronale. Ce qui lui a permis de faire un bond de force spectaculaire, pour pointer à 3368 Elo sur CCRL.  


Téléchargement et installation


On  trouve le moteur dans ses diverses versions (Windows, Linux et Mac) sur la même page que l'interface, sur le site officiel. Cliquez sur le lien "Windows engine + book only (includes 64-bit versions)". Si nécessaire, faites un clic gauche sur le lien et sélectionnez "Enregistrez le lien sous..." pour enregistrer le moteur sur votre ordinateur.
Les versions Windows et Linux sont proposées pour différents types de systèmes :  
PopCnt (arasanx-64-popcnt), AVX2 (arasanx-64-avx2), BMI2 (arasanx-64-bmi2), standard 64 bits (arasanx-64) et standard 32 bits (arasanx-32).
Si vous ne savez pas quelle version utiliser, vous avez deux possibilités :
1/ Choisir la version 64 bits standard. Elle fonctionnera presque toujours.
2/ Essayer successivement les versions popcnt, avx2 et bmi2. Si l'une d'elle fonctionne, Arasan sera un petit peu plus rapide qu'avec la version 64 bits standard.
La version 32 bits est réservée aux systèmes Windows anciens. Elle sera nettement plus lente.
Le répertoire du moteur contient également le fichier "book.bin", (la même bibliothèque d'ouvertures que l'interface), le fichier de configuration "arasan.rc" (le même que celui de l'interface), et le réseau de poids pour l'évaluation NNUE : "arasan-d8-9-20210827.nnue".


Installation dans Arena

Pour Arena : menu "Modules" > "Installer nouveau module" et allez chercher le fichier "arasanx" qui correspond à votre matériel.
Arasan est compatible Winboard et UCI mais Arena le considère comme un UCI. Conservez de préférence ce choix qui vous donnera accès à un menu de configuration détaillé et bien pratique.

Installation dans Lucas Chess

Pour Lucas Chess : menu "Outils" > "Moteurs" >, "Moteurs externes" ; bouton "Nouveau" et allez chercher le fichier "arasanx" qui correspond à votre matériel.

Installation dans Mayura Chess Board

Pour la petite interface Mayura Chess Board : menu "Engine" > "Change engine" > "Add or remove engine". Puis "Add" et allez chercher l'exécutable "arasanx" qui correspond à votre matériel.

Configuration

Le menu de configuration en mode UCI est assez complet et permettra de faire tous les réglages sans vous obliger à éditer le fichier "arasan.rc". Nous avons :




Réglages généraux


Hash : taille de la table de hachage (par défaut 64 Mo). Voir : comment régler une table de hachage.
Ponder : pondération (on / off)
Contempt : facteur de rejet de la nullité (par défaut à la valeur moyenne de zéro)
Threads : nombre de coeurs utilisés par le moteur. Par défaut un seul.
Move Overhead : délai de transmission du mouvement à l'interface. Il n'est généralement pas nécessaire de s'en soucier. Augmenter s'il arrivait à Arasan de perdre au temps.
MultiPV : le MultiPv est par défaut sur "1", donc désactivé.


Tables de fin de partie Syzygy

Use tablebases : recours aux tables de fin de parties, on / off. Par défaut, on.
SyzygyTbPath : utilisez le sélecteur de fichiers pour indiquer le chemin vers vos tables.
SyzyguUse50MoveRule : règle des 50 coups, par défaut activée
SyzygyProbeDepth : détermine la profondeur en coups à partir de laquelle les EGTB seront sondées à la place de l'évaluation interne. La valeur par défaut, 4, est valable pour une bonne machine dotée d'un disque dur SSD mais insuffisante pour une machine moyenne. Pour une machine à double cœur, 4 Go de ram et un disque dur mécanique, comme celle que j'utilise pour les échecs, 8 sera plus adapté.


Bibliothèques d'ouvertures


OwnBook : activation / désactivation de la bibliothèque interne du moteur. Par défaut, activée.
Favor frequent book moves : détermine la tendance du moteur à jouer les ouvertures les plus fréquentes. Par défaut 50 (sur 100)
Favor best book move : détermine la tendance du moteur à privilégier les ouvertures les plus performantes. Par défaut 50 (sur 100)
Favor high-weighted book move : détermine la tendance du moteur à privilégier les ouvertures de poids élevé. Par défaut 100 (sur 100)
Randomize book moves : détermine la tendance du moteur à choisir une ouverture de manière aléatoire. Par défaut 50 (sur 100)


Evaluation NNUE

Use NNUE : activer / désactiver l'évaluation NNUE. Par défaut, elle est activée.
NNUE file : indiquez ici le chemin vers le fichier de poids, s'il est différent de celui qui accompagne le moteur.


Réglage de force


Arasan étant au standard UCI 2, la force du moteur est réglable au Elo près. La plage choisie se situe entre 1000 et 2600 Elo. Ou bien on laisse le moteur fonctionner à son niveau maximal. Depuis Arena, on accède à ce réglage par le menu "Niveaux" > "Limite Elo de la force de jeu". Pour Lucas Chess ou Mayura Chess Board, le réglage de Elo se fait depuis le menu de configuration du moteur.


Réglage de Elo depuis l'interface Arena


Conclusion

Faut-il utiliser Arasan Chess ou charger le moteur dans une interface graphique telles que Arena ou Lucas Chess ? Je réponds que cela dépend de vos besoins. Le moteur Arasan est parfaitement intégré dans son interface dédiée, qui est suffisamment performante et facile à utiliser pour contenter la grande majorité des utilisateurs. La mise en route et rapide, les réglages faciles.

Depuis Arena ou une autre interface, la puissance du moteur sera mieux exploitée et l'on disposera d'une richesse de réglage plus importantes, permettant par exemple d'organiser des tournois de moteurs, d'employer Arasan comme moteur d'analyse, de le forcer à utiliser une autre bibliothèque d'ouvertures, etc.

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