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.