PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli

⇐ retour index

IBM, le roi des échecs | Horyax

mercredi 23 octobre 2013 à 09:57
Famille Michon, le 23/10/2013 à 09:57
Aujourd'hui, un moteur d'analyse d'échecs peut tester plusieurs millions de positions par seconde alors qu'il tourne sur un bête portable. Le meilleur moteur a un Elo estimé supérieur à 3300 (pour comparaison, le meilleur Elo jamais atteint par un humain est 2872 - un Grand-Maître a un Elo supérieur à 2500).

Tout est dans la puissance brute : l'ordinateur est un monstre tactique, et cela compense ses faiblesses stratégiques. Certains entraîneurs ou joueurs estiment en effet que, sur certaines positions concrètes, certains moteurs se "trompent" et choisissent une direction globalement moins bonne. Mais puisqu'ils calculent avec exactitude plus loin, ils s'en sortent (sur n'importe quelle position, avec un rafraîchissement d'affichage d'une seconde, un moteur annonce dès le premier affichage qu'il a exploré toutes les possibilités à 6 ou 8 coups). C'est là où Kasparov a joué contre Deep Blue : sachant que, tactiquement, il était moins fort, il a misé sur des stratégies complexes et imprévisibles.

Les moteurs s'appuient aussi sur des tables d'ouverture et de finales qui leur permettent de connaître les meilleurs coups en début et fin de partie sans avoir à calculer. Ce sont un peu les rainbow tables des échecs.

En fait, toute la complexité n'est pas dans le calcul des futures positions possibles (c'est un peu chiant à coder à cause des quelques règles un peu particulières, mais pas insurmontable : je l'ai déjà fait dans deux langages de programmation), mais dans le jugement d'une position : ce jugement a suivi ses modes et ses grands courants de pensées, de Nimzovitch (le précurseur avec _Mon Système_, premier livre tentant de fournir des méthodes d'analyse et de fonctionnement en 1926), à Silman aujourd'hui.
Même si on prend une seule grille d'évaluation (disons Silman), certains critères sont évident à coder (avantage matériel), d'autres atteignables avec un peu de travail (case faibles/fortes, bons/mauvais fous), mais d'autres encore sont quasiment incompréhensibles pour un ordinateur (comment code-t-on "avoir l'initiative" ?)

Je suppose qu'au Go, le jugement d'une position est encore plus complexe. Peut-être aussi le jeu est-il moins étudié au niveau théorique.
Et là où on peut laisser tourner un moteur d'échecs plusieurs heures pour lui faire atteindre la fin de la partie et donc savoir avec exactitude quel est le meilleur coup, ce n'est toujours pas possible au Go au vu du nombre de combinaisons possibles.

Tout cela doit être passionnant à coder, et me rappelle la série d'article sur les algorithmes génétiques. Je pense qu'un moteur d'analyse est un exemple parfait d'implémentation d'un tel algorithme (et je suppose que des recherches sont portées là-dessus).

Alors, à quoi sert toute cette puissance ? Joue-t-on encore contre les moteurs d'analyse ? Dans la pratique, pas vraiment : non seulement ils surpassent tout joueur, ce qui rend le jeu pas du tout passionnant, mais en plus ils jouent des coups "inhumains", dans le sens où le coup semble parfois illogique, pas dans l'esprit du jeu.

Aujourd'hui, les moteurs sont utilisés :
- Pour faire des compétitions entre moteurs (il existe une compétition officielle ; au prix où se vendent certains moteurs, c'est très prisé) ;
- Pour analyser ses propres parties (voir ce qu'on a raté à tel ou tel moment) ;
- Pour juger une position (mon ancien entraîneur m'a, à plusieurs reprises, fait le coup : "je pense ça, ça et ça, voyons voir ce qu'en pense Fritz") ;
- Pour s'entraîner à niveau modeste : lorsque je travaille une ouverture, il m'arrive, plutôt que de lire la théorie, de démarrer un moteur et de tester les coups sur l'échiquier, pour voir ce qu'il répond et m'y adapter.

Bon... pâté...
(Permalink)