<p>Your logic is flawed because you negated "stand-pat" (i.e. do nothing) and alpha-beta. Let's take a look at the pseudocode (<a href="https://www.chessprogramming.org/Quiescence_Search#Pseudo_Code" rel="nofollow noreferrer">https://www.chessprogramming.org/Quiescence_Search#Pseudo_Code</a>):</p>

<pre><code>int Quiesce( int alpha, int beta ) {
    int stand_pat = Evaluate();
    if( stand_pat &gt;= beta )
        return beta;
    if( alpha &lt; stand_pat )
        alpha = stand_pat;

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

        if( score &gt;= beta )
            return beta;
        if( score &gt; alpha )
           alpha = score;
    }
    return alpha;
}
</code></pre>

<p>Your Qxd6 capture will make return a score <strong>far</strong> below the alpha. The line:</p>

<blockquote>
  <p>if( score > alpha )</p>
</blockquote>

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

CC BY-SA 4.0
2019-01-07T01:54:47.067Z
2019-01-07T01:54:47.067Z
SmallChess
<p>Consider this game state:
<a href="https://i.sstatic.net/wfOrF.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/wfOrF.png" alt="GameState" /></a></p>
<p>d5 captures c6</p>
<p>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:<a href="https://i.sstatic.net/ACI6V.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ACI6V.png" alt="GameState after quiescence search end" /></a>
which would result in a huge advantage for black.</p>
<p>Is my interpretation of quiescence search wrong?</p>

<search><minimax><chess><quiescence-search>
Does quiescence search even improve the minimax algorithm?
Aura Lee
# Does quiescence search even improve the minimax algorithm?

(Asked by: username_0 on 2019-01-05)

Consider this game state:
[![GameState](https://i.sstatic.net/wfOrF.png)](https://i.sstatic.net/wfOrF.png)

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](https://i.sstatic.net/ACI6V.png)](https://i.sstatic.net/ACI6V.png)
which would result in a huge advantage for black.

Is my interpretation of quiescence search wrong?

**Tags:** search, minimax, chess, quiescence-search


---

## 1 answers

### Answer by username_1 on 2019-01-07. Score: 1 | Accepted answer

Your logic is flawed because you negated "stand-pat" (i.e. do nothing) and alpha-beta. Let's take a look at the pseudocode (https://www.chessprogramming.org/Quiescence_Search#Pseudo_Code):
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 )  {
        MakeCapture();
        score = -Quiesce( -beta, -alpha );
        TakeBackMove();

        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.


---

