SmarThink - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Moteurs

SmarThink
Boby Fischer like


Avec une force de plus de 3000 Elo, Smarthink a été durant longtemps dans la poignée des plus forts moteurs d'échecs. Il a cessé d'évoluer depuis de nombreuses années et se trouve à présent loin dans les classements. Mais il reste un moteur de grande qualité, réputé pour son style son jeu clair et classique, à forme humaine, rappelant des joueurs comme Botvinnik ou Bobby Fischer.

Plan de l'article

Intro
Style : positionnel offensif
Pour quoi faire ?
Téléchargement et installation
Configuration
Gestion de la force





L'informaticien russe Sergueï Markoff a commencé à développer SmarThink au début des années 2000. Héritier des meilleurs programmes russes d'échecs et inspiré des principes exposés par Mikhaïl Botvinnik (1), les premières versions de SmarThink ont été saluées pour leurs innovations remarquables. Le moteur bénéficiait notamment d'une recherche particulièrement efficace mettant en oeuvre pour la première fois des techniques aujourd'hui connues sous les abréviations LMR (Late Move Reduction) et NMP (Null Move Pruning)(2), et un ensemble de principes théorisés par Botvinnik lui-même formant ce que les programmeurs appellent à présent "l'extension Markoff-Botvinnik". La synthèse de toutes les techniques employées a donné à SmarThink un niveau de force très élevé mais aussi une grande qualité de jeu, avec un bel équilibre entre capacités tactiques et stratégiques. Ce n'est pas sans raison qu'il est devenu un moteur commercial, un temps diffusé par Lokasoft avec son interface Chess Partner.

(1) On a généralement oublié que l'ancien champion du monde a aussi été un pionnier de l'informatisation des échecs
(2) Utilisés par tous les moteurs algorithmiques modernes




Style : positionnel offensif


Dotée d'une recherche très sophistiquée et d'une évaluation fortement enrichie en connaissances positionnelles, SmarThink offre le style de jeu équilibré que l'on qualifierait d'universel pour un joueur humain. Botvinnik était considéré comme ayant un jeu universel ; ainsi que Bobby Fischer, Max Euwe, Bogolioubov, Keres, Spassky et bien d'autres. Cela ne signifie pas qu'ils jouent tous de la même manière mais surtout qu'ils sont bons dans tous les compartiments du jeu.
En l'occurrence, SmarThink évoque davantage la manière offensive de Bobby Fischer que la pâte positionnelle de Mikhaïl Botvinnik. De fait, le moteur produit un jeu clair et d'allure très classique, positionnel mais agressif, exerçant une forte pression sur son adversaire en évitant néanmoins les situations tactiques trop chaotiques.



Pour quoi faire ?

Comme sparring partner, SmarThink sera surtout utile aux joueurs d'un bon niveau. C'est un moteur trop fort pour les joueurs faibles ou les simples amateurs.
Il est assez fort et solide pour être employé comme moteur d'analyse. L'évaluation de ses positions est souvent moins bien notée par des moteurs plus puissants comme Stockfish et Komodo Dragon mais SmarThink proposera souvent un chemin original, notamment dans la phase d'ouvertures. Et quoi qu'il en soit, il détectera facilement vos erreurs les plus manifestes.



Téléchargement et installation

Le site officiel de SmarThink existe toujours bien que le moteur n'ait plus connu d'évolution depuis longtemps. Toutefois, le fichier téléchargeable ne contient pas la bibliothèque "book.smt" attendue par le moteur. C'est pourquoi je vous propose plutôt de télécharger Smarthink 1.98 sur mon espace Mega.

Télécharger Smarthink 1.98 ?

L'archive contient quatre versions différentes du moteur, toutes pour systèmes Windows 64 bits : 64 bits standard,  64 bits AVX et AVX 2, 64 bits SSE3. Laquelle choisir ? AVX et SSE sont des jeux d'instructions qui ne sont pas universels. Certains processeurs les utilisent, d'autres non. Ils apportent un gain en vitesse assez sensible (disons entre 10 et 20%), donc ça vaut le coup d'essayer de les faire fonctionner. Commencez avec AVX2, puis en cas d'échecs, essayez AVX1. Si aucun des deux n'est pris en charge par votre CPU, essayez ensuite SSE3. En cas d'échecs persistant, rabattez-vous sur la version 64 bits standard, la plus lente mais qui fonctionnera presque toujours.

Installation dans Arena : menu "Modules" > "Installer nouveau module" et allez chercher le bon fichier exécutable.
Installation dans Lucas Chess : menu "Options" > "Configuration des moteurs" ; onglet "Moteurs externes", bouton "Nouveau" et allez chercher le bon fichier exécutable.  Les paramètres de configuration du moteur étant visibles ici, vous pourrez dès immédiatement modifier sa configuration.  
Installation dans PyChess : menu "Éditer" > "Moteurs" puis bouton "Nouveau"... Utilisez le navigateur pour localiser le fichier exécutable et injectez-le dans l'interface avec "Ouvrir".  Le menu de gestion des moteurs s'ouvre et si vous cliquez sur "Options" vous pourrez dès à présent modifier la configuration du moteur.
Installation dans Mayura Chess Board : menu "Engine" > "Change engine" > "Add or remove engines". Cliquez sur "Add", indiquez le nom "SmarThink 198", puis allez chercher l'exécutable du moteur là où vous l'avez stocké.
Installation dans Crafty Chess Interface : menu "Moteurs" > "Ajouter nouveau moteur" et allez chercher le bon exécutable à son emplacement.


Configuration

Le menu de configuration de SmarThink ne propose que quelques choix très standards :

Hash : bizarrement, la taille de la table de hachage est fixée à 10 Mo, chiffre très faible pour un moteur de cette force. Portez là au moins à 64 Mo. 128 Mo sera encore mieux si vous utilisez le moteur à haut niveau.

Pawn hash : cache de la table de hachage pour les pions. Par défaut à 7 Mo, une valeur généralement suffisante.

SyzygyPath : indiquez ici le chemin vers les tables de finales Syzygy, si vous en disposez (Arena offre au moins les tables à trois pièces).

Opening book et OwnBook : par défaut le chemin de la bibliothèque d'ouvertures  interne est indiqué. Vous pouvez l'activer ou la désactiver en cochant ou décochant "Ownbook". Si vous la désactivez, l'interface utilisée vous permettra généralement de forcer une bibliothèque de votre choix.

Pondération : SmarThink gère la pondération et par défaut celle-ci est activée, bien que cela n'apparaisse pas dans le menu de configuration. Généralement, la pondération peut être désactivée depuis l'interface. J'y reviens plus bas.

MultiPv : le MultiPv est pris en charge. Déterminez ici le nombre de variations suivis.

Agressivity et Defensivity : ces paramètres permettent d'influer sur le style du moteur, en le rendant plus ou moins agressif ou plus ou moins défensif. Il est un peu étrange de pouvoir augmenter en même temps l'attaque et la défense.  Habituellement, une seule réglette suffit à déterminer le tempérament du moteur. Les valeurs s'échelonnent de 0 à 300. Les valeurs par défaut sont fixées à 100. Je n'ai pas testé l'effet de modifications de ces paramètres. A vous de voir.

L'accès au menu varie selon les interfaces, mais les paramètres sont strictement les mêmes.

Pour Arena, menu "Module" > "Module 1" > "Configurer".  On accède à part à la pondération : menu "Module" > "Module 1" > "Réflexion permanente" (ou Shift+Ctrl+P). Lorsque la pondération est activée, l'icône est entourée d'un filet bleu.
Pour Lucas Chess, menu "Options" > "Configuration des moteurs". Cliquez sur SmarThink et dans la partie droite de la page changez les paramètres à votre convenance.
Pour PyChess, menu "Editer" > "Moteurs", choisir le moteur dans la liste, onglet "Options".



Menu de configuration de SmarThink dans Arena

Remarques :

Si avec Arena"Hash" et "Ownbook" manquent, c'est parce qu'il est prévu un réglage général pour tous les moteurs UCI et qu'il est activé. Pour y accéder : menu "Modules" > "Gérer", onglet "Détails", puis onglet  "UCI". Si les paramètres "Biblio" et "Hashtables" sont cochés, ils n'apparaissent plus dans les menus de configuration puisqu'ils sont déjà déterminés.
Conserver les paramètres globaux d'Arena, ou bien décochez les paramètres, relancer le moteur, réaffichez le menu de configuration et régler les paramètres comme vous le jugez utile.
Mayura Chess Board Free et Crafty Chess Interface ne donnent pas accès au menu de configuration.


Gestion de la force

S'il s'agit d'utiliser le moteur comme adversaires, le problème de la réduction de force se pose nécessairement. Malheureusement, SmarThink ne met pas en œuvre l'UCI_Elo et les moyens de le réduire sont assez artisanaux. Voici ce que nous pouvons faire, en fonction de l'interface utilisée :

Avec Arena

Avec Arena désactiver d'abord la pendule puis sélectionner un contrôle de temps relativement bref - ou un temps de réflexion par coup assez bref :
➤Menu "Options" > "Pendule arrêtée" (l'icône en forme d'horloge doit être entourée d'un filet bleu. Dans ce cas, seul le moteur subit la pression du temps.
➤Menu "Niveau" > "Régler" (ou Ctrl+L),  choisir "Blitz" ou "Tournoi" puis préciser le contrôle de temps et fermer la fenêtre. Ou :
➤Menu "Niveau" > "Régler" (ou Ctrl+L) et choix "Temps par coup". Mais on ne descendra pas en dessous d'une seconde, réglage pour lequel le moteur est encore loin d'être nul. Par ailleurs, la force finalement obtenue sera variable en fonction de la puissance de la machine utilisée.
On peut également handicaper le moteur :  
➤Menu "Module" > "Module 1" > "Configurer". Régler "% Cpu" à votre convenance (les valeurs inférieures à 100 ralentissent le moteur). Là encore, la force obtenu variera fortement en fonction de la machine.

Avec Lucas Chess

Il faut d'abord commencer une partie : "Jouer" > "Jouer contre un moteur" ; cliquer sur le gros bouton du moteur courant, puis "Moteur externe" et choisir SmarThink. A partir de là, voici les options possibles :
➤Ne pas s'imposer de contrainte de temps : onglet "Temps". Si "Activer le contrôle de temps" est décoché, seul l'ordinateur subira la pression du temps. Le joueur humain pourra réfléchir tant qu'il voudra.  
➤Accepter une contrainte de temps plus favorable : depuis le même onglet "Temps", cochez "Activer le contrôle du temps" puis en dessous déterminez un contrôle de temps pour le moteur. Ensuite, indiquez à combien de minutes de jeu supplémentaire aura droit le joueur humain. Dans ce cas, le moteur se conformera aux conditions prévues initialement mais le joueur humain bénéficiera d'un bonus de temps plus ou moins important.

Avec Crafty Chess Interface

Avec Crafty Chess Interface, tout se passe dans la fenêtre "Control panel". La réglette de force n'est utilisable que par le moteur Crafty interne mais deux possibilités restent  accessibles :
➤Ne pas imposer au joueur humain la pression du temps. Il suffit de régler le contrôle de temps souhaité pour le moteur, de valider (bouton "Set") puis de cliquer sur le bouton "Go" sans avoir coché la case "On".
➤Accepter de subir la pression du temps mais en se donnant une marge supplémentaire : cocher "On",  double-cliquer sur l'horloge du joueur humain dans la fenêtre "Horloge & Statuts": une fenêtre s'ouvre. Entrez un temps sous la forme minutes:seconde. Par exemple 30:00, pour porter à 30 minutes le temps dont le joueur humain disposera.

Avec PyChess

PyChess n'offre pas un grand choix de possibilités. Nous ne pouvons que ralentir le moteur. S'assurer d'abord que SmarThink est le moteur par défaut. Si ce n'est pas le cas, ouvrir le pop-up "Adversaire" et choisir SmarThink. Ensuite, démarrer une partie : menu "Partie" > "Nouvelle partie" > "Depuis la position classique de départ" (ou Ctrl+N). Un menu s'ouvre et à partir de là, choisir un contrôle de temps et réduire la force du moteur en jouant sur la réglette de force, qui se trouve sous les joueurs. Par défaut elle est à 20 et la force du moteur sera maximale.

Avec Mayura Chess Board

Depuis le menu "Level", choisir "Time per move", "Blitz game" ou "Long game". Comme toujours, je déconseille "Fixed depth" ; "Limit engine strenght" n'est pas fonctionnel avec SmarThink. A partir de là, deux possibilités :
➤Suspendre l'horloge : bouton pause ("II") de la barre d'outils ou menu "Clock" > "Pause". L'horloge continue à fonctionner pour le moteur mais plus pour le joueur humain.
➤S'octroyer un volume de temps supplémentaire : menu "Clock" > "Set clock". On fixe ici le temps pour les blancs et pour les noirs.

Rob Rob, avril 2019 (revu en septembre 2024)


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