Chess engine: Difference between revisions
CosineKitty (talk | contribs) Grammar fixes. |
m →Pedagogical engines: open source programs can be copyrighted, that's why i changed it |
||
Line 312: | Line 312: | ||
*[http://www.codeplex.com/ChEngine/ ChEngine] (in C#). |
*[http://www.codeplex.com/ChEngine/ ChEngine] (in C#). |
||
There are also |
There are also source-available proprietary software. |
||
*[[Tom Kerrigan's Simple Chess Program|TSCP]] (in C). |
*[[Tom Kerrigan's Simple Chess Program|TSCP]] (in C). |
||
Revision as of 20:09, 20 February 2010
A chess engine is a computer program that can play the game of chess.
Interface
Most chess engines do not have their own graphical user interface (GUI) but are rather console applications that communicate with a GUI such as XBoard (Linux) and WinBoard (Windows) via a standard protocol.
Protocols
The command line interface of GNU Chess became the initial de facto standard, called the Chess Engine Communication Protocol and first supported by XBoard. When XBoard was ported to the Windows operating system as WinBoard this protocol was popularly renamed to 'WinBoard Protocol'. The WinBoard Protocol was itself upgraded and the two versions of the protocols are referred to as: 'WinBoard Protocol 1' (original version) and 'WinBoard Protocol 2' (newer version). There is another protocol, the Universal Chess Interface. Some engines support both major protocols, and each protocol has its supporters. The Winboard Protocol is more popular but many chess engine developers feel that the Universal Chess Interface is easier to implement. Some interface programs, such as Arena, support both protocols whereas others, such as WinBoard, support only one and depend on subsidiary interpretors, such as Polyglot, to translate.
Increasing strength
Chess engines increase in playing strength each year. This is partly due to the increase in processing power that enables calculations to be made to ever greater depths in a given time. In addition, programming techniques have improved enabling the engines to be more selective in the lines that they analyse and to acquire a better positional understanding.
Some chess engines use endgame tablebases to increase their playing strength during the endgame. An endgame tablebase is a database of all possible endgame positions with small groups of material. Each position is conclusively determined as a win, loss, or draw for the player whose turn it is to move, and the number of moves to the end with best play by both sides. Endgame tablebases in all cases identify the absolute best move in all positions included (identifying the move that wins fastest against perfect defense, or the move that loses slowest against optimal opposition). Such tablebases are available for all positions containing three to six pieces (counting the kings) and for some seven-piece combinations. When the maneuvering in an ending to achieve an irreversible improvement takes more moves than the horizon of calculation of a chess engine, an engine is not guaranteed to find the best move without the use of an endgame tablebase, and in many cases can fall foul of the fifty-move rule as a result.
Many engines use permanent brain as a method to increase their strength.
Comparison between engines
Tournaments
The results of computer tournaments give one view of the relative strengths of chess engines. However, tournaments do not play a statistically significant number of games for accurate strength determination. In fact, the number of games that need to be played between fairly evenly matched engines, in order to achieve significance, runs into the thousands and is, therefore, impractical within the framework of a tournament [2]. Most tournaments also allow any types of hardware, so only engine/hardware combinations are being compared.
Historically, commercial programs have been the strongest engines. The 2008 WCCC was won by Rybka. To some extent, this is a self-fulfilling prophecy; if an amateur engine wins a tournament or otherwise performs well (for example, Zappa in 2005), then it is quickly commercialized. Titles gained in these tournaments garner much prestige for the winning programs, and are thus used for marketing purposes.
- World Computer Chess Championship
- Dutch open computer chess championship
- Internet Computer Chess Tournament (CCT)
- International Paderborn Computer Chess Championship
- North American Computer Chess Championship
Chess engine rating lists
Chess engine rating lists aim to provide statistically significant measures of relative engine strength. These lists play multiple games between engines on standard hardware platforms, so that processor differences are factored out. Some also standardize the opening books, in an attempt to measure the strength differences of the engines only. These lists not only provide a ranking, but also margins of error on the given ratings. Also rating lists typically play games continuously, publishing many updates per year, compared to tournaments which only take place annually.
There are a number of factors that vary among the chess engine rating lists:
- Time control. Longer time controls, such as 40 moves in 120 minutes, are better suited for determining tournament play strength, but also make testing more time-consuming.
- Hardware used. Faster hardware with more memory leads to stronger play.
- 64-bit (vs. 32-bit) hardware and operating systems favor bitboard-based programs.
- Multiprocessor vs. single processor hardware.
- Ponder settings (speculative analysis while the opponent is thinking).
- Transposition table sizes.
- Opening book settings.
These differences affect the results, and make direct comparisons between rating lists difficult.
As of February 2010[update], the top engines in the different lists are:
Rating list | Time control (moves/minutes) |
Year started |
Last updated | Engine/platform entries |
Games played |
Top three engines | Rating |
---|---|---|---|---|---|---|---|
CCRL[1] | 40/40[2] | 2005 | February 5, 2010 | 771 | 231,789 | Rybka 3 64-bit 4CPU Naum 4 64-bit 4CPU Stockfish 1.6.3 64-bit 4CPU |
3232 3156 3147 |
CEGT 40/20[3] | 40/20[4] | 2006 | February 7, 2010 | 687 | 383,996 | Rybka 3 x64 4CPU Stockfish 1.6 x64 4CPU Naum 4 x64 4CPU |
3188 3099 3080 |
SSDF[5] | 40/120 | 1984 | September 20, 2009 | 311 | 120,184 | Deep Rybka 3 64-bit 4CPU Naum 4 64-bit 4CPU Deep Fritz 11 64-bit 4CPU |
3232 3150 3080 |
WBEC[6] | 40/40 | 2001 | September 22, 2009 | 850+[7] | 84,000+ | Rybka 3-x64-2cpu Naum 4.0-2cpu-x64 Thinker 5.4j-x64-2cpu |
3090 3039 2994 |
- Note that the listings in the above table only count the best entry for a given engine.
These ratings, although calculated by using the Elo system (or similar rating methods), have no direct relation to FIDE Elo ratings or to other chess federation ratings of human players. Except for some man versus machine games which the SSDF had organized many years ago (which were far from today's level), there is no calibration between any of these rating lists and player pools. Hence, the results which matter are the ranks and the differences between the ratings, not the absolute level of the numbers. Nevertheless, in view of recent man versus machine matches, it is generally undisputed that the top computer chess ratings should be at least in the range of top human performances, and probably significantly higher.
Test suites
Engines can be tested by measuring their performance on specific positions. Typical is the use of test suites, where for each given position there is one best move to find. These positions can be geared towards positional, tactical or endgame play. The Nolot test suite, for instance, focuses on deep sacrifices. [8] Then there are the BT2450 and BT2630 test suites by Hubert Bednorz and Fred Toennissen. These suites measure the tactical capability of the engine[9] and have been used at least by REBEL.[10] There is also a general test suite called Brilliancy by Dana Turnmire. The suite has been compiled mostly from How to Reassess Your Chess Workbook.[11]
Strategic Test Suite (STS) by Swaminathan and Dann Corbit, tests chess engine's strategical strength. [12]
Engine categories
Ikarus and Ferret, both private engines, were past winners of the World Computer Speed Chess Championship.
Freely available chess engines
There are hundreds of freely available chess engines which conform to one of the above communication protocols. Many run on Windows or are open source. The top 50 strongest are listed here. Others may be found by examining the rating lists or external links.
Missing from this list are IPPOLIT and its derivatives. Although very strong and open source, there are allegations that they were derived from either stolen source or binaries of Rybka. Due to the controversy, these engines have been blacklisted from tournaments and rating lists.
Elo ratings taken from CCRL 40/40, computed on 24 July 2009.
Engine | Author (Country) | Elo |
---|---|---|
Alaric v707 | Peter Fendrich (Sweden) | 2766 |
AnMon v5.75 | Christian Barreteau (France) | 2649 |
Arasan v11.3 | Jon Dart (USA) | 2664 |
Aristarch v4.50 | Stefan Zipproth (Germany) | 2699 |
Baron v2.23 | Richard Pijl (The Netherlands) | 2685 |
Booot v4.15 | Alex Morozov (Ukraine) | 2780 |
Bright v0.4a | Allard Siemelink (Netherlands) | 3004 (4CPU) |
Brutus v7.02 | Stephan Vermeire | 2614 |
Crafty v23.0 | Robert Hyatt (US) | 2862 (64-bit 4CPU) |
Colossus 2008b | Martin Bryant (England) | 2750 |
Cyrano v0.6 beta 17 | Derived from Gerbil by Harald Johnsen | 2752 |
Delfi v5.4 | Fabio Cavicchio (Italy) | 2827 (2CPU) |
E.T. Chess 13.01.08 | Eric Triki (France) | 2745 |
Frenzee Feb08 | Sune Fischer (Denmark) | 2793 |
Fruit v2.3.1 | Fabien Letouzey (France) | 2884 |
Glaurung v2.2 | Tord Romstad (Norway) | 3006 (64-bit 4CPU) |
Hamsters v0.7 | Alessandro Scotti (Italy) | 2708 |
Hermann v2.4 | Volker Annuss (Germany) | 2604 |
Jonny v2.83 | Johannes Zwanzger (Germany) | 2679 |
List v5.12 | Fritz Reul (Germany) | 2721 |
Little Goliath Evolution v3.12 | Michael Borgstadt (Germany) | 2608 |
Movei v00.8.438 (10 10 10) | Uri Blass (Israel) | 2772 |
Naum v2.0 | Aleksandar Naumov (Serbia) | 2804 |
Pharaon v3.5.1 | Franck Zibi (France) | 2739 |
ProDeo v1.2 (freeware version of the former commercial program Rebel) |
Ed Schröder (Netherlands) | 2720 |
Pseudo v0.7c | Jan Klima (Czech Republic) | 2694 |
Ruffian v1.0.5 (latest free version) |
Per-Ola Valfridsson (Sweden) | 2712 |
Rybka v.2.2n2 | Vasik Rajlich (Czech Republic) | 3085 (64-bit 4CPU) |
Scorpio v2.1 (Hosted at GooglePages) |
Daniel Shawul (Ethiopia) | 2826 (64-bit 4CPU) |
Sloppy v0.2.2 | Ilari Pihlajisto (Finland) | 2691 |
Slow Chess WV2.1 | Jonathan Kreuzer (US) | 2740 |
SmarThink v0.17 alpha (latest free version) |
Sergei Markoff (Russia) | 2678 |
Spike v1.2 Turin | Volker Böhm and Ralf Schäfer (Germany) | 2850 |
Stockfish 1.6.2 (Mac/Linux) | Tord Romstad, Marco Costalba & Joona Kiiski (US) | 3138 |
Tao v5.6 | Bas Hamstra (Netherlands) | 2612 |
Thinker v5.4C |
Lance Perkins (Canada) | 3039 (Inert 64-bit 4CPU) |
Toga II 1.4 Beta 5c | Derived from Fruit by Thomas Gaksch (Germany) | 3010 |
Twisted Logic 20080620 |
Edsel Apostol (Philippines) | 2815 |
Ufim v8.02 | Niyaz Khasanov (Russia) | 2638 |
Wildcat v8 | Igor Korshunov (Belarus) | 2728 |
Zappa v1.1 (latest free version) |
Anthony Cozzie (US) | 2733 (64-bit) |
Pedagogical engines
These open source chess programs were expressly written to teach the craft of chess programming.
- GNU Chess. The goal of GNU Chess is to serve as a basis for research.
- ChessBin.com C# Chess Engine.
- Chess Program in C#.
- FirstChess (in C).
- Gerbil
- Gray Matter (in C++).
- MSCP (in C)
- Mizar (in C).
- Viper (in C++).
- Xadreco Chess Engine (in C).
- ChEngine (in C#).
There are also source-available proprietary software.
- TSCP (in C).
Some bizarre programs have been written to win programming contests.
- Micro-Max (chess engine), a 133-line Chess Source by H.G.Muller (in C).
- Toledo Nanochess, an obfuscated chess program written in about 2000 characters of C.
Commercial programs
These chess programs are sold commercially. Most of these also include their own user interface.
- Chess Genius, by Richard Lang of Mephisto fame
- Chessmaster
- Chess Tiger
- Fritz (single processor), Deep Fritz (multi processor)
- Gandalf
- HIARCS
- Junior - (single- and multi-processor versions)
- The King - the engine of the commercial Chessmaster program
- Ktulu
- Loop (also the engine for Wii Chess)
- Naum versions 2.1 and later
- Onno
- Rebel - (see also ProDeo)
- Ruffian 2
- Rybka
- Shredder
- Deep Sjeng
- Smarthink
- Zappa
Dedicated hardware
These chess playing systems include custom hardware or run on supercomputers. All are historical; chess supercomputers have not competed in computer tournaments since Hydra played in 2006.
- Bebe, a strong bit-slice processor in the 1980s
- Belle
- Chess (Northwestern University)
- ChipTest
- Cray Blitz
- Deep Blue
- Deep Thought
- HiTech
- Hydra, predecessor was called Brutus
Commercial dedicated computers
In the 1980s and early 1990s, there was a competitive market for strong dedicated chess computers. Many form-factors were sold, from handheld peg-board computers to wooden auto-sensory boards with state-of-the-art processors. This market changed in the mid-90s when the economical embedded processors in dedicated chess computers could no longer compete with the fast processors in personal computers. Nowadays, most dedicated units sold are of beginner and intermediate strength.
- Chess Challenger, a line of chess computers sold by Fidelity Electronics from 1977[3] to 1992. These models won the first four World Microcomputer Chess Championships.
- ChessMachine, an ARM-based dedicated computer, which could run two engines:
- The King, which later became the Chessmaster engine, was also used in the TASC R30 dedicated computer
- Gideon, a version of Rebel, in 1992 became the first microcomputer to win the World Computer Chess Championship
- Mephisto, a line of chess computers sold by Hegener & Glaser. The units programmed by Richard Lang won six consecutive World Microcomputer Chess Championships. They bought out Fidelity in 1989.
- Novag sells a line of tactically strong computers, including the Constellation, Sapphire, and Star Diamond brands.
- Saitek sells mid-range units of intermediate strength. They bought out Hegener & Glaser and its Mephisto brand in 1994.
- Excalibur sells a line of intermediate strength units. Excalibur was started in 1992 by the son of the founder of Fidelity Electronics.
- Phoenix Chess Systems makes limited edition units based around StrongARM and XScale processors running modern engines
Historical programs
These chess programs run on obsolete hardware.
- 1K ZX Chess
- Kaissa
- Kotok-McCarthy
- Mac Hack
- Microchess was the first commercial game for a personal computer, developed first for the KIM-1 and later Commodore PET, Apple II, TRS-80 and others. Bobby Fischer played against MicroChess. [4]
- Sargon
- Socrates II
See also
- Chess Engines Grand Tournament
- Computer chess
- Internet chess server
- Chess Engine Communication Protocol
- Universal Chess Interface
Notes and references
This article needs additional citations for verification. (January 2009) |
- ^ "CCRL 40/40 - Complete list". February 5, 2010. Retrieved 2010-02-13.
- ^ Also available: 40 moves in 4 minutes
- ^ "CEGT 40/20". Chess Engines Grand Tournament. February 7, 2010. Retrieved 2009-10-27.
- ^ Also available: 40 moves in 4 minutes, 40 moves in 120 minutes
- ^ "The SSDF Rating List". Swedish Chess Computer Association. September 20, 2009. Retrieved 2009-10-11.
- ^ "BayesianElo Ratinglist of WBEC Ridderkerk". September 22, 2009. Retrieved 2009-09-24.
- ^ http://home.scarlet.be/vincentlejeune/Ratings-WBEC-Ed-11-to-16.txt
- ^ Nolot test suite
- ^ BT2450 test suite
- ^ Rebel
- ^ Brilliancy suite TalkChess forum
- ^ [1] Strategic Test Suite
External links
- Computer Chess Blog
- Tim Mann's Chess Pages
- Top UCI Chess Engines with ratings and download links
- WB Chronology - another extensive list of free engines and links
- WBEC Ridderkerk - collection of free chess engine properties, latest updates, tournaments and chess programming links
- Free UCI Chess engines
- Chess Engine Rankings on the PlayChess server
- ChessComputers.org - site dedicated to electronic chess machines or dedicated chess computers
- Chess Engine's Opening Book for Arena 2.x.x GUI. - A general (learning) purpose Chess Engine's Book for Arena 2.x.x GUI.
- Chess Engine's Polyglot Opening Book for WinBoard GUI. - A general (learning) purpose Chess Engine's Polyglot Opening Book for WinBoard GUI.