Stockfish - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Stockfish
Le plus fort moteur d'échecs du monde




Stockfish est actuellement (exception faite de AlphaChess Zero, logiciel expérimental) le plus fort moteur d'échecs au monde, libre ou commercial. Plus de 3500 Elo ! Ca en jette !
Dire qu'il a un jeu humain serait sans doute exagéré. Mais ce champion, beaucoup plus fort que les meilleurs humains, est néanmoins le plus équilibré des moteurs tactiques. Utile moins comme adversaire que comme moteur d'analyse et de conseils pour Lucas Chess, Scid vs PC ou Arena.  



J'aurais été ingrat de ne pas placer Stockfish dans cette sélection - bien qu'il ne soit pas du tout le genre de moteur que j'affectionne. Performant, ultra-fort, largement paramétrable, bien documenté…   Il faut reconnaître qu'il est bien utile. Les moteurs tactiques sont à priori moins bons que les moteurs positionnels pour l'analyse mais Stockfish est hors normes. Il excelle dans tous les domaines, y compris dans la connaissance des positions.
En tant que joueur, il ne s'adresse clairement pas aux débutants ou aux joueurs occasionnels, pour qui il est définitivement trop fort. Mais les joueurs moyens pourront avantageusement en tirer profit en limitant fortement son niveau. Il est possible, depuis le menu de configuration, de limiter sa force en abaissant le niveau "Skill level". Par défaut il est au maxi, à 20. Une autre méthode sera, depuis l'interface qui l'accueille, de réduire son temps de réflexion par coup. Mais même en une seconde, Stockfish aura encore le temps d'explorer l'arborescence en profondeur et de prévoir par exemple un mat en 8 coups !*

Sa polyvalence, sa puissance et sa rapidité l'impose comme LE moteur pour l'analyse et le conseil. Un rôle que je lui fait partager toutefois avec Komodo.


Il joue comme... Garry Kasparov

Stockfish est un moteur tactique-offensif, qui calcule très profondément et se révèle capable d'envisager des sacrifices offensifs. Son style de jeu est proche de celui de Garry Kasparov.




Téléchargement et installation


On trouve le moteur sur le site officiel :
Télécharger Stockfish ?
Il existe en version Windows, MacOs, Androïd et Linux


PopCnt, Bmi2

Dans le dossier de la version Windows de Stockfish se trouve quatre exécutables différents:

"stockfish_10_x64_popcnt.exe", "stockfish_10_x64_bmi2.exe", "stockfish_10_x64.exe" et "stockfish_10_x32.exe".

Le dernier est réservé aux machines, généralement âgées, dont le système est en 32 bits. Les deux premiers sont des versions modifiées pour tirer partie des jeux d'instructions PopCnt et Bmi2. Laquelle devez-vous installer ? Si vous ne savez pas, ce n'est pas grave, essayez-les tous un par par un en commençant par la version Bmi2, la plus puissante. Si ca plante, changez pour la version PopCnt. Et enfin pour la version normale si les deux premiers ont échoué.

Remarques : si vos processeurs ne prennent pas en charge Bmi2 ou PopCnt, Stockfish ne fonctionnera pas du tout.
Le gain en vitesse avec la version Bmi2 ou la version PopCnt est supérieur à 15% par rapport à la version normale. C'est à ne pas négliger.
Quant à la version 32 bits elle est beaucoup plus lente.

Installation dans Arena : créez un dossier "Stockfish" dans le répertoire où vous stockez vos moteurs et placez-y les exécutables ainsi que les fichiers ".travis.yml" et "appveyor.yml", Les dossiers "Src" et "Tests" contiennent les sources du moteur. Vous n'en avez pas besoin.
Lancez Arena, puis menu "Modules" > "Installer nouveau module" et allez chercher le fichier "stockfish_10_x64_bmi2.exe" ou l'un des trois autres.

Installation dans Lucas Chess : Stockfish est déjà l'un des moteurs internes de Lucas Chess. Comme toujours sans possibilité d'accès au module de configuration. Vous pouvez cependant le réinstaller comme moteur externe : menu "Outils" > "Moteurs" > "Moteurs externes" ; bouton "Nouveau" et allez cherchez le bon exécutable.

* je l'ai vu....


Configuration

Pas mal de chose dans ce menu…



Debug log file : si vous voulez avoir un retour du fonctionnement du moteur, créez avec le bloc-notes de Windows un fichier "logfile.txt" et utilisez le sélecteur de fichier pour y conduire le moteur.

Minimum thinking time, Slow mover, Nodestine, Move overhead :
je vous propose de ne pas modifier ces réglages qui ne concernent que ceux qui préparent une bête à concours pour un tournoi de moteurs.

Analysis comtempt : en mode analyse il s'agit de savoir si Stockfish doit suivre les deux joueurs (both) ou bien seulement les blancs (White) ou seulement les noirs (Black). Sachant que l'analyse est un lourd travail qui sollicite processeurs et mémoire.

Threads : indiquez ici le nombre de coeur physique de votre ordinateur. C'est important si vous utilisez Stockfish pour l'analyse ou le conseil. Il sera beaucoup plus rapide s'il utilise deux coeurs au lieu d'un.

Hash : taille de la table de hachage. La valeur par défaut, 16 Mo, est ridiculement faible pour un moteur tactique utilisé à pleine puissance pour l'analyse. Choisissez au minimum 128 Mo. Si vous pouvez passer à 256 c'est mieux.

Ponder (pondération) : réflexion sur temps adverse. Mieux vaut la laisser "off". Stockfish est déjà bien assez fort. Par ailleurs, inutile si le moteur est utilisé pour l'analyse.

MultiPv : si vous utilisez Stockfish comme conseil ou pour l'analyse, il est intéressant de lui donner une ou deux autres pistes à explorer. Le multiPv ne consomme pas beaucoup de ressources supplémentaires.

Skill level :
vous pouvez choisir un niveau de force entre 0 et 20. Voilà une instruction qu'on voudrait voir plus souvent. Mais attention de ne pas oublier que vous avez abaissé le niveau de Stockfish !

UCI_Chess 960 :
cochez si vous voulez que Stockfish joue à cette variante des échecs.

Le reste concerne la gestion des tables de finales Syzygy
(voir cette page).
Si vous avez ces tables, utilisez le sélecteur de fichiers de SyzygyPath pour lui indiquer le chemin de leur emplacement.


SyzygyProbeDepth détermine la profondeur en 1/2 coups à partir de laquelle les EGTB seront sondées à la place de l'évaluation interne. La valeur par défaut, "1", sera tout à fait inadaptée à la plupart des  utilisateurs. Elle signifie en effet que le recours aux tables de finales se fera sans aucune restriction. Or, si vous avez 2 coeurs, 4 Go de mémoire et un disque dur mécanique - ce qui est le cas de la machine avec laquelle je teste tous les programmes d'échecs - au lieu d'améliorer le jeu du moteur le recours systématique aux EGTB va le dégrader. En effet les accès disque et la décompression des données ralentissent sensiblement la réflexion de Stockfish.
Mes propositions en fonction du matériel, "à la hache", basées  sur des discussions de forums:

➤Portable basique : Syzygy Probe Depth entre 20 et 25

➤Portable moyen : Syzygy Probe Depth entre 15 et 20

➤Machine de bureau à 2 coeurs, 4 go de ram et disque dur mécanique: Syzygy Probe Depth entre 10 et 15

➤Machine de bureau à 4 coeurs, 4 go de ram et disque dur mécanique récent: Syzygy Probe Depth entre 5 et 10

➤Machine de bureau de 4 à 6 coeurs, de 4 à 8 go de ram et disque dur SSD: Syzygy Probe Depth entre 1 et 5.

SyzygyProbeLimit détermine le nombre de pièces sur l'échiquier à partir duquel Stockfish commence à sonder les tables Syzygy. Par défaut, il est défini sur 6. Comme vous n'avez probablement que les tables Syzygy à 5 pièces, ramener le à 5. Vous pouvez le laisser à cette valeur si vous avez au moins 4 Go de ram. Si vous manquez de ram, descendez à 4.
Par contre si vous avez vraiment les tables à 6 pièces et seulement 4 Go de ram ou moins, vous aurez intérêt à décharger la ram au maximum, augmenter la valeur de SyzygyProbeDepth et éventuellement d'abaisser SyzygyProbeLimit à 5. Car sonder en permanence les énormes tables à 6 pièces va littéralement dévorer votre mémoire vive !

Syzygy50MoveRule : cocher pour imposer au moteur la "règle des 50 coups"



Des paramètres manquent ?

Si certains paramètres importants, tels que "Threads" ou "Hash" sont absents du menu de configuration, c'est certainement parce qu'Arena est paramétré pour attribuer une valeur standard à tous les moteurs UCI. Pour vérifier : menu "Modules" > "Gérer", onglet "Détails", puis onglet  "UCI". Si les paramètres concernant l'abandon (comtempt), l'utilisation des bibliothèques d'ouvertures, des tables de finales, des tables de hachages ou des coeurs CPU sont réglés et cochés ici, il est logique qu'ils n'apparaissent plus dans les menus de configuration puisqu'ils sont déjà déterminés.




Vous pouvez fixer en effet toutes ces valeurs depuis ce menu et ne plus vous en préoccuper.  Mais vous ne pourrez plus faire de réglage spécifique à un moteur. Ce n'est pas un problème pour le nombre de coeurs dont vous disposez, puisque ça ne changera jamais. C'est beaucoup moins évident pour la plupart des autres paramètres, qui dépendent beaucoup du moteur lui-même et du rôle que vous lui faites joueur. Quelques exemples :

➤Un moteur tactique comme Stockfish, dont l'évaluation recherche très profondément, à besoin de grosses tables de hachage. Komodo, moteur positionnel, peut se contenter de table de Hash bien plus modeste.
➤Si vous jouez contre Stockfish en partie blitz avec "Skill level" à "1", une table de Hash de 64 Mo sera amplement suffisante. C'est le contraire si vous utilisez Stockfish comme moteur d'analyse. Car dans ce cas il a besoin de toute sa puissance.

Il me parait donc beaucoup plus judicieux de n'utiliser qu'avec parcimonie la possibilité de fixer des réglages généraux depuis Arena.



Bibliothèque d'ouvertures

Bizarrement, Stockfish ne propose rien à ce sujet. Je vous conseille de le forcer à utiliser une de celles que compte 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 utilisez le sélecteur de fichiers pour en choisir une autre.

Si la perspective d'utiliser Stockfish comme un clone de Kasparov vous séduit, je vous conseille vivement de télécharger ici la bibliothèque "Kasparov Opening Book for Arena.abk", obtenue à partir de parties de l'ancien champion du monde.

Télécharger la biblio Kasparov pour Arena ?

Copiez le fichier dans le dossier "Books" d'Arena. Puis forcez le moteur à aller lire cette bibliothèque: "Modules" > "Gérer", onglet "Détails" puis choix de Stockfish dans la liste, onglet "Bibliothèque" et utilisez le sélecteur de fichiers pour aller chercher la bibliothèque.  

On peut obtenir à peu près la même chose avec Lucas Chess en changeant de bibliothèque au lancement d'une partie depuis l'onglet "Coups initiaux". Offrez-lui la bibliothèque Polyglot qui accompagne le profil Rodent de ce grand joueur.

Télécharger la biblio Kasparov polyglot ?

Extrayez la bibliothèque de l'archive et copiez-là dans le répertoire "Openings" de Lucas Chess.


Rob Rob, avril 2019

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