Does quiescence search even improve the minimax algorithm?


Consider this game state: GameState

d5 captures c6

Quiescence search returns about 8.0 as evaluation because after dxc6 and bxc6 Qxd6 would be played (then Qxd6 by black). A normal player would not play this move but quiescence search includes it in the evaluation and it would result in this end state:GameState after quiescence search end which would result in a huge advantage for black.

Is my interpretation of quiescence search wrong?


Posted 2019-01-05T21:24:54.670

Reputation: 163



Your logic is flawed because you negated "stand-pat" (i.e. do nothing) and alpha-beta. Let's take a look at the pseudocode (

int Quiesce( int alpha, int beta ) {
    int stand_pat = Evaluate();
    if( stand_pat >= beta )
        return beta;
    if( alpha < stand_pat )
        alpha = stand_pat;

    until( every_capture_has_been_examined )  {
        score = -Quiesce( -beta, -alpha );

        if( score >= beta )
            return beta;
        if( score > alpha )
           alpha = score;
    return alpha;

Your Qxd6 capture will make return a score far below the alpha. The line:

if( score > alpha )

will prevent your blunder being reported. Instead the engine would report either stand_pat (do nothing), or something like Nf3, Nc3 etc.


Posted 2019-01-05T21:24:54.670

Reputation: 1 375