Jump Over Left Menu
Book Cover: Published 1972 by Allen and Unwin
This whole book is itself only an introduction to a subject which has attracted many people of great eminence in the field of computer theory. The first attempt to construct a computer was by Charles Babbage, a British mathematician, over a hundred years ago. Although the machine was intended for the computation of mathematical tables (and was incapable of realisation at the time), Babbage saw the possibility of his machine being used to play chess.
Alan Turing, another British mathematician, was one of the first to write on the subject in his paper Digital Computers Applied to Games (18). He wrote that The reader might well ask why we bother to use these complicated and expensive machines in so trivial a pursuit as playing games. Turing, being very eminent, wrote that no excuses are either necessary or called for, but felt that such research was justified in that it exposed the difficulties of programming machines which are basically intended to do boring numerical calculations on even more boring numerical problems. To this end machines have been designed with hardware which can add, subtract, multiply, divide, etc., and software which can accept programs which are written in a pseudo-mathematical fashion, e.g. a = b + c - d*e/f, incorporating arrays, iterations, useful mathematical functions, etc.
Fortunately games can be expressed mathematically, though why we should do so is debatable. Modern research is going towards the ability to converse with machines in the way humans talk and teach among themselves. At the moment computers have only two advantages over humans: they have near perfect memories and are very fast. They can usefully solve problems no human can if a time limit is involved (e.g. weather prediction).
The game of chess has been programmed many times in the past twenty years, and is used as an example in many parts of this book. Perhaps the most succinct expression of a raison d'etre is by Newell, Simon, and Shaw (17), If one could devise a successful chess machine, one would seem to have penetrated to the core of human intellectual behaviour. Similarly Shannon (27), Chess is generally considered to require thinking for skilful play; a solution of this problem will force us either to admit the possibility of mechanised thinking or to further restrict our concept of thinking. Some important game playing techniques have appeared, the alpha-beta heuristic being an example (see Chapter 4.1). In fact many compiling techniques have their origin in a game playing technique, and there is no compiling technique which cannot be usefully used in playing certain games, the two subjects being so closely related.
Because game playing is related to programming theory and technique, it provides excellent examples when teaching this subject. To illustrate this, Chapter 6 (Practical Problems) discusses five games which are only incompletely solved but present good techniques. Apart from the educational aspects and training of programmers there are commercial benefits. Manufacturers have realised that they are more likely to improve their sales if their new machines can win at chess than if they can invert nonsensical matrices. The lay purchaser is more likely to prefer a chess program (which he believes he understands) as a measure of the power and speed of a machine. Indeed, as consoles become more and more common, then eventually computers will become as available as the television set. If so, it is very likely that future generations will use them in their leisure time to interact with game playing programs. The commercial profits of such entertainment could well exceed that of any useful activity (see Chapter 7).
Unfortunately, at the moment, most people who wish to play games with computers do not have the eminence of a Turing et al. Rather than convince the reader, they have to convince the firm that such work is useful. A word of advice: do not say you wish to play games. Much better is a wish to study dynamic techniques of search and evaluation in a multi-dimensional problem space incorporating information retrieval and realised in a Chomsky Type 2 language.
For further reading, a selected bibliography on game playing by computers has been compiled by Ralph London and Abimbola Salako of the Computer Science Department, University of Wisconsin 53706. Copies may be obtained from the authors.