Computer Chess Club Archives




Subject: Implementing Planning in an Engine

Author: Tom Likens

Date: 11:15:33 02/04/04

Hello Everyone,

I'm getting ready to implement some new features in my engine and
one of the items on my TODO list is to give the engine some rudimentary
planning capablities.  The idea I've been toying with is to use the
features of the pawn structure (and the king locations) to guide what
the engine should try over the next few moves.  The advantage of using
the pawn formation as a trigger or even index into a variety of evaluation
functions, (perhaps dynamically selected by a function pointer at runtime)
is that the information could be stored in the pawn hash table for
easy retrieval.

As an example, if the center is blocked and white has a preponderance of
force and space on the king side then it may be okay to start a king-
side attack using the white king pawns to break open the black king's
castled location.  At the very least moves like g4, h4 should be considered.
This would be especially true if the black queen was trapped on the
queenside and the black's king safety was already weakened.  Other
factors would be control of the squares around the enemy king, but the
initial trigger would be the features of the pawn structure.

Anyway, this is just one example other patterns could be the Stonewall,
the pawn chains that arise out of the French Defence, the Caro-Kan etc.
or even recognizing when a queenside minority attack made sense.

In fact, I've starting using a variation of this idea in the king safety
I recently started saving the pawn state of the six squares directly in front
of the king (if a pawn is present then bit is set in an 8-bit index).  This
value, once calculated, is used as an index into an array of function
pointers that point to functions tailored for the specific pawn structure
(e.g. if the pawn structure is a fianchetto structure then elements related
to the strength or weakness of the fianchetto bishop etc. are checked).
So far, the results have been encouraging but it needs a lot of tuning and

Anyway, I was wondering has anyone else here given any of these
ideas a try yet?  And if so, how successful have they been?


This page took 0.04 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

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