Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A question about quiescence search

Author: Peter Fendrich

Date: 01:38:48 10/21/02

Go up one level in this thread


On October 19, 2002 at 19:16:59, Nagendra Singh Tomar wrote:

>Hi All,
>	In quiesce search as soon as we enter the quiesce() routine and we find that
>the the side to move is not in check, we call static evaluation to get the
>static score(say sval). Now if sval >= beta, we simply return sval/beta
>(depending on whether its a fail-soft search), *without* doing the quiesce
>search. Does that mean that we are assuming that the quiesce search will only
>increase the score, because if the quiesce score were to be less than the static
>board score then failing high would not have been correct.
>We fail-high when we know that anything else will only better the score.
>An incomplete routine highlighting the above point is shown below.
>
>int quiesce(alpha, beta, depth)
>{
>    if(ptm_not_in_check)
>    {
>	sval = evaluate();
>	if(depth == 0)
>		return sval;
>	if(sval > alpha)
>	{
>	    if(sval >= beta)
>		return sval;	/* why this */
>	}
>    }
>}
>
>\tomar

I'm using a margin instead, like this:
   if(sval-100 >= beta)
	return sval;
and also
   if(sval+100 <= alpha)
        return sval;
By this positional values can overide material in some case. I'm not sure,
though, what margin is best here.

To your second question in your second post:
alpha = sval; /* why this */

When using the margin above I know that the the move will get a sval with some
positional changes in mind.
NB. I'm using SEE to order the captures which means that in most cases the best
capture is tried first and after that I probably could reduce the margin but I
haven't tried that yet.
Peter







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.