Computer Chess Club Archives


Search

Terms

Messages

Subject: Automatically Reconfigurable Chess Programs?

Author: Bob Durrett

Date: 10:52:47 12/22/03


It is Christmas time and I'm in the Christmas spirit.  That makes me a little
giddy, but that's OK.

I don't know whether or to what extent the following ideas are already in use or
incorporated into amateur and commercial chess programs.

Please consider the following ideas:

POSITION EVALUATION:

Generally, chess programmers try to make their position evaluation software
capable of evaluating all positions reasonably well.  That much is obvious.

But what if a programmer were asked to optimize the position evaluation software
to look at only one kind of position [such as open early middlegame without
queens, for example] and were assured that the software would never have to
evaluate any other kind of position?  How would the programmer optimize his
position evaluation code to do best at that kind of position but not care about
other types?  Would the position evaluation code differ significantly from
position evaluation code intended for ALL types of positions?  I suspect that
the code optimized for that specific type of position might be quite different.

What if that same programmer, having completed the above task, were asked to
repeat the process but for a very different type of position?  Presumably, the
resulting code would differ from the code produced for the first type of
position.

This process could be repeated until either the programmer quit, or he completed
this task for ALL distinct types of positions.  My guess is that the code for
some position types might differ considerably from the code for some other
position types.

Now, having completed the above tasks, suppose the programmer is asked to
produce code whose purpose were solely to identify the type of position.

It should be evident by now where all this is leading.  The idea is to have each
type of position evaluation code in the engine and then cause the engine to use
the appropriate code for each type of position.

The programming challenges would include minimization of wasted time so that
essential evaluation computations would take up most of the used time.

Generally, there are two top-level approaches to doing this.  The brute force
but simplest approach would be to have separate blocks of code, one for each
type of position.  A more sophisticated approach might be to minimize
duplication but rely on switching or other means of reconfiguring a single [or
few] block of code to optimize for each type of position.  The attempt to have a
single block of reconfigurable code might become a nightmare for the programmer
but some sort of compromise leading to a "partially sophisticated"
reconfiguration scheme might be feasible.

SEARCHING, PRUNING AND SIMILAR:

Conceivably a similar approach might be used for this.  Perhaps there are better
ways to do these things for different types of positions or different types of
game situations.

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.