Copyright (c) 2013 John L. Jerz

Computers, Chess and Long-Range Planning by Botvinnik

Home
A Proposed Heuristic for a Computer Chess Program (John L. Jerz)
Problem Solving and the Gathering of Diagnostic Information (John L. Jerz)
A Concept of Strategy (John L. Jerz)
Books/Articles I am Reading
Quotes from References of Interest
Satire/ Play
Viva La Vida
Quotes on Thinking
Quotes on Planning
Quotes on Strategy
Quotes Concerning Problem Solving
Computer Chess
Chess Analysis
Early Computers/ New Computers
Problem Solving/ Creativity
Game Theory
Favorite Links
About Me
Additional Notes
The Case for Using Probabilistic Knowledge in a Computer Chess Program (John L. Jerz)
Resilience in Man and Machine

Computers, Chess and Long-Range Planning by Botvinnik

Former world chess champion Mihail Moiseevich Botvinnik introduces his ideas on how to program a computer to play chess. Botvinnik was to later refine his ideas in his 1984 work Computers in Chess: Solving Inexact Search Problems.
 
I have to confess that I was somewhat unfamiliar with his ideas when I put together A Proposed Heuristic for a Computer Chess Program. I'm not sure that I understood exactly what Botvinnik was trying to say the first time I read his work, which read like a collection of ideas.  In addition, the discussion boards I visit rarely mention specific details of his work or the possibility that the concepts he discusses are worth time and effort investigating. A Proposed Heuristic and Computers, Chess and Long-Range Planning are similar on a superficial level, once one gets over Botvinnik's extremely difficult to understand notation. This is not surprising, since both works approach the concept of long range planning, and both spend considerable amounts of time looking at the potential ability of the pieces to realistically accomplish objectives in the future. Each paper considers the restrictions of the present pieces on the board when determining the 'attacking potential' of such pieces. Botvinnik struggles with the concept of search focus throughout his entire paper. He outlines a process for generating lines of analysis, but he fails to communicate exactly how to perform the search without falling into a trap of recursion.
 
[preface to the Russian version] "One cannot say that Botvinnik's method is completely worked out. There are positions in which his algorithm appears to offer no clear prescription for the choice of a move. A whole string of questions remain that can be solved only when Botvinnik's ideas have been realized in a program and run on a machine."
 
p.xi"An Algorithm [Botvinnik refers his work by the title of the Russian version of this book, An Algorithm for Chess] is a hypothesis about the intuitive thought process of a chess master. Like any hypothesis, An Algorithm needs to be tested by experiment; in this case, an experimental test means writing a program and running it on a machine. This task has been taken on... by a young mathematician and first-class chess player, V. Butenko."
 
For Botvinnik, there is only one approach he can see (as a chess player) to writing a successful computer chess program, and it is contained in his book. It is not presented as a completed idea, and he admits that it needs to be completed and tested. Botvinnik implies that he will be participating more in the development when the initial coding is complete.
 
Perhaps since his time is best spent running his chess school (probably a good idea) it would not make sense for him to learn to program and put the ideas together himself.
 
p.xii"As a chess player I see no way to solve the problem of choosing a move in a chess game but via the path sketched out in An Algorithm . I hope that this edition of An Algorithm will give new impetus to the testing of this hypothesis and will hasten the accomplishment of the tasks laid down by Shannon in 1950."
 
Botvinnik notes that the working chess programs circa 1970 all use Claude Shannon's ideas, which he is critical of. He also seems to miss the concept that Shannon's evaluation 'number' also functions as a heuristic to focus the search efforts of the machine. Neither applies the concepts of system dynamics.
 
p.2"If the rule for excluding weak moves is well founded, the processing of the information is more fruitful and the scan of alternatives is deeper... At the outset, we must acknowledge our debt to Shannon's insight. All computer programs for playing chess published by mathematicians in recent years are basically no different from those established in principle by Shannon... The use of the given weighting function to evaluate a position [the approach specified by Shannon] is also a doubtful procedure. Shannon proposed the inclusion of numerical 'weights' for the material relation of forces, open lines, mobility of the pieces, advanced and doubled pawns, control of the center, and so on, which are listed in every manual for beginners. We should note, as the authors of the textbooks usually do, that it is far from necessary to take account of all these factors at all times and that their calculation yields only a sketchy estimate of the [winnability of the] position. To sum up, the mathematical goal of a game of chess, according to Shannon, is a number - the value of the weighting function."
 
Botvinnik condemns man for the weak chess-playing ability of computers, circa 1970. We must master both chess and programming in order to construct a good chess program. Perhaps we also need to master system dynamics, the construction of an effective model, and borrow concepts from the study of ecosystems. Having a good strategic plan would also help.
 
p.5"The machine may play chess badly, like a beginning amateur, but the machine is not guilty. Man is guilty. He has not yet succeeded in teaching the machine, in transferring his experience to it... To write a finished program, one must master both chess and the art of programming."
 
Botvinnik is determined to create a chess program in the image of the human mind. But the machine 1. lacks the accumulated experience of that mind, 2. lacks the human ability to perceive stress in a position, 3. lacks the human ability to construct resilient positions, and 4. lacks the human ability to model feedback structures. Can we therefore represent experience by an 'algorithm'? It would seem easier to do with a generalized dynamic heuristic which gathers information from the pieces in their present position on the board and their interactions.
 
p.7"Man solves inexact problems by relying on his accumulated experience and on intuition. The following method for creating an exact program for the solution of inexact tasks therefore suggests itself: the program must be modeled on human thought processes... It seems to me the only real way."
 
This opinion is in sharp contrast to Shannon, who has declared, "It is not being suggested that we should design the strategy [of the evaluation function and search] in our own image. Rather it should be matched to the capacities and weakness of the computer." One has to add that all existing chess programs use Shannon's approach, and none (so far) use Botvinnik's approach.
 
For Botvinnik, chess is a game where certain intangible parameters related to material and positional advantage are exchanged and fought for by the players. Perhaps this is the concept we need to teach the machine.
 
p.9"In my opinion, the process of playing chess (and probably any game) consists in a generalized exchange. By this term we mean an exchange in which (in the general case) the values traded may be tangible or positional ('invisible,' situational). The goal of a generalized exchange is a relative gain of these tangible or positional (situational) values. There are not and cannot be other goals. In the end, this generalized exchange process in chess must lead to the winning of infinitely great tangible value (i.e., to mate)."
 
What are the fundamental units of positional play, Botvinnik wonders. Perhaps we can use a reference such as How to Measure Anything (Hubbard, 2007) and figure out how to measure the 'intangible' elements of positional evaluation.
 
p.9"The tangible value of the pieces in chess is well known to all beginning chess players. But what of the invisible, conjunctural (positional) value of the pieces? This value depends on the position of the piece and on the role of the piece in the general combat taking place on the board. The positional value of a piece is subject to sharp changes"
 
Botvinnik declares that it is essential for a chess program to answer three questions:
 
p.10"We shall assume, moreover, that the algorithm imitates the mode of play of the human, that is, it defines a scan and an evaluation of the available moves. The scan, however, is controlled... What must the algorithm now envisage? As a minimum, it must envisage a solution to the following three problems: 1. How to limit the number of alternatives... 2. When to stop computing a variation... 3. What move to make if the analysis of variations gives no clear answer.. The solution of these three problems is essential, even though we may later find that it is not sufficient."
 
The value we should place on a piece is related to its ability to attack our opponent's pieces. Moves to support our own pieces have value in the sense that they negate an opponent's ability to attack, even if a surprise move is played that we did not expect. If there is no potential for an enemy to attack, then defensive supporting moves have little value at present.
 
The Russian school of chess teaches basic principles of the game, including the importance of analysis of variations, that the attacker is the one who wins, and that an advantage is gained in a position insofar as it supports an attack (see works by Kotov  Play Like a Grandmaster by Kotov for a more thorough explanation of this). Therefore it is not surprising that the principles of analysis of variations and of the lines of attack feature prominently in Botvinnik's computer program. It is, in his mind, a validation of the concepts taught at the Russian school of chess. These concepts are correct, period, and so they must form the foundation for a computer chess program, period.
 
p.13"An attacking piece has an intangible value or values in addition to its tangible value; its total value is the sum of the tangible and intangible values. The intangible value of an attacking piece reflects its ability to annihilate an enemy piece."
 
This attack must take place via squares on the chessboard, and these squares in turn are attacked by other pieces. We can negate a piece's ability to attack by denying it the mobility through a square. Here is where we must yield to system dynamics and conceed that the situation is fairly complicated.
 
p.14"The Path of a Piece: An attack must have real features. There must be an object of attack and a path, made up of actual squares, over which the attack is to be carried out. These squares are of two types: 1) squares where the pieces come to rest, which we shall denote by a, and 2) squares over which the pieces pass, denoted by b. There must always be a-squares; there need not be b-squares. When the King, the Knight or the Pawn makes a move (except for castling and the initial two-square move of the Pawn) there are no b-squares. Similarly, there are none when the Queen, Rook or Bishop moves to an adjacent square."
 
Positional play begins by noting the paths that pieces take to attack other pieces, and the presence or availability of still other pieces to support or hinder such attacks.
 
p.22"If the attack path is unsafe (closed) the master... looks about him: can he bring other pieces into the game, to better the attack paths (the functions) against the enemy pieces and lessen the attacks against his own pieces? This is what 'positional' play amounts to.
  I believe that this part of the theory (on positional warfare) is radically different from what has been presented up to now."
 
Play may proceed to attack these "mobility paths" which enable pieces to attack or pressure other pieces. While it will be difficult and expensive time-wise to determine 'for certain' whether a piece can trace mobility through certain squares, we can, if we wish, use a quick heuristic to estimate such mobility towards a remote target.
 
p.23"Play directed at changing a [future piece mobility] path has the same character, and proceeds by the same formulae, as play for annihilation, with the distinction that now the object of attack is not an enemy piece itself, but a change in the attack-functions [piece mobility]."
 
Botvinnik's design directs the chess program to build an analysis tree similar to the way a chess master conducts his analysis when playing a chess game.  He wonders out loud if there is a way to construct a 'positional evaluation' in the style of Shannon, which reduces each position to a number, rather than an analysis tree. If this is possible, he reasons, it might be an improvement on his algorithm.
 
p.23"One possibility for improvement [Botvinnik is in the middle of explaining his algorithm] that comes to mind is the use of modern mathematical methods to define moves most likely to lead to success. Then to every 'positional' move there would correspond a weighting function (a number) which would allow the definition of the most useful move, by a more perfect method than the chess master now uses."
 
Botvinnik decides to place the pieces on the board in one of 4 categories. Type IV pieces are not within a reasonable attack window of any piece. Type III pieces lie within an attack window, but are currently safe. Type II pieces are subject to imminent capture, and Type I pieces have already been captured and removed from the board. Positional play for Botvinnik lies in moving pieces from type IV to Type III categories, and vice versa, via careful maneuvering. It is assumed that tactical play will handle the maneuvering to place pieces in jeopardy (Type II) and eventual capture (Type I).
 
p.24"Positional play consists in converting Type IV values [pieces not in the line of sight of enemy pieces] to Type III [pieces within the realistic future mobility 'horizon' of enemy pieces] (and the reverse)."
 
Botvinnik thinks that his algorithm describes how a chess master plays a game of chess. But he overlooks the fact that a chess master is using heuristics to focus his attention on likely moves in order to build the analysis tree. We would need to come up with a machine-version of this process, and would need to do so without access to the chess master's lifetime memory of positions and observations of interactions between the pieces. We would also have to do so without involving any further search, as we would then fall into a trap of recursion where our efforts to define likely moves rely on further efforts, in a way that does not terminate. Our heuristic for focusing search efforts will need to be be effective in all types of positions. Perhaps it will begin with a general-purpose diagnostic test, or tests. We can develop a set of vital diagnostic tests, and focus our search efforts to improve the scores of the weakest, vital diagnostic test. For example, if our King ends up in the middle of the board, we recognize this and reward our machine to return the King to a safe spot. Sustainable development cannot happen with any of our vital diagnostic tests that score in the "red" zone.
 
p.26"The reader is now familiar with the principles involved in constructing and analyzing a mathematical map of a chess position. I believe that the chess algorithm presented in this book and based on these principles represents the thought process of a chess master during a game"
 
p.40-52 Here Botvinnik works out an example, using the position in the diagram below.

Black: Capablanca
BotCap.jpg
White: Botvinnik

Position after 29...Qe7   White to play and win
(30.Ba3 Qxa3 31.Nh5+ were the next few moves)

The famous scientist Norbert Wiener attempted to develop an approach to computer chess in 1948, but was a weak chess player who could not see obvious moves. Botvinnik gives his explanation. However, Botvinnik stumbles on a good idea, that our machine must likely be able to do research in a position - to solve a variety of problems. Perhaps that is the skill we need to teach the machine.
 
p.61"Why was Wiener not a good chess player? Why could he not foresee moves by his opponent that were obvious? Shannon put these questions to me in 1965, and I could only shrug my shoulders.  How could I know? The question is extremely serious. No one can doubt the intelligence of Norbert Wiener, a very great scientist. Nor can one doubt the intelligence of Alekhine, a very great chess player. Why was Wiener helpless at chess and Alekhine at mathematics?
  I think we can now form a hypothesis as to the reasons for Wiener's errors at the chessboard... To the scientist these qualities of the chess warrior [extraordinary development and an exceptional training of that portion of the brain which is dedicated to operational memory and to calculation] are probably not necessary, since the scientist has the right to solve his problems without haste... Above all, he must have the ability to do research. And what is that? It seems likely that it is the ability to solve a variety of problems."
 
Work on coding Botvinnik's ideas appears to be progressing slowly. The M-220 processed 28,000 instructions per second. http://www.computer-museum.ru/english/m220.htm
 
p.63"Perhaps chess itself will prove to be a sharp tool that will carve out new paths for investigation. At the present time a young mathematician, V.I. Butenko, is translating the algorithm discussed in this book into the language of the M-220 computer."

m220.jpg
Russian M-220 main frame computer, in production from 1968-1974

For the time being he is programming the standard and very important part of the algorithm. He is 'teaching' the machine to determine the attack paths on a board filled with pieces, within a given horizon. He has had some successes: for instance, the determination of all shortest paths of the King from the square a4 to the square h4 (and there are 393 such paths) is made by the machine in something like a tenth of a second. The determination of all the attack paths (the assertions) in a three-half-move horizon for the position discussed previously, from Botvinnik-Capablanca game (Fig. 22), required only 5 seconds."
 
Commentary
 
Botvinnik expressed his ideas using a language that was familiar to him: mathematics.
 
Botvinnik was the head of the alternating-current machine laboratory at the Moscow Institute of Power Engineering. The production of electrical power from generators uses obscure terms such as a "power factor" and is best described using the field of complex numbers. We can therefore excuse Botvinnik's use of complex numbers in his equations which form the basis of his evaluation function. Botvinnik must have used this notation on a daily basis in his job and therefore felt comfortable using it in his paper. Electrical Engineers have been exposed to the field of complex numbers, especially in the use of a frequency analysis tool called a Fourier Transform, where numbers have a "real" and "imaginary" component. I myself took many classes in school where the notation used in this book would be an acceptable way of communicating advanced ideas to students. There is always a simpler way to represent an idea, and my personal preference is to present material at the simplest possible level, where a choice is possible. In Botvinnik's mind, he is presenting a precise algorithm, to be studied by scientists in technical universities, and the subject of scientific research, and why not use the scientific language?
 
Why should world champion Botvinnik have to program his ideas himself? Shouldn't his time be better spent teaching chess to young students? It therefore makes sense that someone else program the ideas. However, the ideas as presented are interesting, but do not form a complete specification. Botvinnik has failed to specifically describe how to "focus" the machine on likely moves - one simply wanders around constructing maps of potential attacking moves and supporting pieces - there are an exponential number of such maps. This is all well and good, but a machine will only do what you tell it to do, and cannot be expected to find the continuing lines of analysis without specific heuristic rules. Botvinnik has spent so much time on his search algorithm that he has failed to specify how the end-point positions are evaluated when no material is exchanged. Perhaps that was part of his long-range plan for developing his idea.
 
Perhaps Botvinnik's oversight was in the declaration that he had found an algorithm for chess, when in fact he should have been proposing a heuristic. Additionally, he should have been applying the Systems Thinking concepts of Bertalanffy and Forrester which were then in vogue. Botvinnik's ideas are a wonderful starting point for thinking about how to build a computer chess program. The concepts as described reflect and amplify the teaching principles that humans use to study the game. Botvinnik's ideas on long-range planning make sense on an intuitive level.  However, it is my opinion that there is not enough information present in the 'algorithms' present in this book to sit down and put them together into a computer program, as presently written.
 
Botvinnik was to later refine his ideas in his 1984 work Computers in Chess: Solving Inexact Search Problems. The computer chess program PIONEER was his attempt to implement his ideas in software.

Enter supporting content here