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."