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.