Les échecs et l'ordinateur

L'ordinateur joueur d'échecs Match Homme / Machine
La programmation Moteur
Interface graphique (GUI) Protocole (Winboard/UCI)
Les logiciels Chessbase Jouer sur Internet
Bases de parties Tablebases

L'ordinateur joueur d'échecs

[ haut de page ]

Dès les premiers pas de l'ordinateur (à partir de 1950) on tenta de le faire jouer aux échecs. Mais il faudra attendre un demi-siècle (les prévisions furent souvent trop optimistes) pour qu'il atteigne le niveau des meilleurs joueurs du monde.
Mais avant l'arrivée de l'ordinateur, chacun se doit de connaître l'incroyable aventure de l'Automate Turc

L'ordinateur devrait apprendre à bluffer !
Voici une anecdote que je trouve très intéressante :
Au cours d'un match homme-machine dans un milieu de jeu complexe, l'ordinateur donna une tour sans raison apparente et perdu logiquement la partie. Mais à l'analyse on constata que ce coup était le seul pour parer un échec et mat en huit coups ! Ce mat étant quasiment impossible à trouver pour un humain l'ordinateur aurait pu bluffer et espérer encore gagner la partie.

Les matchs homme-machine

[ haut de page ]

La confrontation entre le champion du monde des échecs et un ordinateur a toujours remporté un franc succès auprès du public. Comme si le joueur d'échecs symbolisait le dernier rempart de l'intelligence humaine face à la machine. Dans ce sens, la défaite de Garry Kasparov contre Deep Blue (l'ordinateur d'IBM) en 1997 raisonna comme si l'ordinateur était devenu plus intelligent que son concepteur humain ! Mais malheureusement (ou heureusement) il faut bien voir que la réalité est tout autre. La puissance de l'ordinateur réside avant tout dans sa puissance de calcul et le progès des algorithmes. Si pour les échecs l'ordinateur est au niveau du champion du monde depuis l'an 2000, ce n'était pas du tout le cas pour le jeu go jusqu'en 2015 où l'ordinateur ne pouvait rivaliser avec les meilleurs joueurs de go ! En dehors du fait que la recherche s'est focalisée sur le jeu d'échecs, cela s'explique simplement par l'explosion combinatoire. C'est à dire le nombre de coup possibles à envisager. Pour donner un ordre d'idée pour débuter une partie d'échecs vous disposer de 20 coups possibles, pour débuter une partie de go c'est 361 coups possibles ! En janvier 2016, un ordinateur bat pour la première un champion de go.

Les dernières rencontres
1996 : Kasparov - Deep Blue : 4-2
1997 : Kasparov - Deep Blue : 2,5 - 3,5
2002 : Kramnik - Deep Fritz : 4-4
2003 : Kasparov - Deep Junior : 3-3
2003 : Kasparov - Fritz X3D : 2-2
2006 : Kramnik - Deep Fritz : 2-4

La défaite de Garry Kasparov
Le champion du monde battu par un ordinateur. Ce fut le gros titre de l'année 1997. Mais cette victoire de l'ordinateur acquise dans le gain de la dernière partie (en 19 coups!) n'est guerre significative car Kasparov a en quelque sorte donné cette partie à l'ordinateur en jouant une ouverture perdante. Voulait-il piéger l'ordinateur ? A-t-il cédé à la pression ?

L'impact psychologique de l'ordinateur
Lors des deux derniers matchs on remarquera que Kasparov et Kramnik ont tous les deux abandonné des parties qui se sont révélées être nulles ! Kramnik a par la suite déclaré que contre un humain il n'aurait jamais abandonné tout de suite.

La programmation d'un jeu d'échecs

[ haut de page ]

La programmation d'un jeu d'échecs est tout à fait accessible à toutes personnes connaissant la programmation.
Elle peut se découper en deux parties totalement distinctes : le moteur et l'interface graphique
La partie intéressante étant bien sur la réalisation du moteur. D'autant plus qu'il existe des interfaces graphiques prêtes à l'emploi (voir Winboard, Arena).

le moteur (engine)
C'est le coeur d'un programme d'échecs. Le principe est simple : on calcule des suites de coups possibles à partir de la position courante et en suivant des critères d'évaluation, le moteur choisit le meilleur coup.
Deux approches sont possibles :
1) la force brute : c'est à dire essayer de calculer un maximum de coups possibles.
2) Optimiser la fonction d'évaluation : le programme calcule moins de coups mais il évalue mieux la position
Aujourd'hui c'est la seconde approche qui semble être privilégié. En 1997, l'ordinateur d'IBM Deep Blue calculait près de 300 millions de coups par seconde. En 2003, Deep Junior calcule 3 millions de coups par seconde (100 fois moins !) mais il est aussi fort.

l'interface graphique GUI (Graphical User Interface)
C'est toute la partie graphique du logiciel : gestion des menus, déplacements des pièces etc.
Vous pouvez bien sur écrire votre propre interface mais cela prend du temps alors qu'il en existe de nombreuses gratuites prêtes à l'emploi ! Il suffit pour cela que votre moteur implémente un protocole de communication.
Il existe aujourd'hui deux "protocoles" qui permettent de relier un moteur et une GUI.

On emploie les termes de Winboard Engine et UCI Engine.

Les interfaces graphiques

[ haut de page ]

Arena
La "nouvelle" interface gratuite qui aujourd'hui s'impose : www.playwitharena.com
Elle implémente les deux protocoles (Winboard et UCI).
De nombreuses ressources sont disponibles sur le site.

Winboard
L'incontournable interface gratuite écrite par Tim Mann
Winboard est une interface utilisable avec de nombreux moteurs (comme Crafty et GNUChess). Winboard peut également servir d'interface pour jouer en ligne sur un serveur d'échecs comme FICS (www.freechess.org)
Vous pouvez le télécharger de la page suivante : http://www.tim-mann.org/xboard.html

Les moteurs d'échecs

[ haut de page ]

Crafty
Crafty est un moteur gratuit qui peut être utilisé avec Winboard. Il est très fort (>2300 ELO !). Vous pouvez le télécharger à l'adresse suivante : ftp://ftp.cis.uab.edu/pub/hyatt

Vous trouverez également sur ce site les tables de finales de 3 à 6 pièces à télécharger.

GNU Chess
Le célèbre projet GNU Chess (compatible winboard)
www.gnu.org/software/chess/chess.html

Les logiciels d'échecs

[ haut de page ]

Rybka
C'est actuellement (en 2009) le plus fort des logiciels d'échecs. Plus d'info avec wikipédia Rybka

OWL Chess
Ce petit logiciel était fourni en exemple avec Borland C++. Il joue correctement (~1700 ?) et tous les sources sont disponibles. Il est écrit en langage C.
Télécharger OWL Chess : owlchess.zip (215 KB)

Jester
C'est une application écrite en Java. Vous pouvez jouer en ligne ou le télécharger à l'adresse suivante http://www.ludochess.com
Il joue bien (> 2000 ELO) et possède de nombreuses options de jeux.
Remarque : ce n'est pas un freeware mais un helpware (voir sur le site).

Chessmaster
Un logiciel "grand public" avec une bonne approche pédagogique. Chessmaster

ChessTiger 2004
Logiciel d'échecs parmi les meilleurs du monde développé par le français Christophe Théron.
www.lokasoft.nl/chess_tiger_2004

Les logiciels d'échecs édités par Chessbase

[ haut de page ]

Chessbase est l'un des acteurs incontournables du monde des échecs.
Tous ces logiciels tournent avec l'interface graphique de Fritz.
Un logiciel coûte 50 euros. Les versions Deep (ex Deep Fritz) correspondent aux versions multiprocesseurs.

Fritz
Plus d'info avec wikipédia Fritz
Remarque : la version 5.32 est gratuite : télécharger (4,3 méga)
L'installation est en allemand au début mais vous pouvez ensuite sélectionner le français. Son seul inconvénient est d'être une version pleine écran.

Shredder
Plus d'info avec wikipédia Shredder

Junior
Plus d'info avec wikipédia Junior

Hiarcs
Plus d'info avec wikipédia HIARCS
Programme écrit par Mark Uniacke (Angleterre)
HIARCS signifie "Higher Intelligence Auto Response Chess System"

Jouer sur internet

[ haut de page ]

Avant Internet, seul votre ordinateur était disponible 24h/24h pour jouer une partie. Mais si pour progresser l'ordinateur est certainement un bon moyen, les échecs sont avant tout la confrontation de deux esprits.
Avec Internet vous avez maintenant des milliers de personnes (de tous les niveaux) prêtes à jouer avec vous. Et en plus c'est gratuit et facile. Vous pouvez jouer en temps réel mais également avec des formules en temps différé.

Les tables de finales (tablebase)

[ haut de page ]

Principe : ces tables permettent de connaître pour une position donnée s'il existe un gain ou non. Le logiciel ne fait donc plus aucun calcul et affiche instantanément le résultat : mat en 63 coups par exemple !
Ces tables existent pour toutes les finales de 3,4,5 et 6 pièces.
Le nommage du fichier décrit explicitement le type de finale (initiales des pièces en anglais). Il existe un fichier pour chaque couleur (.nbw pour les blancs, .nbb pour les noirs) (ex le fichier kbnk.bnw contiendra la finale de quatre pièce Roi+Fou+Cavalier blancs contre Roi noir). Ces tables sont souvent très volumineuses et sont stockées sous un format compressé. (extension .emd)
Article détaillé sur le site du fou numérique

Ces tables de finales sont maintenant disponibles sur DVD.

Les bases de données en ligne

[ haut de page ]

Sur Internet sont accessibles des bases de données contenant plus d'un million de parties ! Vous pouvez effectuer une recherche à partir d'une position donnée. Néanmoins attention, car certaines parties ne sont pas forcément dignes d'intérêt...
Online database de Chessbase
www.chesslab.com/PositionSearch.html