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.