Stockfish (chess)
200px | |
Developer(s) | Tord Romstad Marco Costalba Joona Kiiski[1] |
---|---|
Initial release | November 2, 2008 |
Stable release | 7 / January 2, 2016 |
Written in | C++ |
Operating system | Microsoft Windows Mac OS X Linux iOS Android |
Type | Chess engine |
License | GNU GPLv3[1] |
Website | www |
Stockfish is an open source[2] UCI chess engine, available for various desktop and mobile platforms. It is developed by Tord Romstad, Marco Costalba and Joona Kiiski, with many contributions from a community of open source developers.
Stockfish is consistently ranked first or near the top of most chess engine rating lists and is the strongest open source chess engine in the world.[3][4][5] It won the unofficial world computer chess championships in 2013 and was a runner-up in 2014 and 2015. It is derived from Glaurung, an open source engine by Romstad.
Contents
Features
Stockfish can use up to 128 CPU cores in multiprocessor systems. The maximum size of its transposition table is 1 TB. Stockfish implements an advanced alpha-beta search and uses bitboards. Compared to other engines, it is characterized by its great search depth, due in part to more aggressive pruning and late move reductions.[6][7]
Stockfish supports Chess960, which is one of the features that was inherited from Glaurung. The Syzygy tablebase support, previously available in a fork maintained by Ronald de Man, was integrated into Stockfish in 2014.[8]
History
The program originated from Glaurung, an open source chess engine created by Romstad and first released in 2004. Four years later, Costalba, inspired by the strong open source engine decided to fork the project. He named it Stockfish because it was "produced in Norway and cooked in Italy" (Costalba is an Italian, Romstad is a Norwegian). The first version, Stockfish 1.0 was released in November 2008.[1][9] For a while, new ideas and code changes were transferred between the two programs in both directions, until Romstad decided to discontinue Glaurung in favor of Stockfish, which was the more advanced engine at the time.[10] The last Glaurung version 2.2 was released in December 2008.
Around 2011, Romstad decided to abandon his involvement with Stockfish and preferred to spend his time on his new iOS chess app.
On 18 June 2014 Marco Costalba announced that he had "decided to step down as Stockfish maintainer" and asked that the community create a fork of the current version and continue its development.[11] An official repository, managed by a volunteer group of core Stockfish developers, was created soon after and currently manages the development of the project.[12]
Fishtest
Since 2013, Stockfish is being developed using a distributed testing framework named Fishtest, where volunteers are able to donate CPU time for testing improvements to the program.[13][14][15]
Changes to game-playing code are accepted or rejected based on results of playing of tens of thousands of games on the framework against an older version of the program, using sequential probability ratio testing. Tests on the framework are verified using the chi-squared test, and only if the resulting p-value is not statistically significant, the test is deemed reliable.
As of January 2016[update], the framework has used a total of more than 360 years of CPU time to play more than 240 million chess games.[16] After the inception of Fishtest, Stockfish incurred an explosive growth of 120 Elo points in just 12 months, propelling it to the top of all major rating lists.[17][18]
Competition results
Participation in TCEC
In 2013 Stockfish finished runner-up at both TCEC Seasons 4 and 5, with Superfinal scores of 23–25 first against Houdini 3 and later against Komodo 1142. Season 5 was notable for the winning Komodo team as they accepted the award posthumously for the program's creator Don Dailey, who succumbed to an illness during the final stage of the event. In his honor, the version of Stockfish that was released shortly after that season was named "Stockfish DD".[19]
On 30 May 2014, Stockfish 170514 (a development version of Stockfish 5 with tablebase support) convincingly won TCEC Season 6, scoring 35.5-28.5 against Komodo 7x in the Superfinal.[20] Stockfish 5 was released the following day.[21] In TCEC Season 7, Stockfish again made the Superfinal, but lost it to Komodo with the score of 30.5-33.5.[20] In TCEC Season 8, despite losses on time caused by buggy code, Stockfish nevertheless qualified once more for the Superfinal, but lost the ensuing 100-game match 46.5-53.5 to Komodo.[20]
Stockfish versus Nakamura
Stockfish's strength relative to the best human chess players was most apparent in a handicap match with grand-master Hikaru Nakamura (2798-rated) in August 2014. In the first two games of the match, Nakamura had the assistance of an older version of Rybka, and in the next two games, he received White with pawn odds but no assistance. Nakamura was the world's fifth-best human chess player at the time of the match, while Stockfish was denied use of its opening book as well as endgame tablebase. Stockfish won each half of the match 1.5–0.5. Both of Stockfish's wins arose from positions in which Nakamura, as is typical of his playing style, pressed for a win instead of acquiescing to a draw.[22]
Platforms
Release versions and development versions are available as C++ source code, and as precompiled versions for Microsoft Windows, Mac OS X, Linux 32-bit/64-bit and Android.
Stockfish has been a very popular engine for various platforms. On the Desktop, it is the default chess engine bundled with the Internet Chess Club interface programs BlitzIn and Dasher. On the mobile platform, it has been bundled with the Stockfish app, SmallFish and Droidfish.
References
- ↑ 1.0 1.1 1.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 20.0 20.1 20.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.chess.com/news/stockfish-outlasts-nakamura-3634
Further reading
- Interview with Tord Romstad (Norway), Joona Kiiski (Finland) and Marco Costalba (Italy), programmers of Stockfish
External links
<templatestyles src="Div col/styles.css"/>