Philosophical Magazine, Ser.7, Vol. 41, No. 314 - March 1950. XXII. Programming a Computer for Playing Chess (*) First presented at the National IRE Convention, March 9, 1949, New York, U.S.A. By CLAUDE E. SHANNON Bell Telephone Laboratories, Inc., Murray Hill, N.J. (+) Communicated by the Author [Received November 8, 1949] 1.INTRODUCTION This paper is concerned with the problem of constructing a computing routine or "program" for a modern general purpose computer which will enable it to play chess. 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. Some possibilities in this direction are: - (1) Machines for designing filters, equalizers, etc. (2) Machines for designing relay and switching circuits. (3) Machines which will handle routing of telephone calls based on the individual circumstances rather than by fixed patterns. (4) Machines for performing symbolic (non-numerical) mathematical operations. (5) Machines capable of translating from one language to another. (6) Machines for making strategic decisions in simplified military operations. (7) Machines capable of orchestrating a melody. (8) Machines capable of logical deduction. It is believed that all of these and many other devices of a similar nature are possible developments in the immediate future. The techniques developed for modern electronic and relay type computers make them not only theoretical possibilities, but in several cases worthy of serious consideration from the economic point of view. Machines of this general type are an extension over the ordinary use of numerical computers in several ways. First, the entities dealt with are not primarily numbers, but rather chess positions, circuits, mathematical expressions, words, etc. Second, the proper procedure involves general principles, something of the nature of judgement, and considerable trial and error, rather than a strict, unalterable computing process. Finally, the solutions of these problems are not merely right or wrong but have a continuous range of "quality" from the best down to the worst. We might be satisfied with a machine that designed good filters even though they were not always the best possible. The chess machine is an ideal one to start with, since: (1) the problem is sharply defined both in allowed operations (the moves) and in the ultimate goal (checkmate); (2) it is neither so simple as to be trivial nor too difficult for satisfactory solution; (3) chess is generally considered to require "thinking" for skilful play; a solution of this problem will force us either to admit the possibility of a mechanized thinking or to further restrict our concept of "thinking"; (4) the discrete structure of chess fits well into the digital nature of modern computers. There is already a considerable literature on the subject of chess-playing machines. During the late 19th century, the Maelzel Chess Automaton, a device invented by Von Kempelen, was exhibited widely as a chess-playing machine. A number of papers appeared at the time, including an analytical essay by Edgar Allan Poe (entitled Maelzel's Chess Player) purporting to explain its operation. Most of the writers concluded, quite correctly, that the Automaton was operated by a concealed human chess-master; the arguments leading to this conclusion, however, were frequently fallacious. Poe assumes, for example, that it is as easy to design a machine which will invariably win as one which wins occasionally, and argues that since the Automaton was not invincible it was therefore operated by a human, a clear 'non sequitur'. For a complete account of the history of the method of operation of the Automaton, the reader is referred to a series of articles by Harkness and Battell in Chess Review, 1947. A more honest attempt to design a chess-playing machine was made in 1914 by Torres y Quevedo, who 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. The thesis, we will develop is that modern general purpose computers can be used to play a tolerably good game of chess by the use of suitable computing routine or "program". White the approach given here is believed fundamentally sound, it will be evident that much further experimental and theoretical work remains to be done. 2.GENERAL CONSIDERATIONS A chess "position" may be defined to include the following data: - (1) A statement of the positions of all pieces on the board. (2) A statement of which side, White or Black, has the move. (3) A statement as to whether the king and rooks have moved. This is important since by moving a rook, for example, the right to castle of that side is forfeited. (4) A statement of, say, the last move. This will determine whether a possible en passant capture is legal, since this privilege if forfeited after one move. (5) A statement of the number of moves made since the last pawn move or capture. This is important because of the 50 move drawing rule. For simplicity, we will ignore the rule of draw after three repetitions of a position. In chess there is no chance element apart from the original choice of which player has the first move. This is in contrast with card games, backgammon, etc. Furthermore, in chess each of the two opponents has "perfect information" at each move as to all previous moves (in contrast with Kriegspiel, for example). These two facts imply (von Neumann and Morgenstern, 1944) that any given position of the chess pieces must be either: - (1) A won position for White. That is, White can force a win, however Black defends. (2) A draw position. White can force at least a draw, however Black plays, and likewise Black can force at least a draw, however White plays. If both sides play correctly the game will end in a draw. (3) A won position for Black. Black can force a win, however White plays. This is, for practical purposes, of the nature of an existence theorem. No practical method is known for determining to which of the three categories a general position belongs. If there were chess would lose most of its interest as a game. One could determine whether the initial position is a won, drawn, or lost for White and the outcome of a game between opponents knowing the method would be fully determined at the choice of the first move. Supposing the initial position a draw (as suggested by empirical evidence from master games [1]) every game would end in a draw. It is interesting that a slight change in the rules of chess gives a game for which it is provable that White has at least a draw in the initial position. Suppose the rules the same as those of chess except that a player is not forced to move a piece at his turn to play, but may, if he chooses, "pass". Then we can prove as a theorem that White can at least draw by proper play. For in the initial position either he has a winning move or not. If so, let him make this move. If not, let him pass. Black is not faced with essentially the same position that White has before, because of the mirror symmetry of the initial position [2]. Since White had no winning move before, Black has none now. Hence, Black at best can draw. Therefore, in either case White can at least draw. In some games there is a simple _evaluation function_ f(P) which can be applied to a position P and whose value determines to which category (won, lost, etc.) the position P belongs. In the game of Nim (Hardy and Wright, 1938), for example, this can be determined by writing the number of matches in each pile in binary notation. These numbers are arranged in a column (as though to add them). If the number of ones in each column is even, the position is lost for the player about to move, otherwise won. If such an evaluation function f(P) can be found for a game is easy to design a machine capable of perfect play. It would never lose or draw a won position and never lose a drawn position and if the opponent ever made a mistake the machine would capitalize on it. This could be done as follows: Suppose f(P)=1 for a won position, f(P)=0 for a drawn position, f(P)=-1 for a lost position. At the machine's turn to move it calculates f(P) for the various positions obtained from the present position by each possible move that can be made. It chooses that move (or one of the set) giving the maximum value to f. In the case of Nim where such a function f(P) is known, a machine has actually been constructed which plays a perfect game [3]. With chess it is possible, _in principle_, to play a perfect game or construct a machine to do so as follows: One considers in a given position all possible moves, then all moves for the opponent, etc., to the end of the game (in each variation). The end must occur, by the rules of the games after a finite number of moves [4] (remembering the 50 move drawing rule). Each of these variations ends in win, loss or draw. By working backward from the end one can determine whether there is a forced win, the position is a draw or is lost. It is easy to show, however, even with the high computing speed available in electronic calculators this computation is impractical. In typical chess positions there will be of the order of 30 legal moves. The number holds fairly constant until the game is nearly finished as shown in fig. 1. This graph was constructed from data given by De Groot, who averaged the number of legal moves in a large number of master games (De Groot, 1946, a). Thus a move for White and then one for Black gives about 10^3 possibilities. A typical game lasts about 40 moves to resignation of one party. This is conservative for our calculation since the machine would calculate out to checkmate, not resignation. However, even at this figure there will be 10^120 variations to be calculated from the initial position. A machine operating at the rate of one variation per micro-second would require over 10^90 years to calculate the first move! Another (equally impractical) method is to have a "dictionary" of all possible positions of the chess pieces. For each possible position there is an entry giving the correct move (either calculated by the above process or supplied by a chess master.) At the machine's turn to move it merely looks up the position and makes the indicated move. The number of possible positions, of the general order of 64! | 32! 8!^2 2!^6, or roughly 10^43, naturally makes such a design unfeasible. It is clear then that the problem is not that of designing a machine to play perfect chess (which is quite impractical) nor one which merely plays legal chess (which is trivial). We would like to play a skilful game, perhaps comparable to that of a good human player. A _strategy_ for chess may be described as a process for choosing a move in any given position. If the process always chooses the same move in the same position the strategy is known in the theory of games as a "pure" strategy. If the process involves statistical elements and does not always result in the same choice it is a "mixed" strategy. The following are simple examples of strategies:- (1) Number the possible legal moves in the position P, according to some standard procedure. Choose the first on the list. This is a pure strategy. (2) Number the legal moves and choose one at random from the list. This is a mixed strategy. Both, of course, are extremely poor strategies, making no attempt to select good moves. Our problem is to develop a tolerably good strategy for selecting the move to be made. 3.APPROXIMATE EVALUATING FUNCTIONS Although in chess there is no known simple and exact evaluating function f(P), and probably never will be because of the arbitrary and complicated nature of the rules of the game, it is still possible to perform an approximate evaluation of a position. Any good chess player must, in fact, be able to perform such a position evaluation. Evaluations are based on the general structure of the position, the number and kind of Black and White pieces, pawn formation, mobility, etc. These evaluations are not perfect, but the stronger the player the better his evaluations. Most of the maxims and principles of correct play are really assertions about evaluating positions, for example:- (1) The relative values of queen, rook, bishop, knight and pawn are about 9, 5, 3, 3, 1, respectively. Thus other things being equal (!) if we add the numbers of pieces for the two sides with these coefficients, the side with the largest total has the better position. (2) 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. (3) Backward, isolated and doubled pawns are weak. (4) An exposed king is a weakness (until the end game). These and similar principles are only generalizations from empirical evidence of numerous games, and only have a kind of statistical validity. Probably any chess principle can be contradicted by particular counter examples. However, form these principles one can construct a crude evaluation function. The following is an example:- f(P)=200(K-K')+9(Q-Q')+5(R-R')+3(B-B'+N-N')+(P-P')-.5(D-D'+S-S'+I-I') +.1(M-M')+... in which:- 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. M= White mobility (measured, say, as the number of legal moves available to White). Primed letters are the similar quantities for Black. The coefficients .5 and .1 are merely the writer's rough estimate. Furthermore, there are many other terms that should be included [5]. The formula is given only for illustrative purposes. Checkmate has been artificially included here by giving the king the large value 200 (anything greater than the maximum of all other terms would do). It may be noted that this approximate evaluation f(P) has a more or less continuous range of possible values, while with an exact evaluation there are only three possible values. This is as it should be. In practical play a position may be an "easy win" if a player is, for example, a queen ahead, or a very difficult win with only a pawn advantage. The unlimited intellect assumed in the theory of games, on the other hand, never make a mistake and a smallest winning advantage is as good as mate in one. A game between two such mental giants, Mr. A and Mr. B, would proceed as follows. They sit down at the chessboard, draw the colours, and then survey the pieces for a moment. Then either (1) Mr. A says, "I resign" or (2) Mr. B says, "I resign" or (3) Mr. A says, "I offer a draw," and Mr. B replies, "I accept." 4.STRATEGY BASED ON AN EVALUATION FUNCTION A very important point about the simple type of evaluation function given above (and general principles of chess) is that they can only be applied in relatively quiescent positions. For example, in an exchange of queens White plays, say, QxQ (x=captures) and Black will reply while White is, for a moment, a queen ahead, since Black will immediately recover it. More generally it is meaningless to calculate an evaluation function of the general type given above during the course of a combination or a series of exchanges. More terms could be added to f(P) to account for exchanges in progress, but it appears that combinations, and forced variations in general, are better accounted for by examination of specific variations. This is, in fact, the way chess players calculate. A certain number of variations are investigated move by move until a more or less quiescent position is reached and at this point something of the nature of an evaluation is applied to the resulting position. The player chooses the variation leading to the highest evaluation for him when the opponent is assumed to be playing to reduce this evaluation. The process can be described mathematically. We omit at first the fact that f(P) should be only applied in quiescent positions. A strategy of play based on f(P) and operating one move deep is the following. 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. Let M_i1, M_i2, ..., M_is be the possible answers by Black, if White chooses move M_i. Black should play to minimize f(P). Furthermore, his choice occurs _after_ White's move. Thus, if White plays M_i Black may be assumed to play the M_ij such that f(M_ijM_iP) is a _minimum_. White should play his first move such that f is a maximum after Black chooses his best reply. Therefore, White should play to maximize on M_i the quantity min f(M_ijM_iP) M_ij The mathematical process involved is shown for simple case in fig.2. The point at the left represents the position being considered. It is assumed that there are three possible moves for White, indicated by the solid lines, and if any of these is made there are three possible moves for Black, indicated by the dashed lines. The possible positions after a White and Black move are then the nine points on the right, and the numbers are the evaluations for these positions. Minimizing on the upper three gives +.1 which is the resulting value if White chooses the upper variation and Black replies with his best move. Similarly, the second and third moves lead to values of -7 and -6. Maximizing on White's move, we obtain +.1 with the upper move as White's best choice. In a similar way a two-move strategy (based on considering all variations out to 2 moves) is given by Max Min Max Min f(M_ijkl M_ijk M_ij M_i P) M_i M_ij M_ijk M_ijkl . . . . (1) The order of maximizing and minimizing this function is important. It derives from the fact that the choices of moves occur in a definite order. A machine operating on this strategy at the two-move level would first calculate all variations out to two moves (for each side) and the resulting positions. The evaluations f(P) are calculated for each of these positions. Fixing all but the last Black move, this last is varied and the move chosen which minimizes f. This is Black's assumed last move in the variation in question. Another move for White's second move is chosen and the process repeated for Black's second move. This is done for each second White move and the one chosen giving the target final f (after Black's best assumed reply in each case). In his way White's second move in each variation is determined. Continuing in this way the machine works back to the present position and the best first White move. This move in then played. This process generalizes in the obvious way for any number of moves. A strategy of this sort, in which all variations are considered out to a definite number of moves and the move then determined form a formula such as (1) will be called type A strategy. The type A strategy has certain basic weaknesses, which we will discuss later, but is conceptually simple, and we will first show how a computer can be programmed for such a strategy. 5.PROGRAMMING a GENERAL PURPOSE COMPUTER FOR A TYPE A STRATEGY We assume a large-scale digital computer, indicated schematically in Fig. 3, with the following properties:- (1) There is a large internal memory for storing numbers. The memory is divided into a number of boxes each capable of holding, say, a ten-digit number. Each box is assigned a "box number". (2) There is an arithmetic organ which can perform the elementary operations of addition, multiplication, etc. (3) The computer operates under the control of a "program". The program consists of a sequence of elementary "orders". A typical order is A 372, 451, 133. This means, extract the contents of box 372 and of box 451, add these numbers, and put the sum in box 133. Another type of order involves a decision, for example C 291, 118, 345. This tells the machine to compare the contents of box 291 and 118. If the first is larger the machine goes on to the next order in the program. If not, it takes its next order from box 345. This type of order enables the machine to choose from alternative procedures, depending on the results of previous calculations. It is assumed that orders are available for transferring numbers, the arithmetic operations, and decisions. Our problem is to represent chess as numbers and operations on numbers, and to reduce the strategy decided upon to a sequence of computer orders. We will not carry this out in detail but only outline the programs. As a colleague puts it, the final program for a computer must be written in words of one microsyllable. The rather Procrustean tactics of forcing chess into an arithmetic computer are dictated by economic considerations. Ideally, we would like to design a special computer for chess containing, in place of the arithmetic organ, a "chess organ" specifically designed to perform the simple chess calculations. Although a large improvement in speed of operation would undoubtedly result, the initial cost of computers seems to prohibit such a possibility. It is planned, however, to experiment with a simple strategy on one of the numerical computers now being constructed. A game of chess can be divided into three phases, the opening, the middle game, and the end game. Different principles of play apply in the different phases. In the opening, which generally lasts for about ten moves, development of the pieces to good positions is the main objective. During the middle game tactics and combinations are predominant. This phase lasts until most of the pieces are exchanged, leaving only kings, pawns and perhaps one or two pieces on each side. The end game is mainly concerned with pawn promotion. Exact timing and such possibilities as "Zugzwang", stalemate, etc., become important. Due to the difference in strategic aims, different programs should be used for the different phases of a game. We will be chiefly concerned with the middle game and will not consider the end game at all. There seems no reason, however, why an end game strategy cannot be designed and programmed equally well. A square on a chessboard can be occupied in 13 different ways: either it is empty (o) or occupied by one of the six possible kinds of White pieces (P=1, N=2, B=3, R=4, Q=5, K=6) or one of the six possible Black pieces (P=-1, N=-2, ..., K=-6). Thus, the state of a square is specified by giving an integer from -6 to +6. The 64 squares can be numbered according to a co-ordinate system as shown in Fig. 4. The position of all pieces is then given by a sequence of 64 numbers each lying between -6 and +6. A total of 256 bits (binary digits) is sufficient memory in this representation. Although not the most efficient encoding, it is a convenient one for calculation. One further number lambda will be +1 or -1 according as it is White's or Black's move. A few more should be added for data relating to castling privileges (whether the White or Black kings and rooks have moved), and en passant captures(e.g., a statement of the last move). We will neglect these, however. In this notation the starting chess position is given by:- 4, 2, 3, 5, 6, 3, 2, 4; 1, 1, 1, 1, 1, 1, 1, 1; 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0; -1, -1, -1, -1, -1, -1, -1, -1; -4, -2, -3, -5, -6, -3, -2, -4; +1 (=lambda) A move (apart from castling and pawn promotion) can be specified by giving the original and final squares occupied by the moved piece. each of these squares is a choice from 64, thus 6 binary digits each is sufficient, a total of 12 for the move. Thus the initial move P-K4 would be represented by 1, 4; 3, 4. To represent pawn promotion on a set of three binary digits can be added specifying the pieces that the pawn becomes. Castling is described by the king move (this being the only way the king can move two squares). Thus, a move is represented by (a, b, c) where a and b are squares and c specifies a piece in case of promotion. The complete program for a type A strategy consists on nine subprograms which we designate T_0, T_1, ..., T_8 and a master program T_9. The basic functions of these programs are as follows:- T_0 - Makes move (a, b, c) in position P to obtain the resulting position. T_1 - Makes a list of the possible moves of a pawn at square (x, y) in position P. T_2, ..., T_6 - Similarly for other types of pieces: knight, bishop, rook, queen and king. T_7 - Makes list of all possible moves in a given position. T_8 - Calculates the evaluating function f(P) for a given position P. T_9 - Master program; performs maximizing and minimizing calculation to determine proper move. With a given position P and a move (a, b, c) in the internal memory of the machine it can make the move and obtain the resulting position by the following program T_0. (1) The square corresponding to number a in the position is located in the position memory. (2) The number in this square x is extracted and replaced by 0 (empty). (3) (a) If x=1, and the first co-ordinate of a is 6 (White pawn being promoted) or if x=-1 and the first co-ordinate of a is 1 (Black pawn being promoted), the number c is placed in square b (replacing whatever was there). (b) If x=6 and a-b=2 (White castles, king side) 0 is placed in squares 04 and 07 and 6 and 4 in squares 06 and 05, respectively. Similarly for the cases x=6, b-a=2 (White castles, queen side) and x=-6, a-b=+-2 (Black castles, king or queen side). (c) In all other cases, x is placed in square b. (4) The sign of lambda is changed. For each type of piece there is a program for determining its possible moves. As a typical example the bishop program, T_3, is briefly as follows. Let (x, y) be the co-ordinates of the square occupied by the bishop. (1) Construct (x+1,y+1) and read the contents u of this square in the position P. (2) If u=0 (empty) list the move (x, y), (x+1,y+1) and start over with (x+2,y+2) instead of (x+1,y+1). If lambda*u is positive (own piece in the square) continue to 3. If lambda*u is negative (opponent's piece in the square) list the move and continue to 3. If the square does not exist continue to 3. (3) Construct (x+1,y-1) and perform similar calculation. (4) Similarly with (x-1,y+1). (5) Similarly with (x-1,y-1). By this program a list is constructed of the possible moves of a bishop in a given position P. Similar programs would list the moves of any other piece. There is considerable scope for opportunism in simplifying these programs; e.g., the queen program, T_5, can be a combination of the bishop and rook program, T_3 and T_4. Using the piece programs T_1 ... T_6 and a controlling program T_7 the machine can construct a list of all possible moves in any given position P. The controlling program T_7 is briefly as follows (omitting details):- (1) Start at square 1,1 and extract contents x. (2) If lambda*x is positive start corresponding piece program T_x and when complete return to (1) adding 1 to square number. If lambda8x is zero or negative, return to 1 to square number. (3) test each of the listed moves for legality and discard those which are illegal. This is done by making each of the moves in the position P (by program T_0) and examining whether it leaves the king in check. With the programs T_0 .... T_7 it is possible for the machine to play legal chess, merely making a randomly chosen legal move at each turn to move. The level of play with such a strategy in unbelievably bad [6]. The writer played a few games against this random strategy and was able to checkmate generally in four or five moves (by fool's mate, etc.). The following game will illustrate the utter purposelessness of random play:- White (Random) Black (1) P-KN3 P-K4 (2) P-Q3 B-B4 (3) B-Q2 Q-B3 (4) N-QB3 QxP mate We now return to the strategy based on the evaluation f(P). The program T_8 performs the function of evaluating a position according to the agreed-upon f(P). This can be done by the obvious means of scanning the squares and adding the terms involved. It is not difficult to include terms such as doubled pawns, etc. The final master program T_9 is needed to select the move according to the maximizing and minimizing process indicated above. On the basis of one move (for each side) T_9 works as follows:- (1) Lists the legal moves (by T_7) possible in the present position. (2) Take the first in the list and make this move by T_0, giving position M_1P. (3) List the Black moves in M_1P. (4) Apply the first one giving M_11 M_1 P, and evaluate by T_8. (5) Apply the second Black move M_12 and evaluate. (6) Compare, and reject the move with the smaller evaluation. (7) Continue with the third Black move and compare with the retained value, etc. (8) When the Black moves are exhausted, one will be retained together with its evaluation. The process is now repeated with the second White move. (9) The final evaluation from these two computation are compared and the maximum retained. (10) This is continued with all White moves until the best is selected (i.e. the one remaining after all are tried). This is the move to be made. These programs are, of course, highly iterative. For that reason they should not require a great deal of program memory if efficiently worked out. The internal memory for positions and temporary results of calculations when playing three moves deep can be estimated. Three positions should probably be remembered: the initial position, the next to the last, and the last position (now being evaluated). This requires some 800 bits. Furthermore, there are five lists of moves each requiring about 30x12= 360 bits, a total of 1800. Finally, about 200 bits would cover the selections and evaluations up to the present calculation. Thus, some 3000 bits would suffice. 6.IMPROVEMENTS IN THE STRATEGY Unfortunately a machine operating according to the type A strategy would be both slow and a weak player. It would be slow since even if each position were evaluated in one microsecond (very optimistic) there are about 10^9 evaluations to be made after three moves (for each side). Thus, more than 16 minutes would be required for a move, or 10 hours for its half of a 40-move game. It would be weak in playing skill because it is only seeing three moves deep and because we have not included any condition about quiescent positions for evaluation. The machine is operating in an extremely inefficient fashion - it computes all variations to exactly three moves and then stops (even though it or the opponent be in check). A good human player examines only a few selected variations and carries these out to a reasonable stopping point. A world champion can construct (at best) combinations say, 15 or 20 moves deep. Some variations given by Alekhine ("My Best Games of Chess 1924-1937") are of this length. Of course, only a few variations are explored to any such depth. In amateur play variations are seldom examined more deeply than six or eight moves, and this only when the moves are of a highly forcing nature (with very limited possible replies). More generally, when there are few threats and forceful moves, most calculations are not deeper than one or two moves, with perhaps half-a-dozen forcing variations explored to three, four or five moves. On this point a quotation from Reuben Fine (Fine 1942), a leading American master, is interesting: "Very often people have the idea that masters foresee everything or nearly everything; that when they played P-R3 on the thirteenth move they foresaw that this would be needed to provide a loophole for the king after the combinations twenty moves later, or even that when they play 1 P-K4 they do it with the idea of preventing Kt-Q4 on Black's twelfth turn, or they feel that everything is mathematically calculated down to the smirk when the Queen's Rook Pawn queens one move ahead of the opponent's King's Knight's Pawn. All this is, of course, pure fantasy. The best course to follow is to note the major consequences for two moves, but try to work out forced variations as they go." The amount of selection exercised by chess masters in examining possible variations has been studied experimentally by De Groot (1946, b). He showed various typical positions to chess masters and asked them to decide on the best move, describing aloud their analyses of the positions as they thought them through. In this manner the number and depth of the variations examined could be determined. Fig. 5 shows the result of one such experiment. In this case the chess master examined sixteen variations, ranging in depth from 1/2 (one Black move) to 4-1/2 (five Black and four White) moves. The total number of positions considered was 44. From these remarks it appears that to improve the speed and strength of play the machine must:- (1) Examine forceful variations out as far as possible and evaluate only at reasonable positions, where some quasi-stability has been established. (2) Select the variations to be explored by some process so that the machine does not waste its time in totally pointless variations. A strategy with these two improvements will be called a type B strategy. It is not difficult to construct programs incorporating these features. For the first we define a function g(P) of a position which determines whether approximate stability exists (no pieces en prise, etc.). A crude definition might be: | 1 if any piece is attacked by a piece of lower value, g(P) = / or by more pieces then defences of if any check exists \ on a square controlled by opponent. | 0 otherwise. Using this function, variations could be explored until g(P)=0, always, however, going at least two moves and never more say, 10. The second improvement would require a function h(P,M) to decide whether a move M in position P is worth exploring. It is important that this preliminary screening should _not_ eliminate moves which merely look bad at first sight, for example, a move which puts a piece en prise; frequently such moves are actually very strong since the piece cannot be safely taken. "Always give check, it may be mate" is tongue-in-check advice given to beginners aimed at their predilection for useless checks. "Always investigate a check, it may lead to mate" is sound advice for any player. A check is the most forceful type of move. The opponent's replies are highly limited - he can never answer by counter attack, for example. This means that a variation starting with a check can be more readily calculated than any other. Similarly captures, attacks on major pieces, threats of mate, etc., limit the opponent's replies and should be calculated whether the move looks good at first sight or not. Hence h(P,M) should be given large values for all forceful moves (check, captures and attacking moves), for developing moves, medium values for defensive moves, and low values for other moves. In exploring a variation h(P,M) would be calculated as the machine computes and would be used to select the variation considered. As it gets further into the variation the requirements on h are set higher so that fewer and fewer subvariations are examined. Thus, it would start considering every first move for itself, only the more forceful replies, etc. By this process its computing efficiency would be greatly improved. It is believed that an electronic computer incorporating these two improvements in the program would play a fairly strong game, at speeds comparable to human speeds. It may be noted that a machine has several advantages over humans:- (1) High-speed operations in individual calculations. (2) Freedom from errors. The only errors will be due to deficiencies of the program while human players are continually guilty of very simple and obvious blunders. (3) Freedom from laziness. It is all too easy for a human player to make instinctive moves without proper analysis of the position. (4) Freedom from "never". Human players are prone to blunder due to over-confidence in "won" positions or defeatism and self-recrimination in "lost" positions. These must be balanced against the flexibility, imagination and inductive and learning capacities of the human mind. Incidentally, the person who designs the program can calculate the move that the machine will choose in any position, and thus in a sense can play an equally good game. In actual facts, however, the calculation would be impractical because of the time required. On a fair basis of comparison, giving the machine and the designer equal time to decide on a move, the machine might well play a stronger game. 7.VARIATIONS IN PLAY AND IN STYLE As described so far 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. It is desirable to avoid this, since if the opponent wins one game he could play the same variation and win continuously, due perhaps to same particular position arising in the variation where the machine chooses a very weak move. One way to prevent this is to leave a statistical element in the machine. Whenever there are two or more moves which are of nearly equal value according to the machine's calculations it chooses from them at random. In the same position a second time it may then choose another in the set. 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. For the first few moves (until either the opponent deviates from the "book" or the end of the stored variation is reached) the machine play by memory. This is hardly "cheating" since that is the way chess masters play the opening. It is interesting that the "style" of play of the machine can be changed very easily by altering some of the coefficients and numerical factors involved in the evaluation function and the other programs. By placing high values on positional weaknesses, etc., a positional-type player results. By more intensive examination of forced variations it becomes a combination player. Furthermore, the strength of the play can be easily adjusted by changing the depth of calculation and by omitting or adding terms to the evaluation function. Finally we may note that a machine of this type will play "brilliantly" up to its limits. It will readily sacrifice a queen or other pieces in order to gain more material later of to give checkmate provided the completion of the combination occurs within its computing limits. The chief weakness is that the machine will not learn by mistakes. The only way to improve its play is by improving the program. Some thought has been given to designing a program which is self-improving but, although it appears to be possible, the methods thought of so far do not seem to be very practical. One possibility is to have a higher level program which changes the terms and coefficients involved in the evaluation function depending on the results of games the machine has played. Slam variations might be introduced in these terms and the values selected to give the greatest percentage of "wins". 8.ANOTHER TYPE OF STRATEGY The strategies described above do not, of course, exhaust the possibilities, In fact, there are undoubtedly others which are far more efficient in the use of the available computing time on the machine. Even with the improvements we have discussed the above strategy gives an impression of relying too much on "brute force" calculations rather than on logical analysis of a position. it plays something like a beginners at chess who has been told some of the principles and is possessed of tremendous energy and accuracy for calculation but has no experience with the game. A chess master, on the other hand, has available knowledge of hundreds or perhaps thousands of standard situations, stock combinations, and common manoeuvres which occur time and again in the game. There are, for example, the typical sacrifices of a knight at B7 or a bishop at R7, the standard mates such as the "Philidor Legacy", manoeuvres based on pins, forks, discoveries, promotion, etc. In a given position he recognizes some similarity to a familiar situation and this directs his mental calculations along the lines with greater probability of success. There is reason why a program base don such "type position" could not be constructed. This would require, however, a rather formidable analysis of the game. Although there are various books analysing combination play and the middle game, they are written for human consumption, not for computing machines. It is possible to give a person one or two specific examples of a general situation and have him understand and apply the general principles involved. With a computer an exact and completely explicit characterization of the situation must be given with all limitations, special cases, etc. taken into account. We are inclined to believe, however, that if this were done a much more efficient program would result. 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 B3 is pined by a bishop, that the White rook at K1 cannot leave the back rank because of a threatened mate on B8, that a White knight at R4 has no move, etc.; in short, all the facts to which a chess player would ascribe importance in analysing tactical possibilities. These data would be supplied by a program and would be continually changed and kept up-to-date as the game progressed. The analytical data would be used to trigger various other programs depending on the particular nature of the position. A pinned piece should be attacked. If a rook must guard the back rank it cannot guard the pawn in front of it, etc. The machine obtains in this manner suggestions of plausible moves to investigate. It is not being suggested that we should design the strategy in our own image. Rather it should be matched to the capacities and weakness of the computer. The computer is strong in speed and accuracy and weak in analytical abilities and recognition. Hence, it should make more use of brutal calculation than humans, but with possible variations increasing by a factor of 10^3 every move, a little selection goes a long way forward improving blind trial and error. ACKNOWLEDGEMENT. The writer in indebted to E.G. Andrews, L.N. Enequist and H.E. Singleton for a number of suggestions that have been incorporated in the paper. October 8, 1948. [1] The world championship match between Capablanca and Alekhine ended with the score Alekhine 6, Capablanca 3, drawn 25. [2] The fact that the number of moves remaining before a draw is called by the 50-move rule has decreased does not affect the argument. [3] Condon, Tawney and Derr, U.S. Patent 2,215,544. The "Nimotron" based on this patent was built and exhibited by Westinghouse at the 1938 New York World's Fair. [4] The longest game is 6350 moves, allowing 50 moves between each pawn move or capture. The longest tournament game on record between masters lasted 168 moves, and the shortest four moves. (Chernev, Curious Chess Facts, The Black Knight Press, 1937.) [5] See Appendix I. [6] Although there is a finite probability, of the order of 10^-75, that random play would win a game from Botvinnik. Bad as random play is, there are even worse strategies which choose moves which actually aid the opponent. For example, White's strategy in the following game: 1. P-KB3, P-K4. 2. P-KN4, Q-R5 mate. ____________________________ APPENDIX. THE EVALUATION FUNCTION FOR CHESS The evaluation function f(P) should take into account the "long term" advantages and disadvantages of a position, i.e. effects which may be expected to persist over a number of moves longer than individual variations are calculated. Thus the evaluation is mainly concerned with positional or strategic considerations rather than combinatorial or tactical ones. Of course there is no sharp line of division; many features of a position are on the borderline. It appears, however, that the following might properly be included in f(P):- (1) Material advantage (difference in total material). (2) Pawn formation: (a) Backward, isolated and doubled pawns. (b) Relative control of centre (pawns at K4,Q4,B4). (c) Weakness of pawns near king (e.g. advanced KNP). (d) Pawns on opposite colour squares from bishop. (e) Passed pawns. (3) Positions of pieces: (a) Advanced knights (at K5,Q5,B5,K6,Q6,B6), especially if protected by pawn and free from pawn attack. (b) Rook on open file, or semi-open file. (c) Rook on seventh rank. (d) Doubled rooks. (4) Commitments, attacks and options: (a) Pieces which are required for guarding functions and, therefore, committed and with limited mobility. (b) Attacks on pieces which give one player an option of exchanging. (c) Attacks on squares adjacent to king. (d) Pins. We mean here immobilizing pins where the pinned piece is of value not greater than the pinning piece; for example, a knight pinned by a bishop. (5) Mobility. These factors will apply in the middle game: during the opening and end game different principles must be used. The relative values to be given each of the above quantities is open to considerable debate, and should be determined by some experimental procedure. There are also numerous other factors which may well be worth inclusion. The more violent tactical weapons, such as discovered checks, forks and pins by a piece of lower value are omitted since they are best accounted for by the examination of specific variations. REFERENCES Chernev, 1937, Curious Chess Facts, The Black Knight Press. De Groot, A.D., 1946a, Het Denken van den Schaker 17-18, Amsterdam; 1946b, Ibid., Amsterdam, 207. Fine, R., 1942, Chess the easy Way, 79, David McKay. Hardy and Wright, 1938, The Theory of Numbers, 116, Oxford. Von Neumann and Morgenstern, 1944, Theory of Games, 125, Princeton. Vigneron, H., 1914, Les Automates, La Natura. Wiener, N., 1948, Cybernetics, John Wiley.