Stockfish (programme d'échecs)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Page d'aide sur l'homonymie Pour l’article homonyme, voir Stockfish.

Stockfish est un programme d'échecs open source développé par Tord Romstad, Marco Costalba, Joona Kiiski et Gary Linscott. Il est distribué gratuitement sous la licence publique générale GNU version 3 ou ultérieure. Le nom « Stockfish » fait référence au commerce du stockfish de Scandinavie en Italie. C'est aussi une allusion au « petit poisson » Rybka[1].

Marco Costalba a écrit le programme en s'inspirant de Glaurung de Tord Romstad, dont le nom est un hommage au dragon de J. R. R. Tolkien. Tord Romstad avait auparavant développé un programme dont le nom fait aussi référence à l'univers de Tolkien, Gothmog. Il avait également publié le programme Viper, l'un des premiers programmes multiprocesseur en open source.

Historique[modifier | modifier le code]

Stockfish provient de Glaurung, un moteur de jeu d'échecs open source créé par Tord Romstad et sorti en 2004. Marco Costalba a créé Stockfish 1.0 en novembre 2008 en reprenant la version 2.1 de Glaurung en corrigeant quelques bugs et en incluant des améliorations. Pendant quelque temps, les nouvelles idées et les changements de code ont été échangés entre les deux programmes, jusqu'à ce que Romstad décide d'arrêter Glaurung en faveur de Stockfish, qui est alors la version de moteur la plus avancée. La dernière version de Glaurung date de décembre 2008.[réf. souhaitée]

Au 30 décembre 2010, Stockfish est classé deuxième pour sa force de jeu parmi les programmes testés par le site Computer Chess Rating Lists[2](CCRL), avec un Classement Elo de 3223 contre 3262 pour Rybka, 3182 pour Naum et 3180 pour Critter. On rappelle qu'aucun joueur humain n'a dépassé 2900 dans ce classement Elo[réf. souhaitée]

En 2011, Romstad ne s'implique plus dans Stockfish, préférant passer du temps sur une application d'échecs pour iOS.

En février 2013, Gary Linscott crée une plateforme de développement en ligne, nommée Fishtest, permettant à quiconque de proposer et de tester des améliorations pour Stockfish afin d'accélérer son développement.[réf. souhaitée]

En mai 2014, Stockfish 5 prend la tête du classement Computer Chess Rating Lists avec 3369 et Houdini 4 est second avec 3336.[réf. souhaitée]

Le 30 mai 2014, Stockfish remporte la super-finale du tournoi Thoresen Chess Engines Competition (TCEC) saison 6 contre Komodo 7x (+13 =45 -6, sur le score 35½ - 28½)[3].

Le 18 juin 2014, Marco Costalba annonce qu'il réduit son implication dans le développement de Stockfish[4] et demande à la communauté de créer une branche pour la version actuelle et de continuer son développement. Un répertoire officiel, dirigé par un groupe restreint de développeurs de Stockfish, est créé peu après et gère le développement du projet depuis ce jour[5].

Le 28 janvier 2015, la 6e version de Stockfish lui permet de reprendre la première position devant Komodo 8.[réf. souhaitée]

Caractéristiques[modifier | modifier le code]

Stockfish peut utiliser jusqu'à 128 cœurs au sein d'un système multiprocesseur. La taille maximale de la table de transposition (en) est de 1 téraoctet. Stockfish implémente une version avancée de la recherche alpha-beta et des bitboards. Comparés à d'autres moteurs, le programme est caractérisé par sa profondeur de jeu importante, en partie due à un élagage et des réductions de mouvements tardives agressives.[réf. souhaitée]

Le programme supporte le Chess960, ce qui est une caractéristique héritée de Glaurung, mode dans lequel il est considéré comme la référence[6]. Le module intègre nativement les tables de finales de 6 pièces depuis la version 6 grâce à la table de finale Syzygy Endgame Tablebases.

Force de jeu[modifier | modifier le code]

2017-fr.wp-orange-source.svg
Cette section ne cite pas suffisamment ses sources (novembre 2014)
Pour l'améliorer, ajoutez des références vérifiables [comment faire ?] ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Ce programme est libre et gratuit et est le meilleur logiciel d'échecs non commercial au monde depuis mai 2014. Sur l'ensemble des logiciels, il est considéré comme un des meilleurs avec Komodo 9.3 et Houdini 4[7],[8],[9] .

Stockfish descend plus vite et plus profondément dans son arbre d'analyse que la plupart des autres programmes[10] , ce qui le rend fort tant en tactique (surtout sur les poussées de pions), qu'en finale où il peut utiliser ses tables de finales[11].

Résultats en compétition[modifier | modifier le code]

Article connexe : Top Chess Engine Championship.

En 2013, Stockfish termine parmi les finalistes des saisons 4 et 5 du Top Chess Engine Championship (TCEC), avec un score de 23 contre 25 face à Houdini 3 en finale et plus tard contre Komodo 1142. La saison 5 est remarquable par la victoire de l'équipe de Komodo, dans le sens où elle accepte la récompense à titre posthume pour le créateur du programme, Don Dailey, qui succombe à une maladie durant la dernière période de l'évènement. En son honneur, une version de Stockfish sort, la « Stockfish DD »[12].

Le , Stockfish remporte la saison 9 du TCEC en battant Houdini 54,5 à 45,5. Il termine à la troisième place lors de la saison 10 du TCEC, derrière Houdini 6.02 et Komodo 1959 et gagne le tournoi rapide TCEC saison 10 devant Houdini.[réf. souhaitée]

De janvier à novembre 2018, il remporte successivement les super finales des saisons 11, 12 et 13, respectivement contre Houdini avec un score de 59-41, contre Komodo avec un score écrasant de 60-40 en saison 12 et 55-45 à nouveau contre Komodo en saison 13.

Match Stockfish vs AlphaZero[modifier | modifier le code]

Le , l'intelligence artificielle AlphaZero de DeepMind bat Stockfish 8 dans un match en 100 parties sur le score de 64-36 (25 parties gagnées avec les blancs, 3 avec les noirs, 72 nulles)[13] sans aucune défaite, ce qui correspond à 100 points Elo de différence, AlphaZero traitant environ 80 000 positions par seconde, par rapport aux 70 millions de Stockfish 8.

Lors de son apprentissage du jeu, AlphaZero (qui ne connaissait que les règles de base des échecs) aurait joué 44 millions de parties contre lui-même. Pour le match préparatoire, Alphazero a joué 1 200 parties de 1 seconde par coup chacun face à une version de Stockfish.

AlphaZero utilise des réseaux neuronaux et un algorithme d'apprentissage par renforcement de type Monte-Carlo, contrairement à Stockfish qui utilise une recherche alpha-bêta performante qui développe un vaste arbre de recherche. AlphaZero a utilisé 5000 TPUs de première génération pour générer les parties jouées contre lui-même, et 64 TPU de deuxième génération pour former les réseaux de neurones. AlphaZero (avec 4TPU pour le match) a dépassé les performances de Stockfish après seulement 4 heures d'apprentissage. De son côté, Stockfish utilisait 64 threads et 1GB de hash size (table de transposition (en)).

Stockfish aurait cependant été désavantagé par la cadence (1 min/coup) et la puissance de calcul de la machine sur laquelle il tournait, bien que la plupart des grands-maîtres estiment que les coups d’AlphaZero montraient une supériorité qualitative dans le jugement positionnel[14],[15]. Stockfish n'eut également pas accès à sa bibliothèque d'ouvertures ni aux tables de finales, ce qui relativise (mais n'annule pas) la performance d'AlphaZero.

Fishtest[modifier | modifier le code]

Depuis 2013, Stockfish est développé en utilisant un framework de tests distribué appelé Fishtest[16]. Des volontaires peuvent ainsi consacrer du temps machine pour tester les modifications apportées au programme. Les changements sont acceptés ou rejetés selon les résultats récoltés après la simulation de centaines de milliers de parties jouées à l'aide du framework contre une ancienne version du programme. Environ 700 testeurs participent au projet[17].

En octobre 2015, Fishtest comptabilisait plus de 320 années de temps de calcul avec plus de 200 millions de parties jouées. Après l'arrivée de Fishtest, Stockfish a augmenté son niveau de 120 points Elo en seulement 12 mois ce qui l'a aidé à se placer parmi les meilleurs programmes d'échecs du marché.[réf. souhaitée]

Plateformes[modifier | modifier le code]

DroidFish est un programme d'échecs libre pour Android basé sur Stockfish.

Les versions stables et de développement sont disponibles en code source C++ et compilées pour Microsoft Windows, Mac OS X et Linux dans les variantes 32 bits et 64 bits. DroidFish est la version Android de Stockfish, tandis que SmallFish est la version iOS du programme.

Versions[modifier | modifier le code]

  • Stockfish 1 :
  • Stockfish 2 :
  • Stockfish 3 :
  • Stockfish 4 :
  • Stockfish DD :
  • Stockfish 5 :
  • Stockfish 6 :
  • Stockfish 7 :
  • Stockfish 8 :
  • Stockfish 9 :
  • Stockfish 10 :

Notes et références[modifier | modifier le code]

  1. (en) « Why Stockfish? It’s a fish :) It is produced in Norway and cooked in Italy. » Release notes for Stockfish 1.0 sur le blog de Stockfish, le 2 novembre 2008.
  2. CCRL 40/40.
  3. (en) « Stockfish is the new TCEC Grand Champion », sur Chessdom.com
  4. « Google Groups »
  5. Organisation du nouveau répertoire
  6. classement CCRL 40/4 en FRC
  7. Classement CCRL 40/40
  8. « IPON-Rating-List »
  9. CEGT 4/40
  10. voir Les Parties notables : Stockfish vs Houdini, TCEC S2, Stage 4, 6.3, 1–0, Houdini vs Stockfish, TCEC S2, Stage 3, 17.4, 0–1, Komodo vs Stockfish, TCEC S6, Superfinal, 4, 0-1
  11. en:Thoresen Chess Engines Competition
  12. (en) Release notes for Stockfish DD sur le blog de Stockfish, le 29 novembre 2013.
  13. (en) David Silver, Thomas Hubert, Julian Schrittwieser et Ioannis Antonoglou, « Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm », arXiv:1712.01815 [cs],‎ (lire en ligne)
  14. (en) Peter Doggers, « AlphaZero: Reactions From Top GM, Stockfish Author », sur Chess.com,
  15. (en) « How is Alpha Zero "more human"? », sur chess.stackexchange.com,
  16. « Stockfish Testing Framework »
  17. Testing Framework

Liens externes[modifier | modifier le code]