Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help with Static Exchange Evaluator

Author: Robert Hyatt

Date: 21:48:56 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.
>
>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
>searched.



this is totally unsafe.  In the full-width part of the search, you should be
able to look at these 'losers' at some point in the search, after the good
captures, killers, etc...  In the q-search you can afford to ignore them since
the q-search is already full of errors anyway...



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



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