Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Extensions & quiescence

Author: Larry Coon

Date: 17:12:05 10/22/98

Go up one level in this thread


On October 22, 1998 at 18:50:37, Robert Hyatt wrote:

>your only mistake is "no safety outlet".  IE if you only generate
>"interesting moves", then you need a safety valve for when those
>"interesting mvoes" are no good.  The best way is what we all do in
>the quiescence search, namely to first call evaluate(), so that you have
>a choice of either "standing pat" and accepting the current score, or else
>trying and accepting the score from one of the interesting moves, if the
>scores are better than the score you get by "doing nothing"...

I ended up trying something like that after I posted my question.
My move generator now returns a flag that's true if there are
addditional moves that weren't returned.  At the end of the
search routine, before returning alpha, I now check the flag.  If
it's true and the static eval for the current position > alpha,
then I set alpha to the static eval for the current position.
(I was already calling evaluate at the start of the routine to
detect terminal positions and for a basis for finding killer
moves.)

This seems to provide a "safety outlet," as you said, but I'm
uncomfortable with how safe the safety outlet is.  If all the
non-interesting moves I didn't evaluate also lead to worse
positions, then returning the static eval for the current
position will return a misleading value.

On the other hand, I guess it's no less reliable than any other
static evaluation on a non-terminal position....

Was the way I did it the right way?

Larry Coon



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.