Stockfish

Schachprogramm, Fork von Glaurung

Stockfish (englisch für Stockfisch) ist ein freies Schachprogramm, das von Tord Romstad, Joona Kiiski und Marco Costalba und einer großen Entwicklergemeinde entwickelt wird und unter der GNU General Public License steht.

Stockfish

Basisdaten

Entwickler Tord Romstad, Marco Costalba, Joona Kiiski, Gary Linscott und Entwicklergemeinde
Erscheinungsjahr 2. November 2008
Aktuelle Version 17
(6. September 2024)
Betriebssystem portabel, u. a. Microsoft Windows, GNU/Linux, Android, macOS, iOS
Programmier­sprache C++
Kategorie Computerschach
Lizenz GNU GPLv3+
www.stockfishchess.org

Stockfish zählt seit mehreren Jahren zu den besten Schach-Engines der Welt,[1][2][3] hat seit 2020 alle Hauptveranstaltungen der Top Chess Engine Championship (TCEC) und der Chess.com Computer Chess Championship (CCC) gewonnen und ist, mit einer geschätzten Elo-Zahl von 3634 (Stand Februar 2024), die stärkste CPU-Schach-Engine der Welt.[4]

Beschreibung

Bearbeiten

Die aktuelle Version 17, veröffentlicht am 6. September 2024, ist in kompilierten Versionen für Windows, Linux und macOS (ab Version 10.11 El Capitan) verfügbar, für Apple iOS liegt Version 2.13.0 vor. Eine Umsetzung für mobile Geräte mit dem Betriebssystem Android existiert in Form einer installierbaren Schach-Engine – also dem Programm-Modul für die Berechnung der besten Zugfolge mit Hilfe einer Bewertungsfunktion – für das kostenlose Programm Chess for Android und vergleichbare Programme, mit denen die Verwendung verschiedener Engines möglich ist. Für iOS steht die kostenfreie Implementierung SmallFish Chess zur Verfügung. Ebenso kann Stockfish mithilfe des kostenpflichtigen Programms pbchess auf E-Book-Readern der Marken Kindle, Kobo und PocketBook genutzt werden.

Das Programm verwendet das UCI-Protokoll und kann daher unter verschiedenen Schach-Frontends betrieben werden. Es kann in Mehrprozessorsystemen beziehungsweise in Rechnern mit Mehrkernprozessoren bis zu 512 Prozessorkerne parallel nutzen, die maximale Größe der Hashtabellen beträgt 32 Terabyte. Die Weiterentwicklung des von Romstad entwickelten Programms Glaurung (letzte Version 2.2 von Dezember 2008) verwendet eine Alpha-Beta-Suche und Bitboards. Es ist in der Programmiersprache C++ geschrieben. Die Hauptversion unterstützt ab der Version 6.0 Endspieldatenbanken.[5] Andere Programmierer haben eine alternative Stockfish 2.0.1-Version[6] mit Zugriff auf Gaviota-Endspieltabellen ausgestattet, nebst weiteren Änderungen.

Derzeit wird Stockfish durch verteiltes Rechnen auf dem öffentlichen Test-Framework Fishtest getestet und im Sinne des Schemas der testgetriebenen Entwicklung auch mit dessen Hilfe weiterentwickelt. Durch die Ausrichtung als großes gemeinschaftliches Entwicklungsprojekt kann somit potenziell jeder mitwirkende Entwickler Verbesserungen in Bezug auf Teile der Software (in der Regel die Bewertungsfunktion und Aspekte dieser) schnell und direkt einbringen, sofern diese von der Testumgebung als signifikant eingestuft wurden.[7]

Im August 2020 wurde von den Entwicklern neben der traditionellen Bewertungsfunktion eine sogenannte NNUE Evaluation (efficiently updatable neural network) für Stockfish vorgestellt, die ursprünglich in einem Shōgi-Programm verwendet wurde. Dabei übernimmt ein neuronales Netz, das mit Millionen von Stellungen trainiert wurde, die Bewertung. Erste Testergebnisse zeigten eine signifikante Steigerung der Spielstärke des Programms.[8] In Stockfish 12 ist die neue Funktion erstmals integriert worden.[9] Seit Februar 2024 wird zum ersten Mal in der Version Stockfish 16.1 ein sekundäres neuronales Netzwerk, genannt Dual NNUE verwendet, das zur schnellen Bewertung leicht zu entscheidender Positionen dient. Der vorherige Parameter Use NNUE entfiel und NNUE wurde zur standardmäßig aktivierten alleinigen Bewertungsfunktion.[10]

Ein Match gegen Daniel Naroditsky, der während der Partien mit dem Computerprogramm Rybka 3 analysieren konnte, gewann Stockfish im Juli 2014 mit 3,5:0,5.[11] Im August 2014 siegte Stockfish in einem Wettkampf gegen Hikaru Nakamura mit 3:1. Nakamura konnte in zwei Partien ebenfalls Rybka nutzen, in zwei weiteren Partien erhielt er eine Bauernvorgabe.[12]

2017 konnte das Programm AlphaZero gegen Stockfish 8 mit 64:36 (+28 =72 −0) gewinnen. Die Bedenkzeit betrug eine Minute pro Zug, die Programme spielten ohne Eröffnungsbibliothek und Endspieldatenbank, zehn der hundert Partien wurden veröffentlicht. AlphaZero spielte vorher Partien gegen sich selbst, wodurch AlphaZero eine Intuition für Eröffnung und Endspiel entwickelte. Das Zeitsteuerungsmodul von Stockfish für kritische Stellungen wurde durch den Zeitmodus hinfällig. Die Hardwareressourcen von AlphaZero waren um einiges höher als die von Stockfish. Es wurde außerdem eine ein Jahr alte Version von Stockfish verwendet.[13][14]

Der norwegische Programmierer Steinar H. Gunderson nutzt unter dem Namen Sesse eine aktuelle Entwicklungsversion von Stockfish auf starker Hardware (20 × 2,3 GHz Haswell-EP) für die Live-Analyse der Partien von Magnus Carlsen.[15]

Spielstärke

Bearbeiten

Stockfish führt 2021 die meisten Ranglisten im Computerschach an, beispielsweise die Computer Chess Rating Lists (CCRL). Dort ist die Elo-Zahl von Stockfish 14 um mehr als 50 höher als die des zweitplatzierten Komodo.[16][17][18] Neben der stabilen Hauptversion stehen auch aktuelle Entwicklungsversionen zum Download bereit, die in der Regel noch etwas mehr Spielstärke aufweisen als die jeweilige Hauptversion.

Bearbeiten

Einzelnachweise

Bearbeiten
  1. Steven Strogatz: One Giant Step for a Chess-Playing Machine. In: The New York Times. 26. Dezember 2018, ISSN 0362-4331 (nytimes.com [abgerufen am 8. Februar 2024]).
  2. Samuel Gibbs: AlphaZero AI beats champion chess program after teaching itself in four hours. In: The Guardian. 7. Dezember 2017, ISSN 0261-3077 (theguardian.com [abgerufen am 8. Februar 2024]).
  3. Condé Nast: Why AI Chess Bots Are Virtually Unbeatable (ft. GothamChess). In: Wired. 12. August 2023, abgerufen am 8. Februar 2024 (amerikanisches Englisch).
  4. CCRL - Index. In: computerchess. Abgerufen am 8. Februar 2024.
  5. Stockfish 6 Announcement. stockfishchess.org, abgerufen am 20. Februar 2015.
  6. Stockfish_PA_GTB (Sourcecode)
  7. Stockfish Testing. 13. Februar 2013, abgerufen am 20. Oktober 2013.
  8. Introducing NNUE Evaluation, Stockfish Blog, 6. August 2020
  9. Stockfish 12. Stockfish-Blog vom 2. September 2020. Abgerufen am 25. Oktober 2021.
  10. Stockfish 16.1 (englisch), abgerufen am 27. Februar 2024.
  11. Can a GM and Rybka beat Stockfish?, Chess.com, 8. August 2014.
  12. Stockfish Outlasts "Rybkamura", Chess.com, 24. August 2014.
  13. Künstliche Intelligenz schlägt besten Schachcomputer der Welt (6. Dezember 2017)
  14. Peter Doggers (PeterDoggers): AlphaZero: Reaktionen von Top GMs und Stockfish Programmierern – Chess.com. In: Chess.com. (chess.com [abgerufen am 28. Dezember 2017]).
  15. sesse.net, abgerufen am 29. April 2019.
  16. CCRL 40/40 Rating List — All engines (best versions only). computerchess.org.uk, abgerufen am 12. März 2021.
  17. CEGT Best Versions. cegt.net, abgerufen am 12. März 2021.
  18. CCRL 40/4 Rating List. CCRL, abgerufen am 12. März 2021.