Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help with Static Exchange Evaluator

Author: James Swafford

Date: 16:07:38 07/18/99

Go up one level in this thread


On July 18, 1999 at 17:27:12, William Bryant wrote:

>I have created a SEE routine for my program (following the general plan of
>Swap()
>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.

!!! Sounds brave, and very dangerous.  I don't think you can get
away with this.  Not towards the root, anyway.

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

Yes, I suppose if you eliminate moves from your search you are
moving a bit quicker.

>
>Some positions require a sacrifice to find the winning line.  These positions
>are never found because the sacrifice move is always discarded and never
>searched.
>
>Is this the tradeoff of this heuristic?

Exactly.  I wouldn't accept this tradeoff, William.  What if
you don't have any option *but* to play a losing capture?  Your
engine may think "I don't have any moves, I must be mated," or
"no moves; stalemate."

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

Use SEE as an aid to determine how promising a capture is.
It's obviously gonna be slower than MVV/LVA, so you'll have to
do a lot of testing to determine if it's worth the overhead.

Maybe you could use SEE to prune once you're a "good distance"
away from the root?  Maybe some pruning in the qsearch?

Just a couple ideas.  Whatever you come up with, I'm sure it'll
be better than not considering losing captures throughout the
entire tree.


Should you decide to try some pruning algorithms (more conservative
ones :) ), would you mind posting your results?

--
James


>
>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.
>
>William
>wbryant@ix.netcom.com



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.