Copyright (c) 2013 John L. Jerz

Computers in Chess: Solving Inexact Search Problems 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 in Chess: Solving Inexact Search Problems by Botvinnik

Here is Botvinnik's assessment of his attempts to implement his ideas for a computer chess program in software, around the 1982 time frame. Various reasons are given for the lack of success, and curious is his reason 'lack of machine time'.
 
p.v"One might expect that PIONEER [the name of the software program created by Botvinnik's team to implement his ideas] would have made substantial advances - unfortunately it has not. There are reasons: the difficulty of the problem, the disenchantment of the mathematicians (because of the delays and drawing out of the work), and principally the insufficiency and sometimes complete lack of machine time... our group of mathematicians works at the Institute for Electroenergy"
 
Note that he does not mention, as a possible reason for the lack of success, the possible incompleteness of the software specification.  Perhaps the algorithm he is proposing is not yet ready to be coded into software.
 
Botvinnik constantly refers to the primary developers of his program as "mathematicians", and to his idea itself as an "algorithm".  There are many problems in computer science that have alternate approaches from a strictly mathematical viewpoint, such as the efficient development of databases and data structures, basic principles in artificial intelligence, the use of heuristics, etc. This is why the profession of computer science was developed - the concept of understanding how a machine works, the needs of the user and the development of software that is useful (on a timely basis and with reasonable cost) are concepts that pure mathematicians are perhaps not best equipped to address. As for the perceived lack of computer time, one would have to wonder whether the machine in question was running 24 hours a day, and what else it was doing, if not running a simple software batch job.

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

It seems that the persons (or people) in charge of scheduling the machine's time thought there were other projects that had more promise (maybe Botvinnik's project was not marketed well). Could Botvinnik have called the schedulers of the machine's time and asked for a higher priority?
 
In order to search for something (such as the best move in a game of chess), you need a goal and a general-purpose method to forecast how effective each "next step" will be in reaching your goal. The forecast need not be precise in order to steer the search, it just has to ultimately be more productive (in terms of wins/losses/draws in tournament games) than the other methods available.
 
Botvinnik stubbornly clings to the idea that he is developing an algorithm, not a heuristic. It is an 'inexact goal' of positional pressure that allows the construction of an analysis tree. He can then still think of an algorithm to 'solve' the inexact problem. We use our algorithm to identify courses of action that 'cannot' lead to our target, and eliminate them from our search tree.
 
p.16"As soon as the search tree is truncated, the exact goal of the game loses all meaning. It is necessary to introduce an inexact goal in the truncated tree; else the game becomes aimless and cannot be strong. The goal of an inexact game permits the formation of a deep and narrow [analysis] tree... To attempt to solve an inexact problem without having formulated the goal of the corresponding  inexact game is to waste time. This goal is the basis of a strong algorithm for the solution of an inexact problem, and the basis for development of a deep and narrow tree... The goal of a game says what our aim is; only when we know this can we identify courses of action that cannot lead to our target, and exclude them from the tree. Knowing the goal lets us define the lines along which the search is to occur."
 
Botvinnik thinks that the positional estimate we calculate should depend on the specific location of pieces on the board and their ability to interact with each other along trajectories and contested control over squares. A fantastic idea for a computer chess program, and I believe an idea whose time has come.
 
p.38"The positional estimate should not be a general-purpose affair [such as the way the evaluation is done in a Shannon type program]; it should be specific to each given situation... Capablanca pointed out that the basis for a positional estimate is the control of fields. Control of fields does not mean control of the whole board, but control of only those fields that may be used in the impending play. Therefore, one must strive for control of the field consisting of those trajectories in which the pieces can move, but have not moved yet.
  At the node in the search tree where we find ourselves at a given moment, we must unravel all those sheaves of trajectories which have not yet been developed and determine which player has control of the majority of the fields consisting of  the trajectories not yet used in the play. This allows us to forecast the result of the play - the result of a search which, in particular, had to be renounced [stopped] at the terminal nodes of the variations for lack of resources [time]."
 
We produce a positional score at every node in our search tree, based on the "trajectories" or future mobility of each piece and their ability to attack other pieces. Individual squares are analyzed and put "under control" of one side or the other, and points are awarded.
 
p.38"We shall show later that the positional estimate allows us to solve the question of priorities... Thus the positional estimate, with the development of the sheaf of trajectories, should be produced at every node in the search tree . We may assert that the squares under control define the usable mobility and maneuverability of the pieces. Better maneuverability of pieces often also determines the positional superiority."
 
A complex evaluation function that involves a positional estimate is the heart and soul of Botvinnik's chess program PIONEER:
 
p.39"To sum up: The positional estimate is computed at every node of the search tree. The procedure is substantially more complex than the procedure for computing a material score."
 
I am writing this commentary using one of my computers as a word processor, a dual core Intel Pentium-D running at 3.2GHz with 4GB RAM.  We sometimes fail to realize that the computers of yesterday were frighteningly slow and expensive - perhaps this reason alone prevented Botvinnik from making progress using an 'algorithm' that most likely taxed the capabilities of machines in his day and age. The machine I am using right now is one thousand times faster in CPU clock speed than the one used by the Russian chess program KAISSA in 1977:
 
p.64"[Botvinnik describes the capabilities of two computers playing a 1977 demonstration game] KAISSA used a computer with a speed of 3 [million] operations per second, CHESS 4.6 had a speed of 12 [million] operations per second. KAISSA could calculate variations to a depth of 5 plies; CHESS 4.6 could go to 6... In the end [game], KAISSA extended the length of a variation to nine plies and CHESS 4.6 went to twelve."
 
Now that technology has sufficiently advanced, one cannot offer any compelling reasons for not following up on what for Botvinnik was a passionate belief.
 
Many have been critical of Botvinnik's approach and have wondered if the proposed concepts might take many years to refine into a productive piece of software. My opinion, after reading his works, is that his ideas were not complete enough to refine into a software specification ready for a design team.
 
p.67"Since 1964, when the author began to seek support for his algorithm, there have been many critical remarks; these are worth reviewing. It has been said that this is all fantasy: it conflicts with the accepted canons; it demands more resources than does a full-width search; it would require decades for development.. and so on. "
 
For a man of Botvinnik's accomplishments at the chessboard to struggle with complex issues in computer science (over many years, and with many critics) indicates his strong personal and professional belief in the ultimate correctness of his approach.
 
Perhaps others will follow where he has broken ground, and perhaps the advances in computer science, artificial intelligence, long-range planning, and technology will allow someone to create a computer program that successfully implements his core ideas.
 
Botvinnik had ideas on how to construct a positional evaluation function. It was time consuming to implement in computer software - is there an easier way to estimate this parameter by using a simpler heuristic? The proposed heuristic sidesteps the question of whether or not pieces are actually safe on squares when multiple pieces attack the same square - it is just too time consuming to do that. We instead look at the constraints offered by the predicted likelihood of the enemies lower-valued pieces to hinder the movement of our higher-valued pieces. We would also use a table of probabilities for the more complex cases. This procedure, in my opinion, is predicted to be much easier to calculate than the Botvinnik 'algorithm', likely produces a positional score nearly as accurate and allows a tighter search focus than conventional computer chess programs.
 
p.105-106"[section written by Tsfasman and Stilman] The concept of the positional estimate plays an important role in chess programs... The positional estimate proposed by Botvinnik is based on the control of squares in trajectories... We must first define the nonfrozen trajectories of the pieces... Then for each trajectory... we develop a list of pieces lying one move away and compute the outcome of the optimal exchange on the given square. The square is traversable if the result of the exchange is advantageous to the side possessing the trajectory. If the given square is traversable and belongs, say, to White, Kw is increased by 1... This unravelling of all non-frozen trajectories in the included fields is a time-consuming process."

Enter supporting content here