Computer Chess Club Archives


Search

Terms

Messages

Subject: New Way to Evaluate Positions

Author: Bob Durrett

Date: 18:39:17 11/20/00


Before launching into the "new idea," I must admit that I have never seen the
source code for Fritz, Rebel, and any of the other commercial chess programs.
Maybe this "new" idea is already being implemented, at least in part.

NEW IDEA:

If a program evaluates each new position from scratch, it will take a certain
amount of processor time, and the software will take up a certain amount of
space in memory, and the situation will be much the same for each position of a
chess game.

But what if the same [or equal] evaluation could be done in a fraction of this
time?  How?  It is wasteful to throw useful information away, so find a way to
use it.

The answer may be to use an "evaluation" method which converges on the correct
evaluation by means of an iterative process.  This process need not be
restricted to evaluation of the current position.

For some, this may require casting off self-imposed boundaries [doing it the way
"it's done"] and moving into a new paradigm.

If it is noted that consecutive positions are necessarily very similar, then a
way should be sought to use the information gleaned in one position and to use
as a starting point for the evaluation of the next position.  This may require
finding a radically new way to do "evaluation."

Similarly, two positions separated by two half-moves in a game are also very
similar, although typically not as similar as two positions separated by a
"distance" of one half-move.  This suggests that information obtained during the
"evaluation" of a position might also be useful for positions separated by more
than one half-move.

One could extend this idea to positions separated by "distances" of many
half-moves.  In fact, some of the information known in advance before the game
begins [assuming starting from the usual starting position] should have some
bearing on all of the positions which follow in a game.  The greater the
"distance," the less the usefulness of the information.

This idea could be used "backwards" as well.  Since positions in a chess game
are reasonably similar if separated by some reasonably small distance, then the
evaluations of positions could also be used to refine prior evaluations of prior
moves.  This suggests some sort of iteration, maybe.

As I understand it, hash tables contain precious little information about each
position.  That would have to change to use this method.  In fact, the structure
of hash tables and the way they are used would have to change.

Information obtained from a position would have to be retained by the program in
some manner.  The use of hash tables is the "current paradigm" way of doing it.
But the information might also be stored in settings the values of integers used
in loops, for example.  Innovation by programmers not bound by the boundaries of
current paradigms might be needed here.

It is not suggested that any ordinary beginning programmer could figure out the
optimal way of doing this.  But wouldn't it be worth the pain and agony required
of an innovative programmer if he/she could work out a practical way of doing
this?

Underlying message:  To produce big improvements in performance of chess-playing
software, or any other kind of software, for that matter, it may be necessary to
cast off the shackles of the assumption that "doing it the way it's done" is the
only way.  One should look for new paradigms.  This "evaluation" idea is my
attempt to do just that.

Incidentally, the name "Shannon" could be mentioned.  Any scheme which throws
away, repeatedly, large amounts of information is inferior in the sense that it
is theoretically better to use most or all of the information available,
assuming that a practical way to do that is found.


Bob D.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.