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.