Computer chess: Difference between revisions
m Reverted addition of dubious unsourced content (HG) |
Shahee.saib (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 184: | Line 184: | ||
== Solving chess == |
== Solving chess == |
||
The prospects of completely [[solved game|solving]] chess are generally considered to be rather remote. It is widely conjectured that there is no computationally inexpensive method to solve chess even in the very weak sense of determining with certainty the value of the initial position, and hence the idea of solving chess in the stronger sense of obtaining a practically usable description of a strategy for perfect play for either side seems unrealistic today. However, it should be noted that neither has it been proven that no computationally cheap way of determining the best move in a chess position exists, nor has it even been proven mathematically that a traditional [[alpha-beta-searcher]] running on present-day computing hardware could not solve the initial position in an acceptable amount of time. The difficulty in proving the latter lies in the fact that, while the number of board positions that could happen in the course of a chess game is huge (on the order of 10<sup>40</sup><ref name="Shannon1950">The size of the state space and game tree for chess were first estimated in {{Citation | author = [[Claude Shannon]] | title = Programming a Computer for Playing Chess | journal = Philosophical Magazine | volume = 41 | issue = 314 | year = 1950 | url = http://archive.computerhistory.org/projects/chess/related_materials/text/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon.062303002.pdf|format=PDF|accessdate=30 December 2008}} Shannon gave estimates of 10<sup><small>43</small></sup> and 10<sup><small>120</small></sup> respectively, smaller than the estimates in the [[Game complexity]] table, which are from [[Victor Allis]]'s thesis. See [[Shannon number]] for details.</ref>), it is hard to rule out with mathematical certainty the possibility that the initial position allows either side to force a mate or a [[threefold repetition]] after relatively few moves, in which case the search tree might encompass only a very small subset of the set of possible positions. It has been mathematically proven that ''generalized chess'' (chess played with an arbitrarily large number of pieces on an arbitrarily large chessboard) is EXPTIME-complete,<ref>{{Citation | author = Aviezri Fraenkel and D. Lichtenstein | title = Computing a perfect strategy for n×n chess requires time exponential in n | journal = J. Combin. Theory Ser. A | volume = 31 | year = 1981 | pages = 199–214 | doi = 10.1016/0097-3165(81)90016-9}}</ref> meaning that determining the winning side in an arbitrary position of generalized chess probably takes exponential time in the worst case; however, this theoretical result gives no lower bound on the amount of work required to solve ordinary 8x8 chess. Still, it can certainly be said that nothing indicates a practical possibility of solving chess at present in any sense of the word. |
The prospects of completely [[solved game|solving]] chess are generally considered to be rather remote. It is widely conjectured that there is no computationally inexpensive method to solve chess even in the very weak sense of determining with certainty the value of the initial position, and hence the idea of solving chess in the stronger sense of obtaining a practically usable description of a strategy for perfect play for either side seems unrealistic today. However, it should be noted that neither has it been proven that no computationally cheap way of determining the best move in a chess position exists, nor has it even been proven mathematically that a traditional [[alpha-beta-searcher]] running on present-day computing hardware could not solve the initial position in an acceptable amount of time. The difficulty in proving the latter lies in the fact that, while the number of board positions that could happen in the course of a chess game is huge (on the order of 10<sup>40</sup><ref name="Shannon1950">The size of the state space and game tree for chess were first estimated in {{Citation | author = [[Claude Shannon]] | title = Programming a Computer for Playing Chess | journal = Philosophical Magazine | volume = 41 | issue = 314 | year = 1950 | url = http://archive.computerhistory.org/projects/chess/related_materials/text/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon.062303002.pdf|format=PDF|accessdate=30 December 2008}} Shannon gave estimates of 10<sup><small>43</small></sup> and 10<sup><small>120</small></sup> respectively, smaller than the estimates in the [[Game complexity]] table, which are from [[Victor Allis]]'s thesis. See [[Shannon number]] for details.</ref>), it is hard to rule out with mathematical certainty the possibility that the initial position allows either side to force a mate or a [[threefold repetition]] after relatively few moves, in which case the search tree might encompass only a very small subset of the set of possible positions. It has been mathematically proven that ''generalized chess'' (chess played with an arbitrarily large number of pieces on an arbitrarily large chessboard) is EXPTIME-complete,<ref>{{Citation | author = Aviezri Fraenkel and D. Lichtenstein | title = Computing a perfect strategy for n×n chess requires time exponential in n | journal = J. Combin. Theory Ser. A | volume = 31 | year = 1981 | pages = 199–214 | doi = 10.1016/0097-3165(81)90016-9}}</ref> meaning that determining the winning side in an arbitrary position of generalized chess probably takes exponential time in the worst case; however, this theoretical result gives no lower bound on the amount of work required to solve ordinary 8x8 chessMathematically, a computer will always beat or draw a human at chess, assuming that the computer has the processing power to perform the required calculations and the human brain at best can match the processing ability of the computer opponent. This is due to the finite number of moves involved in a chess game and zero probability of the computer making a mistake. Still, it can certainly be said that nothing indicates a practical possibility of solving chess at present in any sense of the word. |
||
== Chronology of computer chess == |
== Chronology of computer chess == |
Revision as of 10:14, 7 March 2010
Computer chess is computer architecture encompassing hardware and software capable of playing chess autonomously without human guidance. Computer chess occurs as solo entertainment (allowing players to practice and to amuse themselves when no human opponents are available), as aids to chess analysis, for computer chess competitions, and as research to provide insights into human cognition.
Availability
Chess-playing computers are now accessible to the average consumer. There are many chess engines such as Crafty, Fruit and GNU Chess that can be downloaded from the Internet for free, and play a game that when run on any up-to-date personal computer, can defeat most master players under tournament conditions. Top programs such as the closed-source programs Shredder or Fritz or the open-source program stockfish have surpassed even world champion caliber players at blitz and short time controls. As of October 2008[update], Rybka is top-rated in CCRL,[1] CEGT,[2] CSS,[3] SSDF,[4] and WBEC[5] rating lists and has won many recent official computer chess tournaments such as CCT 8 and 9,[6] 2006 Dutch Open Computer Championship,[7] the 16th IPCCC,[8] and the 15th World Computer Chess Championship.
Computers versus humans
For a time in the 1970s and 1980s it was unclear whether any chess program would ever be able to defeat the expertise of top humans. In 1968, International Master David Levy made a famous bet that no chess computer would be able to beat him within ten years. He won his bet in 1978 by beating Chess 4.7 (the strongest computer at the time), but acknowledged then that it would not be long before he would be surpassed. In 1989, Levy was defeated by the computer Deep Thought in an exhibition match.
Deep Thought, however, was still considerably below World Championship Level, as the then reigning world champion Garry Kasparov demonstrated in two sterling wins in 1989. It was not until a 1996 match with IBM's Deep Blue that Kasparov lost his first game to a computer at tournament time controls in Deep Blue - Kasparov, 1996, Game 1. This game was, in fact, the first time a reigning world champion had lost to a computer using regular time controls. However, Kasparov regrouped to win three and draw two of the remaining five games of the match, for a convincing victory.
In May 1997, an updated version of Deep Blue defeated Kasparov 3½-2½ in a return match. A documentary mainly about the confrontation was made in 2003, titled Game Over: Kasparov and the Machine. IBM keeps a web site of the event.
a | b | c | d | e | f | g | h | ||
8 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 8 | |||||||
7 | 7 | ||||||||
6 | 6 | ||||||||
5 | 5 | ||||||||
4 | 4 | ||||||||
3 | 3 | ||||||||
2 | 2 | ||||||||
1 | 1 | ||||||||
a | b | c | d | e | f | g | h |
With increasing processing power, chess programs running on commercially available workstations began to rival top flight players. In 1998, Rebel 10 defeated Viswanathan Anand who at the time was ranked second in the world, by a score of 5-3. However most of those games were not played at normal time controls. Out of the eight games, four were blitz games (five minutes plus five seconds Fischer delay (see time control) for each move) these Rebel won 3-1. Then two were semi-blitz games (fifteen minutes for each side) which Rebel won as well (1½-½). Finally two games were played as regular tournament games (forty moves in two hours, one hour sudden death) here it was Anand who won ½-1½ [9]. At least in fast games, computers played better than humans but at classical time controls - at which a player's rating is determined - the advantage was not so clear.
In the early 2000s, commercially available programs such as Junior and Fritz were able to draw matches against former world champion Garry Kasparov and classical world champion Vladimir Kramnik.
In October 2002, Vladimir Kramnik and Deep Fritz competed in the eight-game Brains in Bahrain match, which ended in a draw. Kramnik won games 2 and 3 by "conventional" anti-computer tactics - play conservatively for a long-term advantage the computer is not able to see in its game tree search. Fritz, however, won game 5 after a severe blunder by Kramnik. Game 6 was described by the tournament commentators as "spectacular." Kramnik, in a better position in the early middlegame, tried a piece sacrifice to achieve a strong tactical attack, a strategy known to be highly risky against computers who are at their strongest defending against such attacks. True to form, Fritz found a watertight defense and Kramnik's attack petered out leaving him in a bad position. Kramnik resigned the game, believing the position lost. However, post-game human and computer analysis has shown that the Fritz program was unlikely to have been able to force a win and Kramnik effectively sacrificed a drawn position. The final two games were draws. Given the circumstances, most commentators still rate Kramnik the stronger player in the match.[citation needed]
In January 2003, Garry Kasparov played Junior, another chess computer program, in New York. The match ended 3-3.
In November 2003, Garry Kasparov played X3D Fritz. The match ended 2-2.
In 2005, Hydra, a dedicated chess computer with custom hardware and sixty-four processors and also winner of the 14th IPCCC in 2005, defeated seventh-ranked Michael Adams 5½-½ in a six-game match (though Adams' preparation was far less thorough than Kramnik's for the 2002 series).[10]
In November-December 2006, World Champion Vladimir Kramnik played Deep Fritz. This time the computer won, the match ended 2-4. Kramnik was able to view the computer's opening book. In the first five games Kramnik steered the game into a typical "anti-computer" positional contest. He lost one game (overlooking a mate in one), and drew the next four. In the final game, in an attempt to draw the match, Kramnik played the more aggressive Sicilian Defence and was crushed.
There was speculation that interest in human-computer chess competition would plummet as a result of the 2006 Kramnik-Deep Fritz match. According to McGill University computer science professor Monty Newborn, for example, "the science is done".[11]
Human-computer chess matches showed the best computer systems overtaking human chess champions in the late 1990s. For the 40 years prior to that, the trend had been that the best machines gained about 40 points per year in the ELO ranking while the best humans only gained roughly 2 points per year.[12] There was speculation that audience interest in human-computer chess competition would wane as a result of matches such as the 2006 Kramnik-Deep Fritz match in which Kramnik lost the match 4 games to 2.[13] The highest rating obtained by a computer in human competition was Deep Thought's USCF rating of 2551 in 1988 and FIDE no longer accepts human-computer results in their rating lists. Specialized machine-only ELO pools have been created for rating machines but such numbers, while similar in appearance, should not be directly compared.[14] A recent top chess engine, Rybka, has an estimated ELO rating of about 3200 (when running on an up-to-date PC, as computed by SSDF).
Chess engines continue to improve. In 2009 chess engines running on slower hardware have reached the grandmaster level. A mobile phone won a category 6 tournament with a performance rating 2898: chess engine Hiarcs 13 running as the Pocket Fritz 4 on the mobile phone HTC Touch HD won the Copa Mercosur tournament in Buenos Aires, Argentina with 9 wins and 1 draw on August 4-14, 2009. [15]
Advanced Chess is a form of chess developed in 1998 by Kasparov where a human plays against another human, and both have access to computers to enhance their strength. The resulting "advanced" player was argued by Kasparov to be stronger than a human or computer alone, although this has not been proven.
Implementation issues
The developers of a chess-playing computer system must decide on a number of fundamental implementation issues. These include:
- Board representation — how a single position is represented in data structures,
- Search techniques — how to identify the possible moves and select the most promising ones for further examination,
- Leaf evaluation — how to evaluate the value of a board position, if no further search will be done from that position.
Computer chess programs usually support a number of common de facto standards. Nearly all of today's programs can read and write game moves as Portable Game Notation (PGN), and can read and write individual positions as Forsyth-Edwards Notation (FEN). Older chess programs often only understood long algebraic notation, but today users expect chess programs to understand standard algebraic chess notation.
Most computer chess programs are divided into an engine (which computes the best move given a current position) and a user interface. Most engines are separate programs from the user interface, and the two parts communicate to each other using a public communication protocol. The most popular protocol is the Xboard/Winboard Communication protocol. Another open alternate chess communication protocol is the Universal Chess Interface. By dividing chess programs into these two pieces, developers can write only the user interface, or only the engine, without needing to write both parts of the program. (See also List of chess engines.)
Implementers also need to decide if they will use endgame databases or other optimizations, and often implement common de facto chess standards.
Board representations
The data structure used to represent each chess position is key to the performance of move generation and position evaluation. Methods include pieces stored in an array ("mailbox" and "0x88"), piece positions stored in a list ("piece list"), collections of bit-sets for piece locations ("bitboards"), and huffman coded positions for compact long-term storage.
Search techniques
The first paper on the subject was by Claude Shannon — published in 1950 before anyone had programmed a computer to play chess. He successfully predicted the two main possible search strategies which would be used, which he labeled "Type A" and "Type B" (Shannon 1950).
Type A programs would use a "brute force" approach, examining every possible position for a fixed number of moves using the minimax algorithm. Shannon believed this would be impractical for two reasons.
First, with approximately thirty moves possible in a typical real-life position, he expected that searching the approximately 109 positions involved in looking three moves ahead for both sides (six plies) would take about sixteen minutes, even in the "very optimistic" case that the chess computer evaluated a million positions every second. (It took about forty years to achieve this speed.)
Second, it ignored the problem of quiescence, trying to only evaluate a position that is at the end of an exchange of pieces or other important sequence of moves ('lines'). He expected that adapting type A to cope with this would greatly increase the number of positions needing to be looked at and slow the program down still further.
Instead of wasting processing power examining bad or trivial moves, Shannon suggested that "type B" programs would use two improvements:
- Employ a quiescence search.
- Only look at a few good moves for each position.
This would enable them to look further ahead ('deeper') at the most significant lines in a reasonable time. The test of time has borne out the first approach; all modern programs employ a terminal quiescence search before evaluating positions. The second approach (now called forward pruning) has been dropped in favor of search extensions.
Adriaan de Groot interviewed a number of chess players of varying strengths, and concluded that both masters and beginners look at around forty to fifty positions before deciding which move to play. What makes the former much better players is that they use pattern recognition skills built from experience. This enables them to examine some lines in much greater depth than others by simply not considering moves they can assume to be poor.
More evidence for this being the case is the way that good human players find it much easier to recall positions from genuine chess games, breaking them down into a small number of recognizable sub-positions, rather than completely random arrangements of the same pieces. In contrast, poor players have the same level of recall for both.
The problem with type B is that it relies on the program being able to decide which moves are good enough to be worthy of consideration ('plausible') in any given position and this proved to be a much harder problem to solve than speeding up type A searches with superior hardware and search extension techniques.
One of the few chess grandmasters to devote himself seriously to computer chess was former World Chess Champion Mikhail Botvinnik, who wrote several works on the subject. He also held a doctorate in electrical engineering. Working with relatively primitive hardware available in the Soviet Union in the early 1960s, Botvinnik had no choice but to investigate software move selection techniques; at the time only the most powerful computers could achieve much beyond a three-ply full-width search, and Botvinnik had no such machines. In 1965 Botvinnik was a consultant to the ITEP team in a US-Soviet computer chess match (see Kotok-McCarthy).
One developmental milestone occurred when the team from Northwestern University, which was responsible for the Chess series of programs and won the first three ACM Computer Chess Championships (1970-72), abandoned type B searching in 1973. The resulting program, Chess 4.0, won that year's championship and its successors went on to come in second in both the 1974 ACM Championship and that year's inaugural World Computer Chess Championship, before winning the ACM Championship again in 1975, 1976 and 1977.
One reason they gave for the switch was that they found it less stressful during competition, because it was difficult to anticipate which moves their type B programs would play, and why. They also reported that type A was much easier to debug in the four months they had available and turned out to be just as fast: in the time it used to take to decide which moves were worthy of being searched, it was possible just to search all of them.
In fact, Chess 4.0 set the paradigm that was and still is followed essentially by all modern Chess programs today. Chess 4.0 type programs won out for the simple reason that their programs simply played better chess. Such programs did not try to mimic human thought processes, but relied on full width alpha-beta and negascout searches. Most such programs (including all modern programs today) also included a fairly limited selective part of the search based around quiescence searches, and usually extensions and pruning (particularly null move pruning from the 1990s onwards) which were triggered based on certain conditions in an attempt to weed out or reduce obviously bad moves (history moves) or to investigate interesting nodes (e.g. check extensions, passed pawns on seventh rank, etc). Extension and pruning triggers have to be used very carefully however. Over extend and the program wastes too much time looking at uninteresting positions. If too much is pruned, there is a risk cutting out interesting nodes. Chess programs differ in terms of how and what types of pruning and extension rules are included as well as in the evaluation function. Some programs are believed to be more selective than others (for example Deep Blue was known to be less selective than most commercial programs because they could afford to do more complete full width searches), but all have a base full width search as a foundation and all have some selective components (Q-search, pruning/extensions).
Though such additions meant that the program did not truly examine every node within its search depth (so it would not be truly brute force in that sense), the rare mistakes due to these selective search was found to be worth the extra time it saved because it could search deeper. In that way Chess programs can get the best of both worlds.
Furthermore, technological advances by orders of magnitude in processing power have made the brute force approach far more incisive than was the case in the early years. The result is that a very solid, tactical AI player aided by some limited positional knowledge built in by the evaluation function and pruning/extension rules began to match the best players in the world. It turned out to produce excellent results, at least in the field of chess, to let computers do what they do best (calculate) rather than coax them into imitating human thought processes and knowledge. In 1997 Deep Blue defeated World Champion Garry Kasparov, marking the first time a computer has defeated a reigning world chess champion in standard time control.
Computer chess programs consider chess moves as a game tree. In theory, they examine all moves, then all counter-moves to those moves, then all moves countering them, and so on, where each individual move by one player is called a "ply". This evaluation continues until a certain maximum search depth or the program determines that a final "leaf" position has been reached (e.g. checkmate).
A naive implementation of this approach can only search to a small depth in a practical amount of time, so various methods have been devised to greatly speed the search for good moves.
For more information, see:
- Minimax algorithm
- Alpha-beta pruning
- Killer heuristic
- Iterative deepening depth-first search
- Null-move heuristic
- Late Move Reductions
Leaf evaluation
For most chess positions, computers cannot look ahead to all final possible positions. Instead, they must look ahead a few plies and then evaluate the final board position. The algorithm that evaluates final board positions is termed the "evaluation function", and these algorithms are often vastly different between different chess programs.
Evaluation functions typically evaluate positions in hundredths of a pawn, and consider material value along with other factors affecting the strength of each side. When counting up the material for each side, typical values for pieces are 1 point for a pawn, 3 points for a knight or bishop, 5 points for a rook, and 9 points for a queen. (See Chess piece relative value.) By convention, a positive evaluation favors White, and a negative evaluation favors Black.
The king is sometimes given an arbitrary high value such as 200 points (Shannon's paper) or 1,000,000,000 points (1961 USSR program) to ensure that a checkmate outweighs all other factors (Levy & Newborn 1991:45). Evaluation functions take many factors into account, such as pawn structure, the fact that a pair of bishops are usually worth more, centralized pieces are worth more, and so on. The protection of kings is usually considered, as well as the phase of the game (opening, middle or endgame).
See Claude Elwood Shannon for a description of his early paper about a chess-playing program.
Using endgame databases
Some computer chess operators have pointed out that endgame tablebases have the potential to weaken performance strength in chess computers if incorrectly used. Because some positions are analyzed as forced wins for one side, the program will avoid the losing side of positions at all costs. However, many endgames are forced wins only with flawless play, where even a slight error would produce a different result. Consequently, most modern engines will play many endgames well enough on their own. A symptom of this problem is that computers may resign too early because they see that they are being forced into a position that is theoretically dead lost (although they may be thirty or more moves away from the end of the game, and most human opponents would find it hard to win in that time). This observation is only relevant when a computer program is in a situation where it has a choice between two losing moves, one of which is actually more difficult for the opponent, but leads to a tablebase position with a known value, and is hence of very minor importance.
The Nalimov tablebases do not consider the fifty-move rule, under which a game where fifty moves pass without a capture or pawn move can be claimed to be a draw by either player. This results in the tablebase returning results such as "Forced mate in sixty-six moves" in some positions which would actually be drawn because of the fifty-move rule. However, a correctly programmed engine does know about the fifty-move rule, and in any case if using an endgame tablebase will choose the move that leads to the quickest win (even if it would fall foul of the fifty-move rule with perfect play). If playing an opponent not using a tablebase, such a choice will give good chances of winning within fifty moves.
One reason for this is that if the rules of chess were to be changed once more, giving more time to win such positions, it will not be necessary to regenerate all the tablebases. It is also very easy for the program using the tablebases to notice and take account of this 'feature'.
The Nalimov tablebases, which use state-of-the-art compression techniques, require 7.05 GB of hard disk space for all five-piece endings. To cover all the six-piece endings requires approximately 1.2 terabyte. It is estimated that seven-piece tablebases will require more storage capacity than will be available in the foreseeable future.[citation needed]
It is surprising, but easily verified, that without an endgame tablebase even otherwise very strong chess engines may fail to find a winning plan even in endings with six or fewer pieces, when they need more moves than the calculation horizon to achieve a checkmate, a win of material or the advance of a pawn. Many endings require more moves than their calculation horizon.
Computers have been used to analyze some chess endgame positions completely. Such endgame databases are generated in advance using a form of retrograde analysis, starting with positions where the final result is known (e.g., where one side has been mated) and seeing which other positions are one move away from them, then which are one move from those, etc. Ken Thompson, perhaps better known as the key designer of the UNIX operating system, was a pioneer in this area.
Endgame play had long been one of the great weaknesses of chess programs because of the depth of search needed, with some otherwise master-level programs being unable to win in positions that even intermediate human players would be able to force a win.
The results of the computer analysis sometimes surprised people. In 1977 Thompson's Belle chess machine used the endgame tablebase for a king and rook against king and queen and was able to draw that theoretically lost ending against several masters (see Philidor position#Queen versus rook). This was despite not following the usual strategy to delay defeat by keeping the defending king and rook close together for as long as possible. Asked to explain the reasons behind some of the program's moves, Thompson was unable to do so beyond saying the program's database simply evaluated its moves as best it could.
Most grandmasters declined to play against the computer in the queen versus rook endgame, but Walter Browne accepted the challenge. A queen versus rook position was set up in which the queen can win in thirty moves, with perfect play. Browne was allowed 2½ hours to play fifty moves, otherwise a draw would be claimed under the fifty-move rule. After forty-five moves, Browne agreed to a draw, being unable to force checkmate or win the rook within the next five moves. In the final position, Browne was still seventeen moves away from checkmate, but not quite that far away from winning the rook. Browne studied the endgame, and played the computer again a week later in a different position in which the queen can win in thirty moves. This time, he captured the rook on the fiftieth move, giving him a winning position (Levy & Newborn 1991:144–48), (Nunn 2002:49).
Other positions, long believed to be won, turned out to take more moves against perfect play to actually win than were allowed by chess's fifty-move rule. As a consequence, for some years the official FIDE rules of chess were changed to extend the number of moves allowed in these endings. After a while, the rule reverted back to fifty moves in all positions — more such positions were discovered, complicating the rule still further, and it made no difference in human play, as they could not play the positions perfectly.
Over the years, other endgame database formats have been released including the Edward Tablebases, the De Koning Endgame Database (released in 2002) and the Nalimov Endgame Tablebases which is the current standard supported by most chess programs such as Rybka, Shredder or Fritz. All endgames with five or fewer pieces have been analyzed completely. Of endgames with six pieces all positions have been analyzed except for positions with five pieces against a lone king.[16] Some seven-piece endgames, have been analyzed by Marc Bourzutschky and Yakov Konoval.[17] In all of these endgame databases it is assumed that castling is no longer possible.
Endgame databases are generated by storing in memory the values of positions which have been encountered so far, and using these results to lop off the ends of the search trees if they arise again. Although the number of possible games after a number of moves rises exponentially with the number of moves, the number of possible positions with a few pieces is exponential only in the number of pieces — and effectively limited however many end game moves are searched. The simple expediency of remembering the value of all previously reached positions means that the limiting factor in solving end games is simply the amount of memory available in the computer. While computer memory sizes are increasing exponentially, there is no reason why end games of increasing complexity should not continue to be solved.
A computer using these databases will, upon reaching a position in them, be able to play perfectly, and immediately determine whether the position is a win, loss or draw, plus the fastest or longest way of getting to that result. Knowledge of whether a position is a win, loss or draw is also helpful in advance since this can help the computer avoid or head towards such positions depending on the situation.
Endgame databases featured prominently in 1999, when Kasparov played an exhibition match on the Internet against the Rest of the World. A seven piece Queen and pawn endgame was reached with the World Team fighting to salvage a draw. Eugene Nalimov helped by generating the six piece ending tablebase where both sides had two Queens which was used heavily to aid analysis by both sides.
Other optimizations
Many other optimizations can be used to make chess-playing programs stronger. For example, transposition tables are used to record positions that have been previously evaluated, to save recalculation of them. Refutation tables record key moves that "refute" what appears to be a good move; these are typically tried first in variant positions (since a move that refutes one position is likely to refute another). Opening books aid computer programs by giving common openings that are considered good play (and good ways to counter poor openings). Many chess engine use pondering to increase their strength.
Of course, faster hardware and additional processors can improve chess-playing program abilities, and some systems (such as Deep Blue) use specialized chess hardware instead of only software. Another way to examine more chess positions is distribute the analysis of positions to many computers. The ChessBrain project[18] was a chess program that distributed the search tree computation through the Internet. In 2004 the ChessBrain played chess using 2,070 computers.
Playing strength versus computer speed
It has been estimated that doubling the computer speed gains approximately fifty to seventy ELO points in playing strength (Levy & Newborn 1991:192).
Other chess software
There are several other forms of chess-related computer software, including the following:
- Chess game viewers allow players to view a pre-recorded game on a computer. Most chess-playing programs can be also used for this purpose, but some special-purpose software exists.
- Chess instruction software is designed to teach chess.
- Chess databases are systems which allow the searching of a large library of historical games. Shane's Chess Information Database (Scid) is a good example of a chess database. Scid[2] may be used under Microsoft Windows, UNIX, Linux and Mac OS X. There are also commercial databases, such as Chessbase and Chess Assistant[3] for Windows and ExaChess[4] for Mac OS X.
- Software for handling chess problems
- Internet chess server and clients
Notable theorists
Well-known computer chess theorists include:
- Alexander Kronrod
- Georgy Adelson-Velsky
- Mikhail Botvinnik (also three-time World Chess Champion)
- D. F. Beal
- David Levy
- Robert Hyatt [5] (author of open source chess program Crafty)
- Hans Berliner
- Claude Elwood Shannon
Solving chess
The prospects of completely solving chess are generally considered to be rather remote. It is widely conjectured that there is no computationally inexpensive method to solve chess even in the very weak sense of determining with certainty the value of the initial position, and hence the idea of solving chess in the stronger sense of obtaining a practically usable description of a strategy for perfect play for either side seems unrealistic today. However, it should be noted that neither has it been proven that no computationally cheap way of determining the best move in a chess position exists, nor has it even been proven mathematically that a traditional alpha-beta-searcher running on present-day computing hardware could not solve the initial position in an acceptable amount of time. The difficulty in proving the latter lies in the fact that, while the number of board positions that could happen in the course of a chess game is huge (on the order of 1040[19]), it is hard to rule out with mathematical certainty the possibility that the initial position allows either side to force a mate or a threefold repetition after relatively few moves, in which case the search tree might encompass only a very small subset of the set of possible positions. It has been mathematically proven that generalized chess (chess played with an arbitrarily large number of pieces on an arbitrarily large chessboard) is EXPTIME-complete,[20] meaning that determining the winning side in an arbitrary position of generalized chess probably takes exponential time in the worst case; however, this theoretical result gives no lower bound on the amount of work required to solve ordinary 8x8 chessMathematically, a computer will always beat or draw a human at chess, assuming that the computer has the processing power to perform the required calculations and the human brain at best can match the processing ability of the computer opponent. This is due to the finite number of moves involved in a chess game and zero probability of the computer making a mistake. Still, it can certainly be said that nothing indicates a practical possibility of solving chess at present in any sense of the word.
Chronology of computer chess
The idea of creating a chess-playing machine dates back to the eighteenth century. Around 1769, the chess playing automaton called The Turk became famous before being exposed as a hoax. Before the development of digital computing, serious trials based on automata such as El Ajedrecista of 1912, were too complex and limited to be useful for playing full games of chess. The field of mechanical chess research languished until the advent of the digital computer in the 1950s. Since then, chess enthusiasts and computer engineers have built, with increasing degrees of seriousness and success, chess-playing machines and computer programs.
- 1769, Wolfgang von Kempelen builds the Automaton Chess-Player, in what becomes one of the greatest hoaxes of its period.
- 1868, Charles Hooper presented the Ajeeb automaton — which also had a human chess player hidden inside.
- 1912, Leonardo Torres y Quevedo builds a machine that could play King and Rook versus King endgames.
- 1948, Norbert Wiener's book Cybernetics describes how a chess program could be developed using a depth-limited minimax search with an evaluation function.
- 1950, Claude Shannon publishes "Programming a Computer for Playing Chess", one of the first papers on the problem of computer chess.
- 1951, Alan Turing develops on paper the first program capable of playing a full game of chess.[21][22]
- 1952, Dietrich Prinz develops a program that solves chess problems.
a | b | c | d | e | f | |||
6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 6 | |
5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 5 | |
4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 4 | |
3 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 3 | |
2 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 2 | |
1 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | 1 | |
a | b | c | d | e | f |
- 1956, Los Alamos chess is the first program to play a chess-like game, developed by Paul Stein and Mark Wells for the MANIAC I computer.
- 1956, John McCarthy invents the alpha-beta search algorithm.
- 1958, NSS becomes the first chess program to use the alpha-beta search algorithm.
- 1958, The first programs that could play a full game of chess were developed, one by Alex Bernstein and one by Russian programmers using a BESM.
- 1962, The first program to play credibly, Kotok-McCarthy, is published at MIT
- 1966-1967, The first chess match between computer programs is played. Moscow Institute for Theoretical and Experimental Physics (ITEP) defeated Kotok-McCarthy at Stanford University by telegraph over nine months.
- 1967, Mac Hack Six, by Richard Greenblatt et al. introduces transposition tables and becomes the first program to defeat a person in tournament playchessville
- 1968, David Levy makes a bet with AI researchers that no computer program would win a chess match against him within 10 years.
- 1970, The first year of the ACM North American Computer Chess Championships
- 1974, Kaissa wins first World Computer Chess Championship
- 1977, The first microcomputer chess playing machine, CHESS CHALLENGER, was created
- 1977, The International Computer Chess Association is established.
- 1977, Chess 4.6 becomes the first chess computer to be successful at a major chess tournament.
- 1978, David Levy wins the bet made 10 years earlier, defeating the Chess 4.7 in a six-game match by a score of 4.5-1.5.
- 1980, The first year of the World Microcomputer Chess Championship
- 1980, The Fredkin Prize is established.
- 1981 Cray Blitz won the Mississippi State Championship with a perfect 5-0 score and a performance rating of 2258. In round 4 it defeated Joe Sentef (2262) to become the first computer to beat a master in tournament play and the first computer to gain a master rating.
- 1982, Ken Thompson's hardware chess player Belle earns a US master title.
- 1988, HiTech developed by Hans Berliner and Carl Ebeling wins a match against grandmaster Arnold Denker 3.5 - 0.5.
- 1988, Deep Thought shares first place with Tony Miles in the Software Toolworks Championship, ahead of a former world champion Mikhail Tal and several grandmasters including Samuel Reshevsky, Walter Browne and Mikhail Gurevich. It also defeats grandmaster Bent Larsen, making it the first computer to beat a GM in a tournament. Its rating for performance in this tournament of 2745 (USCF scale) was the highest obtained by a computer player.[23][24]
- 1989, Deep Thought loses two exhibition games to Garry Kasparov, the reigning world champion.
- 1992, first time a microcomputer, the ChessMachine Gideon 3.1 by Ed Schröder from The Netherlands, wins the 7th World Computer Chess Championship in front of mainframes, supercomputers and special hardware.
- 1996, Deep Blue loses a six-game match against Garry Kasparov.
- 1997, Deep Blue wins a six-game match against Garry Kasparov.
- 2002, Vladimir Kramnik draws an eight-game match against Deep Fritz.
- 2003, Kasparov draws a six-game match against Deep Junior.
- 2003, Kasparov draws a four-game match against X3D Fritz.
- 2004, a team of computers (Hydra, Deep Junior and Fritz), wins 8.5-3.5 against a rather strong human team formed by Veselin Topalov, Ruslan Ponomariov and Sergey Karjakin, who had an average ELO rating of 2681.
- 2005, Hydra defeats Michael Adams 5.5-0.5.
- 2006, the undisputed world champion, Vladimir Kramnik, is defeated 4-2 by Deep Fritz.
- 2009, Pocket Fritz 4 wins Copa Mercosur 9.5/10.[15]
See also
Notes
- ^ CCRL 40/40 - Complete list, 18 October 2008, retrieved 20 October 2008
- ^ CEGT 40/20, Chess Engines Grand Tournament, 12 October 2008, retrieved 21 October 2008
- ^ Computerschach und Spiele - Eternal Rating, Computerschach und Spiele, 18 March 2007, retrieved 21 May 2008
- ^ The SSDF Rating List, Swedish Chess Computer Association, 26 September 2008, retrieved 20 October 2008
- ^ BayesianElo Ratinglist of WBEC Ridderkerk, retrieved 20 July 2008
- ^ CCT 8 results, CCT 9 results
- ^ Rybkachess.com
- ^ 17th International Computer Chess Championship - IPCCC 2007 in Paderborn
- ^ Rebel vs Anand
- ^ ChessBase.com - Chess News - Adams vs Hydra: Man 0.5 – Machine 5.5
- ^ Once Again, Machine Beats Human Champion at Chess - New York Times
- ^ Computer Chess: The Drosophila of AI October 30, 2002
- ^ Once Again, Machine Beats Human Champion at Chess New York Times, December 5, 2006
- ^ Deep Thought wins Fredkin Intermediate Prize, Hans Berliner
- ^ a b Pocket Fritz 4 wins Copa Mercosur
- ^ Endgame Tablebases Online
- ^ Open chess diary 301-320
- ^ ChessBrain project
- ^ The size of the state space and game tree for chess were first estimated in Claude Shannon (1950), "Programming a Computer for Playing Chess" (PDF), Philosophical Magazine, 41 (314), retrieved 30 December 2008 Shannon gave estimates of 1043 and 10120 respectively, smaller than the estimates in the Game complexity table, which are from Victor Allis's thesis. See Shannon number for details.
- ^ Aviezri Fraenkel and D. Lichtenstein (1981), "Computing a perfect strategy for n×n chess requires time exponential in n", J. Combin. Theory Ser. A, 31: 199–214, doi:10.1016/0097-3165(81)90016-9
- ^ Chess, a subsection of chapter 25, Digital Computers Applied to Games, of Faster than Thought, ed. B. V. Bowden, Pitman, London (1953). Online http://www.turingarchive.org/browse.php/B/7
- ^ [1] A game played by Turing's chess algorithm
- ^ Hsu (2002) p. 292
- ^ Newborn (1997) p. 159
References
- Hsu, Feng-hsiung (2002), Behind Deep Blue: Building the Computer that Defeated the World Chess Champion, Princeton University Press, ISBN 0-691-09065-3
- Levy, David; Newborn, Monty (1991), How Computers Play Chess, Computer Science Press, ISBN 0-7167-8121-2
- Newborn, Monty (1975), Computer Chess, Academic Press, New York
- Newborn, Monty (1997), Kasparov versus Deep Blue: Computer Chess Comes of Age, Springer, ISBN 0-387-94820-1 (This book actually covers computer chess from the early days through the first match between Deep Blue and Garry Kasparov.)
- Nunn, John (2002), Secrets of Pawnless Endings, Gambit Publications, ISBN 1-901983-65-X
- Shannon, Claude E. (1950), "Programming a Computer for Playing Chess" (PDF), Philosophical Magazine, Ser.7, Vol. 41 (314), retrieved 21 June 2009
- Mastering the Game: A History of Computer Chess at Computer History Museum
- Bill Wall's Computer Chess History Timeline
Further reading
- Coles, L. Stephen (October 30, 2002), Computer Chess: The Drosophila of AI, Dr. Dobb's Journal
- Huberman (Liskov), Barbara Jane (1968), A program to play chess end games, Stanford University Department of Computer Science, Technical Report CS 106, Stanford Artifcial Intelligence Project Memo AI-65
- Newborn, Monty (1996). Outsearching Kasparov, American Mathematical Society's Proceeding of Symposia in Applied Mathematics: Mathematical Aspects of Artificial Intelligence, v. 55, pp 175–205, 1998. Based on paper presented at the 1996 Winter Meeting of the AMS, Orlando, Florida, Jan 9–11, 1996.
- Newborn, Monty (2000). Deep Blue’s contribution to AI, Annals of Mathematics and Artificial Intelligence, v. 28, pp. 27-30, 2000.
- Newborn, Monty (2006). Theo and Octopus at the 2006 World Championship for Automated Reasoning Programs, Seattle, Washington, August 18, 2006
- Stiller, Lewis (1996), Multilinear Algebra and Chess Endgames (PDF), Berkeley, California: Mathematical Sciences Research Institute, Games of No Chance, MSRI Publications, Volume 29, retrieved 21 June 2009
{{citation}}
: Italic or bold markup not allowed in:|publisher=
(help)
External links
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Wiktionary-logo-en-v2.svg/40px-Wiktionary-logo-en-v2.svg.png)
![](http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- Computer Chess Blog
- History of computer chess
- Defending Humanity's Honor, an article by Tim Krabbé about "anti-computer style" chess
- Queen Talk Chess - Open Source Chess Software for play over internet
- Computer-Chess Club - Bulletin board where professional authors discuss their programs
- A guide to Endgame Tablebases
- GameDev.net -- Chess Programming by François-Dominic Laramée
- Colin Frayn's Computer Chess Theory Page
- Template:PDFlink
- "Play chess with God" - Play chess against Ken Thompson's endgame database
- Ed Schröder's Big collection of computer chess programs, and technical papers
- Media
- The History of Computer Chess: An AI Perspective. Watch Full Lecture - WMV 183MB | Google Video featuring Murray Campbell (IBM Deep Blue Project), Edward Feigenbaum, David Levy, John McCarthy, and Monty Newborn. at Computer History Museum
- The History of Computer Chess Video (2 hour video - series of lectures)
- The History of Computer Chess: An AI Perspective (2 hour video)