Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Computer chess


Published on

  • Login to see the comments

  • Be the first to like this

Computer chess

  1. 1. Computer Chess by Arkadiusz Janicki General Game Playing Seminar dr Paweł Rychlikowski Institute of Computer Science the Wrocław University 2009-11-25
  2. 2. References <ul><li>Claude E. Shannon (1949) Programming a Computer for Playing Chess. In: Philosophical Magazine, Ser.7, Vol. 41, No. 314 - March 1950 .
  3. 3. T.A. Marsland (1992) Computer Chess and Search. Encyclopedia of Artificial Intelligence , S.C. Shapiro (ed), pp. 224r-241, Wiley & Sons, 2nd ed. 1992, ISBN 0471-50305-3.
  4. 4. Ernst A. Heinz (1997) How DarkThought Plays Chess, ICC A Journal 20(3), pp. 166-176, Sept. 1997.
  5. 5. John L. Jerz (2009) A Proposed Heuristic for a Computer Chess Program
  6. 6. Computer History Museum , Mastering the Game – A History of Computer Chess,
  7. 7. Wikipedia , accessed November 2009 </li></ul>
  8. 8. Part 1: History
  9. 9. The Turk In 1769 the Hungarian engineer Baron Wolfgang von Kempelen built a chess playing machine for the amusement of the Austrian Queen Maria Theresia. It was a purely mechanical device, shaped like a Turk. Naturally its outstanding playing strength was supplied by a chess master cleverly hidden inside the device. The machine was a fake.
  10. 11. 1914 - El Ajedrecista In 1914 Torres y Quevedo constructed a device which played an end game of king and rook against king (Vigneron, 1914). The machine played the side with king and rook and would force checkmate in few moves however its human opponent played. Since an explicit set of rules can be given for making satisfactory moves in such an end game, the problem is relatively simple, but the idea was quite advanced for that period.
  11. 12. Gonzales Torres y Quevedo demonstrating the chess automaton to Norbert Wiener in 1951
  12. 13. <ul>1947 Alan Turing </ul><ul><li>In 1947, Turing designed the first program to play chess and tested it with paper and pencil using himself as the computer </li></ul>
  13. 14. <ul>1949 Claude Shannon </ul>“ Although perhaps of no practical importance, the question is of theoretical interest, and it is hoped that a satisfactory solution of this problem will act as a wedge in attacking other problems of a similar nature and of greater significance. .” „ Programming a Computer for Playing Chess”
  14. 15. First Computer Programs Dr. Dietrich Prinz in England wrote the first limited chess program in 1951. Alex Bernstein, an experienced chess player and a programmer at IBM, wrote a program in 1958 that could play a full chess game (although it could be defeated by novice players).
  15. 16. 1968 - Historyczny zakład <ul><li>W 1968 roku David Levy założył się o 1,250 funtów, że w ciągu 10 lat żaden komputer nie będzie w stanie go pokonać. W 1978 wygrał ten zakład pokonując najszybszy w tym czasie program Chess 4.7 </li></ul>
  16. 17. <ul><li>1983 US Master rating in - $5000 goes to Ken Thompson and Joe Condon, when their Belle
  17. 18. $10,000 for the first program to achieve a USCF 2500 rating (players who attain this rating may reasonably aspire to becoming Grandmasters) was awarded to Deep Thought in August 1989
  18. 19. $100,000 for attaining world-champion status remains unclaimed. </li></ul>
  19. 20. Brutforce hardware In 1977 at Bell Laboratories, Ken Thompson and Joe Condon took the brute force approach one step further by developing a custom chess-playing computer called Belle . By 1980 it included highly specialized circuitry that contained a “move generator” and “board evaluator,” allowing the computer to examine 160,000 positions per second. This approach was so effective that in 1982 at the North American Computer Chess Championships (NACCC), this $17000 chess machine beat the Cray Blitz program running on a million supercomputer.
  20. 21. Liga mistrzów <ul><li>W 1989 programy były wciąż za słabe aby pokonać mistrzów świata. Garry Kasparov bez problemu pokonuje wszystkie.
  21. 22. W 1996 Deep Blue pokonuje Kasparova (1 z 6 gier) </li></ul>„ The Association for Computing Machinery (ACM), the first society in computing, announces a six game match between World Chess Champion Garry Kasparov and the top-rated chess program DEEP BLUE. A $500,000 prize fund has been established for the match to be held in Philadelphia, Pa., USA, Feb. 10-17, 1996, as part of ACM's year long 50th Anniversary Celebration which begins with the ACM Computing Week '96 conference. The winner will receive $400,000 with the remaining $100,000 going to the loser.”
  22. 23. 1997 Game Over
  23. 25. Advanced Chess
  24. 26. Part 2: Implementation
  25. 27. Shannon „Type A” Strategy Evaluating Function: <ul><li>The relative values of queen, rook, bishop, knight and pawn are about 9, 5, 3, 3, 1, respectively.
  26. 28. Rooks should be placed on open files. This is part of a more general principle that the side with the greater mobility, other things equal, has the better game.
  27. 29. Backward, isolated and doubled pawns are weak.
  28. 30. An exposed king is a weakness (until the end game). </li></ul>f(P) = 200(K-K') + 9(Q-Q') + 5(R-R') + 3(B-B'+N-N') + (P-P') – 0.5(D-D'+S-S'+I-I') + 0.1(M-M') + ... K,Q,R,B,B,P are the number of White kings, queens, rooks, bishops, knights and pawns on the board. D,S,I are doubled, backward and isolated White pawns. Weakness – ie. exchange of queens
  29. 31. Shannon „Type A” Strategy ” Type A” strategy considered all possible moves to a fixed depth. A world champion can construct (at best) combinations say, 15 or 20 moves deep. Some variations given by Alekhine (&quot;My Best Games of Chess 1924-1937&quot;) are of this length. Let M_1, M_2, M_3, ..., M_s be the moves that can be made in position P and let M_1P, M_2P, etc. denote symbolically the resulting positions when M_1, M_2, etc. are applied to P. Then one chooses the M_m which maximizes f(M_mP). A deeper strategy would consider the opponent's replies which are minimized ...
  30. 32. “ Type B” strategy “ Type B” strategy used chess knowledge to explore the more promising lines to a greater depth. <ul><li>Examine forceful variations out as far as possible and evaluate only at reasonable positions , where some quasi-stability has been established.
  31. 33. Select the variations to be explored by some process so that the machine does not waste its time in totally pointless variations. </li></ul>A crude definition might be: <ul><li>g(P) = 1 - if any piece is attacked by a piece of lower value or by more pieces than defences or if any check exists on a square controlled by the opponent
  32. 34. g(P) = 0 otherwise </li></ul>Using this function, variations could be explored until g(P)=0, always, however, going at least two moves and never more, say, 10.
  33. 35. Shannon's ideas (...) the machine once designed would always make the same move in the same position. If the opponent made the same moves this would always lead to the same game. (...) the opening is another place where statistical variation can be introduced. It would seem desirable to have a number of the standard openings stored in a slow-sped memory in the machine. Perhaps a few hundred would be satisfactory. (...) program based on &quot;type position&quot; could not be constructed. (...). Although there are various books analysing combination play and the middle game, they are written for human consumption, not for computing machines. (...)To program such a strategy we might suppose that any position in the machine is accompanied by a rather elaborate analysis of the tactical structure of the position suitably encoded. This analytical data will state that, for example, the Black knight at f6 is pinned by a bishop, that the White rook at e1 cannot leave the back rank because of a threatened mate on c1, that a White knight at a4 has no move, etc. ; - These data would be supplied by a program and would be continually changed and kept up-to-date as the game progressed.
  34. 36. Chess Program Anatomy <ul><li>Board description and move generation
  35. 37. Tree searching/pruning
  36. 38. Position evaluation </li></ul>
  37. 39. Bit Boards: a mapping of the chess board squares to the computer’s internal binary structure, which allows the computer to store and analyze board positions very efficiently DeepThought bit boards
  38. 40. Opening Books: a listing of known good move sequences that can be used at the beginning of a chess game. Endgame Databases: a catalog of previously analyzed board configurations near the end of a chess game that allows the program to play the remaining moves of the game flawlessly.
  39. 41. Transposition tables (hash tables) A way to quickly check a catalog of positions already examined, which cuts down the number of positions that must be searched. 12 different piece types {K,Q,R,B,N,P,–K ... –P} on a 64-square board. Thus a set of 12*64 unique integers (plus a few more for en passant and castling privileges), { Ri }, may be used to represent all the possible piece/square combinations. Zobrist (1970) Pawn hash table - similar technique can be used to store an evaluation of the pawn structures in a position. Since the number of pawn positions examined is generally much smaller than the total number of positions searched, the pawn hash table has a very high hit rate, allowing a program to spend more time on sophisticated pawn evaluations because they are reused many times.
  40. 42. Searching A model chess program has three phases to its search: <ul><li>Typically, from the root node an exhaustive examination of layers of moves occurs,
  41. 43. This is followed by a phase of selective searches up to a limiting depth ( the horizon ).
  42. 44. An evaluation function is applied at the frontier nodes to assess the material balance and the structural properties of the position (e.g., relative placement of pawns). To aid in this assessment a third phase is used, a variable depth quiescence search of those moves that are not dead (i.e., cannot be accurately assessed). </li></ul>
  43. 46. Horizon Effect (..., Pb2; Bxb2, Pc3; Bxc3, Pd4; Bxd4, Pe5; Bxe5)
  44. 47. DarkThough Search Alpha-Beta searcher with enhancements like: <ul><li>aggressive futility pruning [19, 31],
  45. 48. internal iterative deepening [3, 33], *
  46. 49. dynamic move ordering (history+ killer heuristic) [2, 16, 30, 32, 35], *
  47. 50. recursive null-move pruning [7, 15, 17], *
  48. 51. selective extensions [3, 6],
  49. 52. interior-node recognizers [18, 34], </li></ul>On average, all enhancements taken together reduce the effective branching factor of DARKTHOUGHT to 2-3 and its search-tree size to roughly 55% of that of the according minimal tree [21]. These observations are consistent with reports by other researchers [6, 38],
  50. 53. Iterative Deepening Iterative Deepening: a technique that gradually increases the depth of the search tree (the number of moves and counter-moves) that is examined, rather than searching to a fixed depth. This allows the most efficient use of the limited time each player is given to choose a move.
  51. 55. DarkThought implements a standard node-expansion procedure whose structure probably does not differ much from that of other chess programs: • e xtension decisions related to incoming move (U), • internal iterative deepening (U), * • transposition-table lookup (L/U), * • interior-node recognizer decision (L/U), • endgame database lookup (L/U), * • null-move search with deep extension decision (U), * • single-reply extension decision (U), • futility pruning decision (F/L), • static evaluation (F/L), • search of all outgoing moves (L/U). 1. hashed move from transposition table (L/U), * 2. capture moves in MVV/LVA order (L/U), ( most valuable victim / least valuable aggressor) 3. killer moves (U), * 4. history moves (U), * 5. statically presorted remaining moves (U). F means &quot;frontier&quot; (depth = 1), L &quot;lower part&quot; (depth < 0), and U &quot;upper part&quot; (depth > 1)
  52. 56. Killer heuristic, History heuristic .. produce a cutoff by assuming that a move that produced a cutoff in another branch at the same depth is likely to produce a cutoff in the present position, that is to say that a move that was a very good move from a different (but possibly similar) position might also be a good move in the present position. By trying the killer move before other moves, a game playing program can often produce an early cutoff, saving itself the effort of considering or even generating all legal moves from a position. A generalization of the killer heuristic is the history heuristic. The history heuristic can be implemented as a table that is indexed by some characteristic of the move, for example &quot;from&quot; and &quot;to&quot; squares or piece moving and the &quot;to&quot; square. When there is a cutoff, the appropriate entry in the table is incremented, such as by adding d² or 2d where d is the current search depth. This information is used when ordering moves.
  53. 57. Null-move heuristic current position is so good for the side to move that best play by the other side would have avoided it. The faster the program produces cutoffs, the faster the search runs. The null-move heuristic is designed to guess cutoffs with less effort than would otherwise be required, whilst retaining a reasonable level of accuracy. The null-move heuristic is based on the fact that most reasonable chess moves improve the position for the side that played them. So, if the player whose turn it is to move can forfeit the right to move (or make a &quot;null move&quot; - an illegal action in chess) and still have a position strong enough to produce a cutoff, then the current position would almost certainly produce a cutoff if the current player actually moved.
  54. 58. Deep Thought - Programmable Evaluation Function • Material-balance scoring, • evaluation flitihty-pruning decision, • Pawn-structure scoring (H), • Pawn-related King scoring (H), • race scoring of passed Pawns, • PST piece-placement scoring, • positional futility-pruning decision, • flirt her positional scoring (H). For all steps marked with an H, the evaluation infrastructure automatically hashes the computed scores.
  55. 59. Thank You