4

I'm running Stockfish with MultiPV=7:

script: setoption name MultiPV value 7
script: ucinewgame
script: position startpos moves d2d4 g8f6 c2c4 g7g6 b1c3 d7d5 c1f4 f8g7 f4e5 d5c4 e2e3 b8c6 d1a4 e8g8 e5f6 g7f6 f1c4 a7a6 c4d5 b7b5 a4d1 c8b7 a2a3 e7e6 d5f3 c6a5 f3b7 a5b7 b2b4 c7c5 b4c5
script: isready
engine: readyok
script: go movetime 600000.0

When I look at the "multipv 7" lines, I see a strange evaluation at the end of the analysis:

engine: info depth 1 seldepth 1 score cp -74 nodes 463 nps 66142 time 7 multipv 7 pv e6e5 g1e2 e5d4 e3d4
engine: info depth 2 seldepth 2 score cp -74 nodes 1314 nps 187714 time 7 multipv 7 pv e6e5 g1e2 e5d4 e3d4
engine: info depth 3 seldepth 4 score cp -79 nodes 3193 nps 399125 time 8 multipv 7 pv d8c7 c3e4 c7a5 d1d2
engine: info depth 4 seldepth 6 score cp -106 nodes 6224 nps 622400 time 10 multipv 7 pv d8c7 g1e2 c7a5 d1d2
[268 lines omitted]
engine: info depth 31 seldepth 52 score cp -70 nodes 3472890690 nps 6622358 time 524419 multipv 7 pv e6e5 c5c6 a8c8 d4d5 d8a5 g1e2 e5e4 a1c1 b7c5 e1g1 f6e5 d5d6 f8d8 c3e4 c5e4 d6d7 c8c7 d1d5 e4c3 e2c3 e5c3 d5d6 c3b2
engine: info depth 31 seldepth 52 score mate 0 upperbound nodes 3666345467 nps 6585523 time 556728 multipv 7 pv d8e7 a1c1 a8c8 c3e4 e6e5 d4d5 b7c5 d5d6 c5d3 d1d3 c8c1 e1d2
engine: info depth 32 seldepth 52 score mate -7 lowerbound nodes 3696286819 nps 6601691 time 559900 multipv 7 pv d8e7 a1c1 a8c8 c3e4 e6e5 d4d5 b7c5 d5d6 c5d3 d1d3 c8c1 e1d2 e7e6
engine: info depth 32 seldepth 52 score mate -7 nodes 3992249349 nps 6653549 time 600018 multipv 7 pv d8e7 a1c1 a8c8 c3e4 e6e5 d4d5 b7c5 d5d6 c5d3 d1d3 c8c1 e1d2 e7e6
engine: info nodes 3992249349 time 600018
engine: bestmove d8a5 ponder g1e2

Why does the 3rd-to-last line give "score mate -7"? I believe this is a lower bound due to pruning (as in my previous question), but the line does not say "lowerbound". How can I extract the correct evaluation? I doubt the position is a mate in 7.

Full output is here.

[FEN ""]

1. d4 Nf6 2. c4 g6 3. Nc3 d5 4. Bf4 Bg7 5. Be5 dxc4 6. e3 Nc6 7. Qa4 O-O 8.
Bxf6 Bxf6 9. Bxc4 a6 10. Bd5 b5 11. Qd1 Bb7 12. a3 e6 13. Bf3 Na5 14. Bxb7
Nxb7 15. b4 c5 16. bxc5
2
  • 1
    Can you please tell what MultiPV=7 means? Commented Nov 21, 2014 at 13:01
  • 2
    It means "search for the 7 best moves"
    – tba
    Commented Nov 21, 2014 at 16:58

2 Answers 2

4

Fist things first, I put the position into another chess program (Chessmaster, because I find it has the most reliable mate-search function) and told it to brute-force search for a mate. This is what it found: mate-search result

So to answer one part of your question, no, there isn't a mate in 7 here.

That leaves the question of why you are getting the lines:

engine: info depth 32 seldepth 52 score mate -7 lowerbound nodes 3696286819 nps 6601691 time 559900 multipv 7 pv d8e7 a1c1 a8c8 c3e4 e6e5 d4d5 b7c5 d5d6 c5d3 d1d3 c8c1 e1d2 e7e6
engine: info depth 32 seldepth 52 score mate -7 nodes 3992249349 nps 6653549 time 600018 multipv 7 pv d8e7 a1c1 a8c8 c3e4 e6e5 d4d5 b7c5 d5d6 c5d3 d1d3 c8c1 e1d2 e7e6

I would suggest that the first of these is stating that as far as the engine has calculated, there is no mate in 7, hence the term lowerbound. The next line indicates that the engine is initiating a PV-search for a mate in 7.

2
  • 1
    The output would mean that if black plays d8e7 (not the best move, but it is calculated and output because multi-pv is in use), there is a mate in 7. Based on the screenshot, you are calculating whether there is a mate in the position before that move, which the original question is not about.
    – JiK
    Commented Dec 2, 2014 at 14:35
  • I had the brilliant idea to press "Solve for mate" on the starting position of Chessmaster 3000. It never did finish.
    – Joshua
    Commented Mar 24, 2021 at 18:10
-1

Your largest issue here is the fact that you are using mutli-PV at 7. They often yield unreliable results, so I would recommend moving that down to 3 or lower. When I am doing serious analysis, I often keep it on 1 to maximize performance. After all, it takes more than n times longer per depth per PV.

Otherwise, the engine has no issue evaluating the position and does not find a false mate.

6
  • 2
    While multi-PV to 7 might or might not make the engine unstable, it doesn't answer the question at all.
    – SmallChess
    Commented Dec 2, 2014 at 4:21
  • It does. The incorrect evaluation is only given why multi-pv is put at 7. What else is there? Commented Dec 2, 2014 at 6:29
  • 1
    Of course not. This doesn't explain why exactly this occurred. Multi-pv to 7 might be okay for any other position, this issue could also come up with multi-pv to 4 or 5. The issue is more likely related to transposition tables, search stability etc.
    – SmallChess
    Commented Dec 2, 2014 at 6:31
  • Using MultiPV is never reliable and should only be used as a guide. It has nothing to do with transposition tables or search stability. After all, I am not writing a technical report, simply noting that one cannot rely on the results of a low-ranked option in MultiPV. Commented Dec 2, 2014 at 6:39
  • Multi-PV is not reliable in the sense that the PVs might not be accurate. But the algorithm should still not return a checkmate in a position when it isn't. Your answer is like a doctor saying a patent that "you're not feeling well because you're sick, it has nothing to do with anything else. Your body is simply not reliable."
    – SmallChess
    Commented Dec 2, 2014 at 6:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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