7. Summary
The challenge: How might we create an evaluation function for a computer chess program that plays
a stronger positional game of chess? Solutions should ideally have utility for both real-time game playing and for analysis
of completed games.
I have presented my thoughts on a proposed heuristic for a chess playing computer program.
Readers will note the similarity to ideas proposed by Botvinnik - in fact, some might claim that the proposed heuristic represents
Botvinnik's ideas brought to a specific, realizable form. It is unclear whether any of the top computer chess program
developers have used ideas similar to these in their applications. The proposed heuristic uses what can best be described
as "probes" which gather diagnostic information about what each piece is capable of doing in the future. Once the limiting
factors are applied to this information, we can better 'focus' our search through an exponentially growing
search tree. Moves which create positions where the pieces are not fully engaged with the enemy (or with friendly
pieces) can be "pruned" from search efforts after a few moves examination.
The proposed heuristic is a model of the heuristic of a human chessplayer. My claim is that
it might provide a plausible aid or direction in the solution of finding the best move in a chess game, but
is in the final analysis unjustified, incapable of justification, and potentially fallible.
To be accepted, new ideas must survive the most rigorous standards of evidence and scrutiny. - Dr. Carl
Sagan
I am also conscious of Sagan's advice concerning ideas that we have created:
Try not to get overly attached to a hypothesis just because it's
yours. It's only a way-station in the pursuit of knowledge. Ask yourself why you like the idea. Compare it fairly with the
alternatives. See if you can find reasons for rejecting it. If you don't, others will.
The proposed idea is not really mine - Botvinnik has looked extensively
at it and I have speculated (but cannot prove - it is not important anyway) that Vasik Rajlich has also looked at it. Additionally,
the slow speed of the Hiarcs chess program indicates that diagnostic probing and a reuse of probe information from previous
positions might be used as a heuristic.
I have attempted to further explain the concepts behind the heuristic
by presenting extensive quotations from experts in certain selected fields. The ability to determine what is relevant in certain contexts is what separates experts from novices. The proposed
heuristic obtains diagnostic information from the position of pieces on the board and their interactions with other pieces.
It uses this information to focus the search efforts.
Heuristics in general cannot be proven - their effectiveness
can only be demonstrated (relative to other heuristics) in competitive environments, or in a specially crafted suite of test
positions which simulate a competitive environment.
One can only reason so far from theory. The above concepts can
be used to construct a chess playing computer program. The only question is how strong of a program it would be. I suppose
that the next step would be to construct a program that uses these proposed ideas and see how it performs. My efforts
are documented here: Experimental Results
Constructing code to implement this heuristic is not likely to immediately demonstrate anything other
than the feasibility of the concept, for reasons argued by David Welsh in his book Computer Chess.
Welsh speculates in his 1984 text that programs developed using newer techniques
might need to go through a developmental period where they play sub-par chess, compared to existing programs:
p.95,106-107"It is very unlikely that any program that attempts
to follow the human approach to chess-playing will be able to cope with the best programs of the present type for quite some
time after its introduction, if ever... early efforts with the new concepts that are needed will probably involve a significant
decline in playing strength from present fixed-heuristic levels."
Claude Shannon's 1950 evaluation function (contained in the Appendix of his classic paper http://www.pi.infn.it/~carosi/chess/shannon.txt) is worth reviewing. Shannon would include such advanced concepts as outpost squares, mobility, the restriction of mobility
by pawns, pieces which are tied down to defend other pieces, etc. He also had this to say on the subject of evaluation functions:
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.
Vasik Rajlich, author of the Rybka chess program, Responds
I asked Vasik what he thought of this paper, back when it was called
Rybka Explained? His answer:
John,
I have seen this already before. It was
fun to read. Some of your points and ideas are interesting, other are in my view not promising. Some I do in Rybka in some
form, others I do not. I hope you understand that I won't go into details.
Just one thing to keep in mind - what you
have described would cover about 1% of a chess program. It is an idea which would take 2 or 3 weeks to implement and test,
and might give you 10 to 15 rating points. There are a ton of other things that define how a chess engine behaves - there
is no one "key".
Vas
Additionally:
[1-30-2007]
Yeah, it was fun to read - but there wasn't really any
link to Rybka, ie. showing specifically how Rybka does exactly what his theory would predict.
I think it was more that
this is how he thinks a program should be written, and Rybka is the strongest, therefore Rybka must be doing this.
Vas
I'm not sure which version of this paper Vasik
read - it is currently posted to the Internet and I am constantly making changes to it. After reading Vasik's comments, the
title of this paper was changed because my true interest is in the science behind Rybka, not the program itself.
The International Computer Games Association
Responds
I e-mailed the ICGA and asked if they were interested
in this paper. Here is their response:
[August 28, 2007]
Dear Mr. Jerz,
We had a close look at your web article. Although you
introduce an interesting idea, we believe that the article lacks the scientific quality to enter the reviewing process (e.g.,
no experiments, style, etc.). We encourage you to continue your research.
Yours sincerely,
Dr. M.H.M. Winands, deputy editor ICGA journal
The ICGA Journal certainly has a right to determine what they consider to be
acceptable or unacceptable for publication. My purpose in posting this communication is only to show that it has been
reviewed by experts and found lacking in scientific results. It is encouraging to note that they appear to want me to continue
my research.
Shannon's final words to his paper, with which I strongly agree, are particularly
insightful and are an appropriate way to end this one:
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 toward improving blind trial and error.
The reader should ask
him or herself whether the proposed heuristic addresses the elements of position, time, space and force, and whether there
is anything missing or unneeded. I would be interested in comments, positive or negative.
The Appendix that
follows contains additional information that may be useful to those who wish to construct a computer program based
on these ideas.
Continue to next section