Copyright (c) 2013 John L. Jerz

A Proposed Heuristic (Chapter 7 - Summary)

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

Return to Previous Chapter: Chapter 6 - Supporting Quotations from Published Works

Continue to Next Chapter: Appendix

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

Appendix

Enter supporting content here