Computer Chess Club Archives




Subject: Help with Static Exchange Evaluator

Author: William Bryant

Date: 14:27:12 07/18/99

I have created a SEE routine for my program (following the general plan of
from Crafty) and now have a question about where it should be implemented.

I initially implemented it in the move generator.  When generating captures, if
the Captured_Piece - Capturing_Piece <0, I would uses a SEE score of < 0 to
discard the move, never searching it.

This created an overall speed up but leaves a number of questions.

Some positions require a sacrifice to find the winning line.  These positions
are never found because the sacrifice move is always discarded and never

Is this the tradeoff of this heuristic?

Is there a better way to apply the SEE rather than to all capture moves as they
are generated?

Are there other heuristics that allow these discarded moves to be found in the
right positions?

Here is an example position:
1rr3k1/4ppb1/2q1bnp1/1p2B1Q1/6P1/2p2P2/2P1B2R/2K4R w - -
It is from a list of mating positions posted by Dan

I can find the winning mate in 0:32 without the SEE,
and never with the SEE.

Thanks in advance.


This page took 0.02 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.