# Stockfish

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 zählt seit vielen Jahren zu den besten Schach-Engines der Welt, 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 3643 (Stand Januar 2025), die stärkste CPU-Schach-Engine der Welt.

## Beschreibung

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. Andere Programmierer haben eine alternative Stockfish 2.0.1-Version 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.
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. In Stockfish 12 wurde die neue Funktion erstmals integriert. 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, mit dem wahlweise die „klassische“ Bewertung oder das neue NNUE aktiviert werden konnte, entfiel und NNUE wurde zur alleinigen Bewertungsfunktion.

## Matches

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. 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.
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.
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.

## Spielstärke

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. 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.