Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: And a few additional questions.

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.