Author: Carlos del Cacho
Date: 12:51:05 11/26/00
Go up one level in this thread
On November 26, 2000 at 14:40:16, Dieter Buerssner wrote: >On November 26, 2000 at 13:03:49, Bruce Moreland wrote: > >>The quiescent search included at the end of this does null-moves implicitly. If >>the score returned after a null-move is better than the score returned after any >>capture, it will return the null-move score. > >... > >>int qsearch(int alpha, int beta) >>{ >> int cur; >> >> cur = eval(); >> if (cur >= beta) >> return beta; >> if (cur > alpha) >> alpha = cur; >> while (captures()) { >> make_next_capture(); >> cur = -qsearch(-beta, -alpha); >> unmake_move(); >> if (cur >= beta) >> return beta; >> if (cur > alpha) >> alpha = cur; >> } >> return alpha; >>} > >I cannot see any null move here. What am I missing? The usual definition of >null move is, that you pass the right to move to the opponent. For qsearch, this >would mean, instead of me, let the opponent capture. If I am still better than >beta, this is a fail high node. Otherwise, I try my captures in the ususual way. Actually, if the null-move failed high it would also do it with the stand-pat score... I think. Carlos >While I have not tried this idea, I would think, that it won't save anything in >qsearch, to the contrary, probably more nodes will be searched on average. > >The qsearch routine above looks to me like a "standard" qsearch, that returns >the stand-pat when >= beta without generating any moves. > >Let me add one thing to the good advice you gave in you other post. >Skipping moves, that obviously cannot bring the score to alpha can have a few >traps. I.e. say alpha is -0.5 and the stand-pat is -4.5 in KNPK. Capturing >the last opponent pawn would not bring back the stand-pat to alpha, even not >with a considerably large safety margin. Nevertheless, the score is 0.0 which is >> alpha. > >-- Dieter
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.