I know that it is possible for a chess engine to evaluate a position as mate in X moves, when in fact there exist a mate in smaller number of moves. But can the reverse situation happen?

For example the engine evaluated a position as mate in 8 moves, but actually the best possible mate is in 9 moves (or 10 or 13).

To be more concrete the engine is stockfish.

  • Assuming Y>0, I suppose that would require some mistake in the programmation of the chess engine. Or you feeding it the position un-precisely, like not informing it that castling rights have been lost. – Evargalo Jan 19 '18 at 8:38
  • @Evargalo yes, assuming Y > 0, otherwise you and up with the example I described in the first paragraph. And yes, assuming there is no mistake in the engine (otherwise if you assume possible mistake, you can justify any evaluation) – Salvador Dali Jan 19 '18 at 8:48
  • @SalvadorDali Good question. The 2nd paragraph of phonon resolved it for me, it's funny how engines sometimes work like us :) – user929304 Jan 25 '18 at 15:36

No, it isn't possible because, before Stockfish says it is Mate in 8, it views the position from the aspect of the losing side, i.e, the evaluation is the best that can be obtained by the losing side.

In other words, Mate in 8 is what happens if the losing side plays the possibly best defense. If the losing side plays sub-optimally, it could lose faster, but 8 moves is the longest possible postponement of Checkmate

  • I don't believe this is correct, however it's possible I'm wrong. What if stockfish makes a mistake because it prunes some possible responses that superficially seem worse but in fact lead to a slower checkmate? – Stoud May 27 '18 at 4:21

I think it helps to realise that the engine does not make assumptions for mistakes during its calculation, instead it only considers best-play by both sides for as far as it can see (depth, time, etc). This would be the only objective way of going about it, and that's how it assigns its principal variation.

In general positions, the normal working of the engine is to continuously go through ever more lines to higher depth, and adapt accordingly its evaluation of the main variations. But, when it comes to there being mating sequences among the principal variation candidates, the key difference stems from the fact that all mating variations are by definition forcing sequences, i.e., the engine gives such variations a "mate in X" evaluation only after having exhausted the full set of possible replies (more technically, within the allowed depth, it has managed to reach the endpoints of all those branches, and they have ended in checkmates). Thus by construction, it cannot have mis-evaluated there being at least "a mate in X" when in fact there's only a mate in "X+Y>X." And as for cases where it keeps finding shorter mates, that's because it is still performing truncations in its exploration of the tree, so even though it may have already found one branch with a forcing mate-sequence (thus at least one winning move), the other unexplored branches (other potential winning moves) may have led to more efficient mates, given more analysis time it will eventually check them and realise a shorter mate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.