Author: Alessandro Damiani
Date: 16:48:16 11/26/00
Go up one level in this thread
On November 26, 2000 at 18:59:21, Bruce Moreland wrote: >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. >>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. > >It is a standard qsearch. I argue that this could be called a null-move >quiescent search, since you can choose from amongst several possible moves, or >you can choose not to move. > >The terminology isn't that big a deal, I think. it is null-move, since the common definition is depth-based. at the horizon and below the search depth in each node is equal to 0. So the null-move is reduced to a static evaluation. Alessandro > >>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. > >Yes, there are some problems, and in fact I had this bug. I simply turn this >off when there are only a few pieces. > >It's not perfect. You could be giving a huge bonus for connected passed pawns, >and not allow one of them to be captured. > >bruce > >> >>-- Dieter
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.