Stockfish (programme d'échecs)
Développé par | Marco Costalba (d) |
---|---|
Première version | |
Dernière version | 17 ()[1] |
Dépôt | github.com/official-stockfish/Stockfish |
Écrit en | C++ |
Système d'exploitation | Microsoft Windows, macOS, Linux, iOS et Android |
Type | Moteur d'échecs |
Licence | Licence publique générale GNU |
Site web | stockfishchess.org |
Stockfish est un moteur d'échecs libre développé principalement par Marco Costalba, Joona Kiiski, Gary Linscott, Stéphane Nicolet, Tord Romstad et Joost VandeVondele, avec également de nombreuses contributions d'une large communauté de développeurs open source[2]. Il est distribué gratuitement sous la licence publique générale GNU version 3 ou ultérieure.
Depuis les années 2010, Stockfish est régulièrement classé premier ou près du haut de la liste de la plupart des classements des moteurs d'échecs ; il est considéré comme le moteur d'échecs conventionnel de cette période le plus puissant du monde[3]. Il a notamment remporté les championnats du monde informels d'échecs informatiques au cours des saisons 6 (2014), 9 (2016), 11 (2018), 12 (2018), 13 (2018), 14 (2019), 16 (2019), 17 (2019) et 18 (2020). Il a terminé deuxième des saisons 5 (2013), 7 (2014), 8 (2015) et 15 (2019).
En , Stockfish est évalué comme possédant un classement Elo équivalent à 3 548 points, ce qui est un record mondial à cette date[4].
Le nom « Stockfish » fait référence au commerce du stockfisch (des filets de poisson séchés à l’air libre) de Scandinavie en Italie. C'est un clin d’œil du développeur italien Marco Costalba qui a écrit le programme Stockfish en s'inspirant du programme open-source « Glaurung » du suédois Tord Romstad, sorti en 2004. C'est aussi une allusion au « petit poisson » Rybka[5], un autre programme d'échecs populaire.
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 crée Stockfish 1.0 en novembre 2008, reprenant la version 2.1 de Glaurung, corrigeant quelques bugs et incluant des améliorations.[réf. souhaitée]
Pendant quelque temps, les nouvelles idées et les changements de code sont é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 , Stockfish est classé deuxième pour sa force de jeu parmi les programmes testés par le site Computer Chess Rating Lists[6](CCRL), avec un classement Elo de 3 223 points, contre 3 262 points pour Rybka, 3 182 pour Naum et 3 180 pour Critter. Pour rappel, aucun joueur humain n'est arrivé à atteindre 2 900 points au classement Elo, le record étant 2 882 points par Magnus Carlsen, l'ancien champion du monde et actuel numéro un mondial.
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 3 369 points Elo, Houdini 4 étant second avec 3 336 points.[réf. souhaitée]
Le , 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½)[7].
Le , Marco Costalba annonce qu'il réduit son implication dans le développement de Stockfish[8] 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[9].
Le , la version 6 de Stockfish lui permet de reprendre la première position du classement des programmes d'échecs devant Komodo 8.[réf. souhaitée]
En , un fork du réseau neuronal efficacement actualisable (efficiently updatable neural network (en), NNUE) introduit par des programmeurs de shogi informatiques, appelé Stockfish NNUE, est discuté par les développeurs de Stockfish[10],[11]. En juillet 2020, le site chess.com rapporte que Stockfish NNUE innove « dans le domaine des échecs informatiques en incorporant un réseau neuronal dans le moteur d'échecs Stockfish déjà incroyablement puissant »[12]. Une fusion NNUE dans Stockfish est ensuite annoncée, et des versions de développement deviennent disponibles[13],[14].
En , la version 12 de Stockfish intègre l'amélioration du réseau de neurones NNUE susmentionnée. Selon un billet posté sur le blog des développeurs de Stockfish, cette nouvelle version du programme « joue nettement plus fort que n'importe lequel de ses prédécesseurs », remportant généralement dix fois plus de parties qu'il n'en perd lorsqu'il est comparé à sa version 11[15].
Caractéristiques
[modifier | modifier le code]Stockfish peut utiliser jusqu'à 512 cœurs au sein d'un système multiprocesseur. La taille maximale de sa table de transposition (en) (hash size) est de 32 téraoctet. Stockfish implémente également 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 agressives de coups tardifs (late move reductions (en))[16].
Le programme supporte le Chess960 (une caractéristique héritée du programme Glaurung), un mode de jeu dans lequel il est considéré comme la référence[17].
Le module intègre aussi nativement les tables de finales de 6 pièces et moins depuis sa version 6 (2014), grâce à la table de finale « Syzygy endgame tablebases »[18]. Auparavant disponible dans un fork maintenu par Ronald de Man, la table Syzygy est implémentée dans Stockfish à cette date[19]. En 2018, le support pour la table Syzygy de 7 pièces ou moins a été ajouté, peu de temps après être devenu disponible.[réf. souhaitée]
Force de jeu
[modifier | modifier le code]Stockfish, programme libre et gratuit, est le meilleur logiciel d'échecs non commercial au monde depuis mai 2014. Sur l'ensemble des logiciels, il est généralement considéré comme le plus puissant des moteurs, bien que la place soit disputée par des moteurs comme Leela Chess Zero ou Komodo[20],[21],[22].
Il détient le record historique mondial de points au classement Elo, avec 3 548 points sur le benchmark CCRL 40/15 en [23].
Stockfish descend plus vite et plus profondément dans son arbre d'analyse que la plupart des autres programmes[24], ce qui le rend fort tant en tactique (surtout sur les poussées de pions) qu'en finale, où il peut alors utiliser ses tables de finales[25].
Résultats en compétition
[modifier | modifier le code]Top Chess Engine Championship
[modifier | modifier le code]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 (en), 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 »[26].
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 à , il remporte successivement les super finales des saisons 11, 12 et 13, respectivement contre Houdini (avec un score de 59-41) durant la saison 11, contre Komodo (avec un score écrasant de 60-40) durant la saison 12, et à nouveau contre Komodo (avec un score de 55-45) lors de la saison 13.[réf. souhaitée]
La saison 14 fut très serrée, Stockfish remportant la finale contre LCZero (sur le score de 50,5-49,5).[réf. souhaitée]
Match Stockfish vs Nakamura
[modifier | modifier le code]En , le grand maître américain Hikaru Nakamura joue un match en quatre parties contre la version 5 de Stockfish. Durant les deux premières parties, Nakamura a pu jouer en s'aidant d'une ancienne version de Rybka. Le but était de savoir si un joueur assisté d'un ordinateur réfléchissait mieux qu'un ordinateur seul. Durant les deux parties suivantes, Nakamura n'a pas bénéficié de l'assistance de Rybka, mais Stockfish a été pénalisé d'un handicap de un pion[27].
Le match s'est terminé sur le score de 3-1 en faveur de Stockfish, avec deux victoires et deux parties nulles (1.5-0.5 à chaque phase du match)[27].
Les deux victoires de Stockfish dans ce match sont le résultat de positions dans lesquelles Nakamura, comme c'est typique pour un joueur de son style, a insisté pour obtenir la victoire au lieu d'accepter un match nul[27].
Match Stockfish vs AlphaZero
[modifier | modifier le code]Le , AlphaZero, le programme d'intelligence artificielle de la société 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)[28] sans aucune défaite, ce qui correspond à 100 points Elo de différence.
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 et qui développe un vaste arbre de recherche. 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 son match préparatoire, il a joué 1 200 parties de 1 seconde par coup face à une version de Stockfish.
AlphaZero a utilisé 5000 TPUs (Tensor Processing Unit) 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. Avec 4 TPU pour le match, il a dépassé les performances de Stockfish après seulement 4 heures d'apprentissage. De son côté pour ce match, Stockfish fonctionnait sur un ordinateur doté d'un processeur de 64 threads et de 1 GB de hash size (table de transposition (en)). AlphaZero traitait environ 80 000 positions par seconde, par rapport aux 70 millions de Stockfish 8.
Stockfish aurait cependant été désavantagé lors du match, par la cadence de jeu (1 min/coup) ainsi que par l'inférieure puissance de calcul de la machine sur laquelle il tournait, bien que la plupart des grands maîtres humains estiment que les coups d’AlphaZero montraient une supériorité qualitative dans le jugement positionnel[29],[30]. 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.
En décembre 2018, un ensemble beaucoup plus vaste de parties, jouées avec différentes versions de Stockfish (cadences, accès ou non aux bibliothèques, etc.) a confirmé la supériorité d'AlphaZero, avec cependant une domination un peu moindre[31],[32].
Fishtest
[modifier | modifier le code]Depuis 2013, Stockfish est développé en utilisant un framework de tests distribué appelé « Fishtest »[33]. 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[34].
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 progressé de 120 points Elo en seulement 12 mois, ce qui l'a placé parmi les meilleurs programmes d'échecs du marché.[réf. souhaitée]
Il est possible de voir l'évolution du module en jouant contre la version 7 de Stockfish en 30 minutes +0.3, fonctionnant sur un ordinateur doté d'un double processeur Xeon E5-2670 à 16 cœurs[35].
Plateformes
[modifier | modifier le code]Les versions stables et de développement de Stockfish 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 :
- Stockfish 11 :
- Stockfish 12 :
- Stockfish 13 : [36]
- Stockfish 14 : [37]
- Stockfish 15 :
- Stockfish 16 : [38]
- Stockfish 16.1 : 24 février 2024
- Stockfish 17 : 6 septembre 2024
Notes et références
[modifier | modifier le code]- « https://github.com/official-stockfish/Stockfish/releases/tag/sf_17 » (consulté le )
- (en) Chess for Dummies, Hoboken, New Jersey, John Wiley & Sons, , 416 p. (ISBN 978-1-119-28003-3, OCLC 960819719, lire en ligne), p. 476.
- (en) « CCRL 40/15 », sur computerchess.org.uk, .
- (en) Computer Chess Rating Lists, « Stockfish 13 64-bit 4CPU », computerchess.org.uk.
- (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, stockfishchess.org, 2 novembre 2008.
- CCRL 40/40.
- (en) « Stockfish is the new TCEC Grand Champion », sur Chessdom.com.
- (en) « Google Groups », sur groups.google.com
- Organisation du nouveau répertoire, groups.google.com
- nodchip, « Stockfish NNUE » (consulté le )
- « SF NNUE. Issue#2728 official-stockfish », (consulté le )
- (en-US) Wilhelm Canary-Reed (the_real_greco), « Stockfish+NNUE, Strongest Chess Engine Ever, To Compete In CCCC », sur Chess.com (consulté le )
- Joost VandeVondele, « official-stockfish / Stockfish, NNUE merge », (consulté le )
- abrok.eu, « Stockfish NNUE Development Versions » (consulté le )
- (en) « Stockfish 12 », Stockfish team, blog.stockfishchess.org, 2 septembre 2020}
- Larry Kaufman, « Stockfish depth vs. others; challenge », sur talkchess.com, (consulté le )
- classement CCRL 40/4 en FRC
- (en) « Syzygy endgame tablebases », syzygy-tables.info (consulté le 19 janvier 2020).
- (en) « Stockfish development versions » [archive du ], sur abrok.eu.
- (en) « Classement CCRL 40/40 », sur computerchess.org.uk,
- « CEGT 40/4 » (consulté le )
- (en) « CEGT 5/3 », sur http://www.cegt.net (version du sur Internet Archive)
- (en) « CCRL 40/15 – Complete list », sur computerchess.org.uk
- voir Les Parties notables : Stockfish vs Houdini, Thoresen Chess Engines Competition (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
- en:Thoresen Chess Engines Competition
- (en) « Release notes for Stockfish DD », stockfishchess.org, 29 novembre 2013.
- (en) Mike Klein (MikeKlein), « Stockfish Outlasts "Rybkamura" », sur chess.com, .
- (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)
- (en) Peter Doggers, « AlphaZero: Reactions From Top GM, Stockfish Author », sur Chess.com,
- (en) « How is Alpha Zero "more human"? », sur chess.stackexchange.com,
- Analyse sur jouer-aux-echecs-en-ligne.com
- (en) Publication de DeepMind en décembre 2018
- (en) « Stockfish Testing Framework », sur tests.stockfishchess.org.
- (en) « Testing Framework », chessprogramming.wikispaces.com.
- (en) « Stockfish Development Builds », nextchessmove.com
- https://github.com/official-stockfish/Stockfish/releases/tag/sf_13
- https://github.com/official-stockfish/Stockfish/releases/tag/sf_14
- (en) « Stockfish - Open Source Chess Engine », sur Stockfish (consulté le )
Voir aussi
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en) Site officiel
- (en) Interview des programmeurs de Stockfish par le magazine Schachwelt
- (en) Stockfish sur le site ChessProgramming