Not logged inRybka Chess Community Forum
Up Topic The Rybka Lounge / Test Positions / Stockfish analysis cast into doubt.
- - By Peter Grayson (****) Date 2019-10-25 20:23
The issue here relates to analysis of a position from a post on Talkchess ...

http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72166

Other than identifying Stockfish erroneously announces mate in a drawn position their is no analysis or discussion as to why.

In analysis of where Stockfish was going wrong it was found to be mainly associated with an incorrect Stockfish choice of opponents move namely move 51.Kd8?? that would just throw the game away whereas 51.Kf8 maintains a draw. In the two other mate announcements with different moves, the theme is the same where White's King moves away from the f7 pawn presumably to go pawn hunting against Black's b7 and b6 pawns but that loses outright.

I have recently noted when analysing some lost games from matches I have run with the Stockfish engine that occasionally Stockfish appears to find a better move than the game move but on analysing from the other side it turns out four or five moves down the move chain Stockfish blunders and suddenly the score can go 2 to 3 adverse. It was my perception that it may have been associated with draw avoidance criteria but is seriously wrong if it affects Stockfish opponents move choice when the draw may not be forced.

I suspect a similar situation arises here when to avoid the 50 move rule the engine changes a move to avoid a draw but that should only be true for its own moves and surely not for the opponent? Here it would cause White to be mated when White has an easy draw.

Given this position and subsequent moves highlight the problem of erroneous scoring it may be worth checking any draw avoidance criteria incorporated in the engine code because it needs to be applied to the engine to move and not for the opponent! If there is no such criteria then the problem arises elsewhere but it seems to be long-standing because the Stockfish engines 8 to 10 have the same issue.

Analysing with Komodo 11.3.1 and Houdini 6.03 Pro produced interesting results.

The Komodo mate announcement #24 at move 35 was caused by the very same error as Stockfish when it recorded 51.Kd8?? as White's last move in its analysis for the mate. White of course had 51.Kf8=

Houdini however showed a score favouring Black until its search ply depths started to hit the bounds of the 50 move rule when its score bounced between -0.71 and -3.52 at move 16 and never moved off zero after recording that at move 17.

[Event "No mate"]
[Site "URIBLASS-THINK"]
[Date "2019.10.25"]
[Round "?"]
[White "UriBlass"]
[Black "Stockfish_19102310_x64_modern"]
[Result "*"]
[WhiteElo "2400"]
[BlackElo "2000"]
[Annotator "Grayson,Peter"]
[SetUp "1"]
[FEN "8/1p6/1p6/kPp2P1K/2P5/N1Pp4/q2P4/1N6 w - - 0 1"]
[PlyCount "103"]
[EventDate "2019.??.??"]

1. f6 Qb3 2. f7 Qd1+ 3. Kh6 Qf3 4. Kg7 Qg4+ 5. Kh7 Qf5+ 6. Kg7 Qg5+ 7. Kh7 Qf6
8. Kg8 Qg6+ 9. Kf8 Ka4 10. Ke7 Qg5+ 11. Ke8 Qe5+ 12. Kd8 Qf6+ 13. Ke8 Qe6+ 14.
Kf8 Kb3 15. Kg7 Qe7 ({Houdini 6.03 Pro x64-pext:} 15... Qe7 16. Kg8 Qg5+ 17.
Kh8 Qh6+ 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7 Qg7 21. Ke8 Qe5+ 22. Kd7 Qf6 23. Ke8
Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kf8 Qf6 27. Ke8 Qe6+ 28. Kf8 Kd1 29. Kg7 Qe7
30. Kg8 Qg5+ 31. Kh7 Qf6 32. Kg8 Qg6+ 33. Kf8 Ke2 34. Ke7 Qg7 35. Ke8 Qe5+ 36.
Kd8 Qd6+ 37. Ke8 Qe6+ 38. Kf8 Kf3 39. Kg7 Qe5+ 40. Kg8 Qg5+ 41. Kh7 {-3.26/33
33/87 ply depth}) 16. Kg8 Qg5+ ({Houdini 6.03 Pro x64-pext:} 16... Qg5+ 17. Kh7
{-1.71/29 ply depth 29/88. Here Houdini output 17 iterations at 28 ply/88 with
its score bouncing between -0.71 and -3.65 suggesting the higher secondary ply
depth searches were hitting the bounds of the 50 move rule!}) 17. Kh7 Qf6 ({
Houdini 6.03 Pro x64-pext:} 17... Qf6 18. Kg8 Qg6+ 19. Kf8 Ka4 20. Ke7 Qg5+ 21.
Ke8 Qe5+ 22. Kf8 Qe6 23. Kg8 Qg6+ 24. Kf8 Qe4 25. Kg7 Qe7 26. Kg8 Qg5+ 27. Kh8
Qd8+ 28. Kg7 Qe7 {0.00/44 Houdini has detected there is no win here within the
50 move rule boundary and its score has dropped to zero that raises the
question, why not Stockfish and Komodo too?}) 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7
Qg7 21. Ke8 Qe5+ ({Houdini 6.03 Pro x64-pext:} 21... Qe5+ 22. Kd7 Qf6 23. Ke8
Qe6+ 24. Kf8 Qe2 25. Kg8 Qg2+ 26. Kh7 Qe4+ 27. Kg7 Qg2+ 28. Kh7 {0.00/44}) 22.
Kd7 Qf6 23. Ke8 Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kg8 Qg5+ 27. Kh7 Qf6 28. Kg8
Qg6+ 29. Kf8 Kd1 ({Houdini 6.03 Pro x64-pext:} 29... Qg1 30. Ke8 Qe1+ 31. Kd7
Qf1 32. Ke7 Qe2+ 33. Kd6 Qh2+ 34. Ke6 Qh6+ 35. Ke7 Qh4+ 36. Ke8 Qe4+ 37. Kd8
Qf3 38. Ke7 Qe4+ 39. Kd7 Qf3 40. Ke7 {0.00/53}) 30. Ke7 Qg5+ ({Komodo 11.3.1
64-bit BMI2:} 30... Qe4+ 31. Kd7 Qf4 32. Ke7 Qg5+ 33. Kf8 Ke1 34. Ke8 Qg6 35.
Ke7 Qg7 36. Ke8 Qe5+ 37. Kd7 Qf6 38. Ke8 Qe6+ 39. Kf8 Qe5 40. Kg8 Qg5+ 41. Kh7
Qf6 42. Kg8 Qg6+ 43. Kf8 Ke2 44. Ke7 Qg7 45. Ke8 Qe5+ 46. Kd7 Qf6 47. Kc7 Qxf7+
48. Kxb6 Qe7 49. Ka5 Qc7+ 50. Ka4 Ke1 51. Kb3 Kd1 52. Ka4 Qd6 53. Kb3 Kc1 54.
Ka2 Qc7 55. Kb3 Qe7 56. Ka2 Qg5 57. Kb3 Qh6 58. Ka2 Qf8 59. Kb3 Qh8 {-3.97/42})
({Houdini 6.03 Pro x64-pext:} 30... Qe4+ 31. Kd7 Qf5+ 32. Ke7 Qe4+ {0.00/55})
31. Ke8 Qe5+ ({Komodo 11.3.1 64-bit BMI2:} 31... Qh5 32. Kf8 Qh6+ 33. Kg8 Qg5+
34. Kh8 Qe5+ 35. Kh7 Qf6 36. Kg8 Qe6 37. Kf8 Qg4 38. Ke8 Qe4+ 39. Kd8 Qf4 40.
Ke7 Qe5+ 41. Kd8 Qg7 42. Ke7 Qh7 43. Kf8 Ke2 44. Ke8 Qh5 45. Kf8 Qe5 46. Kg8
Qg5+ 47. Kh8 Qf4 48. Kg8 Qg3+ 49. Kh8 Qd6 50. Kg7 Qe7 51. Kg8 Qe6 {-5.09/34}) (
{Houdini 6.03 Pro x64-pext:} 31... Qe5+ 32. Kd8 Qh8+ 33. Ke7 Qh4+ 34. Ke8 Qe1+
35. Kd8 Qf2 36. Ke8 Qe1+ {0.00/58}) 32. Kd7 Qf6 ({Komodo 11.3.1 64-bit BMI2:}
32... Qf6 33. Ke8 Qe6+ 34. Kf8 Ke2 35. Kg7 Qe5+ 36. Kg8 Qg5+ 37. Kh8 Qf6+ 38.
Kg8 Qg6+ 39. Kf8 Kf3 40. Ke7 Qe4+ 41. Kd8 Qf4 42. Ke8 Qe5+ 43. Kd7 Qf6 44. Kc7
Qxf7+ 45. Kxb6 Qe7 46. Ka7 Ke2 47. b6 Kd1 48. Nb5 Kc1 49. Nc7 Qe4 50. Nd5 Qxc4
51. Nc7 Qe4 52. Na3 Kxd2 53. c4 Kc1 54. Nd5 d2 55. Nc3 Qe5 56. Nab5 Kb2 57. Nd5
d1=Q 58. Kxb7 Qa4 59. Ndc7 {-7.71/36}) 33. Ke8 Qe6+ ({Houdini 6.03 Pro
x64-pext:} 33... Qe5+ 34. Kd8 Qd6+ 35. Ke8 Qe6+ 36. Kf8 Qd7 37. Kg7 Qg4+ 38.
Kf6 Qf4+ 39. Kg7 Qg4+ {0.00/58}) 34. Kf8 Ke2 35. Kg7 Qe7 ({Stockfish 231019 64
BMI2:} 35... Qe5+ 36. Kg8 Qg5+ 37. Kh7 Qf6 38. Kg8 Qg6+ 39. Kf8 Kf3 40. Ke7 Qg7
41. Ke8 Qe5+ 42. Kd7 Qf6 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47.
Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Ke5 50. Ke7 Qe6+ 51. Kd8 $4 $11 (51. Kf8 $3 $11)
51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd7 54. Nc2 Qf8+ 55. Kxb7 Qc8+ 56. Kxb6 Qb8+ 57.
Ka6 Kc7 58. b6+ Qxb6# {-#24/95}) ({Komodo 11.3.1 64-bit BMI2:} 35... Qe5+ 36.
Kg8 Qg5+ 37. Kh8 Qf6+ 38. Kg8 Qg6+ 39. Kf8 Kf3 40. Ke7 Qg7 41. Ke8 Qe5+ 42. Kd7
Qf6 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+
49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 {-#24/22}) ({Houdini 6.03 Pro x64-pext:} 35...
Qe5+ 36. Kg8 Qg3+ 37. Kh8 Qh2+ 38. Kg7 Qg3+ 39. Kh8 {0.00/56}) 36. Kg8 Qg5+ ({
Stockfish 231019 64 BMI2:} 36... Qg5+ 37. Kh7 Qf6 38. Kg8 Qg6+ 39. Kf8 Kf3 40.
Ke7 Qg7 41. Ke8 Qe5+ 42. Kd8 Qd6+ 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8
Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 (51. Kf8 $3
$11) 51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 Qc7+ 55. Ka7 dxc2 56. Na3 c1=Q
57. Nb1 Qxb1 58. d4 Qa1# {-#23/96}) 37. Kh7 Qf6 ({Stockfish 231019 64 BMI2:}
37... Qf6 38. Kg8 Qg6+ 39. Kf8 Kf3 40. Ke7 Qg5+ 41. Ke8 Qe5+ 42. Kd8 Qf6+ 43.
Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8
Kf5 50. Ke7 Qe6+ 51. Kd8 $4 (51. Kf8 $3) 51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54.
Nc2 Qc7+ 55. Ka7 dxc2 56. Na3 c1=Q 57. Nb1 Qxb1 58. d4 Qa1# {-#22/99}) 38. Kg8
Qg6+ ({Stockfish 231019 64 BMI2:} 38... Qg6+ 39. Kf8 Kf3 40. Ke7 Qg5+ 41. Ke8
Qe5+ 42. Kd8 Qf6+ 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7
Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 (51. Kf8 $11) 51... Qxf7
52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 Qc7+ 55. Ka7 dxc2 56. Na3 c1=Q 57. Nb1 Qxb1 58.
d4 Qa1# {-#21/100}) 39. Kf8 Kf3 ({Stockfish 231019 64 BMI2:} 39... Kf3 40. Ke7
Qg7 41. Ke8 Qe5+ 42. Kd8 Qf6+ 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46. Kg8
Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qg7 51. Kd8 $4 (51. Ke8 $11)
51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 dxc2 55. Na3 Qc7+ 56. Ka7 c1=Q 57.
Nb1 Qxb1 58. d4 Qa1# {-#20/98}) 40. Ke7 Qg5+ ({Stockfish 231019 64 BMI2:} 40...
Qg5+ 41. Ke8 Qe5+ 42. Kd8 Qd6+ 43. Ke8 Qe6+ 44. Kf8 Kf4 45. Kg7 Qe7 46. Kg8
Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qg7 51. Kd8 $4 $19 Qxf7 52.
Kc8 Ke5 53. Nc2 dxc2 54. Na3 c1=Q 55. d4+ Kd6 56. dxc5+ Kxc5 57. Nc2 Qcf4 58.
Ne3 Q4c7# {-#19/101}) 41. Ke8 Qe5+ ({Stockfish 231019 64:} 41... Qe5+ 42. Kf8
$4 (42. Kd7 $3 $11 Qf6 43. Kc7 Qxf7+ 44. Kxb6 Qe7 45. Ka7 Ke2 46. b6 Qd7 47.
Nb5 Kd1 48. Nc7 Qc6 49. Nd5 Kc2 50. Nf4 Kxb1 51. Nxd3 Kc2 52. Nf4 Qa4+ 53. Kxb7
Qxc4 54. Nh3 Kxd2 55. Ka7 Qa2+ 56. Kb8 Qe6 57. b7 Qxh3 58. Ka7 Qh2 59. c4 Kd3
60. Ka8 Kxc4 61. b8=Q Qxb8+ 62. Kxb8 Kd4 63. Kc7 c4 64. Kd6 c3 65. Ke6 c2 66.
Kf5 c1=Q 67. Ke6 Qf4 68. Kd7 Qf6 69. Kc8 Kc5 70. Kb7 Qd8 71. Ka7 Kc6 72. Ka6
Qa8# {-#32/75}) 42... Kf4 43. Kg8 Qg5+ 44. Kf8 Ke5 45. Ke8 Qg6 46. Ke7 Qe6+ 47.
Kf8 Kf5 48. Kg7) ({Stockfish 231019 64 BMI2:} 41... Qe5+ 42. Kd8 Qf6+ 43. Ke8
Qe6+ 44. Kf8 Kg4 45. Kg7 Qe7 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5
50. Ke7 Qe6+ 51. Kd8 $4 Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 dxc2 55. Na3 c1=Q
56. Nb1 Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#18/112}) 42. Kd7 Qf6 ({Stockfish
231019 64:} 42... Qf6 43. Kc7 $4 (43. Ke8 $4) 43... Qxf7+ 44. Kxb6 Qe7 45. Ka7
Ke2 46. b6 Qd7 47. Nb5 Kd1 48. Nc7 Qc6 49. Nd5 Kc2 50. Nf4 Kxb1 51. Nxd3 Kc2
52. Nf4 Qa4+ 53. Kxb7 Qxc4 54. Nh3 Kxd2 55. Ka7 Qa2+ 56. Kb8 Qe6 57. b7 Qxh3
58. c4 Qh2+ 59. Ka8 Kd3 60. b8=Q Qxb8+ 61. Kxb8 Kxc4 62. Kc7 Kd4 63. Kc6 c4 64.
Kd6 c3 65. Ke6 c2 66. Kf5 c1=Q 67. Ke6 Qf4 68. Kd7 Qf6 69. Kc8 Kc5 70. Kb7 Qd8
71. Ka7 Kc6 72. Ka6 Qa8# {-#31/77}) ({Stockfish 231019 64 BMI2:} 42... Qf6 43.
Ke8 Qe6+ 44. Kf8 Kg4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8
Kf5 50. Ke7 Qe6+ 51. Kd8 $4 $19 (51. Kf8 $3 $11) 51... Qxf7 52. Kc8 Ke6 53. Kb8
Kd6 54. Nc2 dxc2 55. Na3 c1=Q 56. Nb1 Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#17/84})
43. Ke8 Qe6+ ({Stockfish 231019 64:} 43... Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46.
Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 Qxf7 52. Kc8
Ke5 53. Nc2 Kd6 54. Kb8 dxc2 55. Na3 c1=Q 56. Nc2 Qxc2 57. d3 Qc7+ 58. Ka7 Qa2#
{-#16/89}) ({Stockfish 231019 64 BMI2:} 43... Qe6+ 44. Kf8 Kf4 45. Kg7 Qe5+ 46.
Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 (51. Kf8
$3 $11) 51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 dxc2 55. Na3 c1=Q 56. Nb1
Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#16/112}) 44. Kf8 Ke4 ({Stockfish 231019 64:}
44... Kf4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50.
Ke7 Qe6+ 51. Kd8 $4 $19 (51. Kf8 $3 $11) 51... Qxf7 52. Kc8 Ke5 53. Nc2 Kd6 54.
Kb8 dxc2 55. Na3 c1=Q 56. Nc2 Qxc2 57. d3 Qc7+ 58. Ka7 Qa2# {-#15/99}) ({
Stockfish 231019 64 BMI2:} 44... Kg4 45. Kg7 Qe5+ 46. Kg8 Qg5+ 47. Kh7 Qf6 48.
Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2
dxc2 55. Na3 c1=Q 56. Nb1 Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#15/114}) 45. Kg7 Qe7
({Stockfish 231019 64:} 45... Qe5+ 46. Kg8 Qg5+ 47. Kh8 Qf6+ 48. Kg8 Qg6+ 49.
Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 $19 (51. Kf8 $3 $11) 51... Qxf7 52. Kc8 Ke6 53.
Kb8 Kd6 54. Nc2 dxc2 55. d4 cxb1=Q 56. dxc5+ bxc5 57. b6 Qxb6 58. Ka8 Qe8# {
-#14/94}) ({Stockfish 231019 64:} 45... Qe7 46. Kg8 Qg5+ 47. Kh7 Qf6 48. Kg8
Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 $19 (51. Kf8 $3 $11) 51... Qxf7 52.
Kc8 Ke5 53. Nc2 Kd6 54. Kb8 dxc2 55. Na3 c1=Q 56. Nc2 Qxc2 57. d3 Qc7+ 58. Ka7
Qa2# {-#14/104}) 46. Kg8 Qg5+ ({Stockfish 231019 64 BMI2:} 46... Qg5+ 47. Kh7
Qf6 48. Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 $19 ({Stockfish 231019 64
BMI2:} 51. Kf8 $3 $11 Qd6+ 52. Kg8 {0.00/103}) 51... Qxf7 52. Kc8 Ke5 53. Nc2
Kd6 54. Kb8 dxc2 55. Na3 c1=Q 56. Nb1 Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#13/130})
{Stockfish 231019 64:} 47. Kh7 Qf6 ({Stockfish 231019 64 BMI2:} 47... Qf6 48.
Kg8 Qg6+ 49. Kf8 Kf5 50. Ke7 Qe6+ 51. Kd8 $4 ({Stockfish 231019 64 BMI2:} 51.
Kf8 $3 $11 Qd6+ 52. Ke8 {0.00/106}) 51... Qxf7 52. Kc8 Ke5 53. Nc2 Kd6 54. Kb8
dxc2 55. Na3 c1=Q 56. Nb1 Qxb1 57. d4 Qc7+ 58. Ka7 Qa1# {-#12/132}) 48. Kg8
Qg6+ ({Stockfish 231019 64 BMI2:} 48... Qg6+ 49. Kf8 Kf5 50. Ke7 Qg7 51. Kd8
Qxf7 52. Kc8 Ke5 53. Nc2 Kd6 54. Kb8 dxc2 55. Na3 c1=Q 56. Nb1 Qxb1 57. d4 Qc7+
58. Ka7 Qa1# {-#11/100}) 49. Kf8 Kf5 ({Stockfish 231019 64 BMI2:} 49... Qf6 50.
Ke8 Qe6+ 51. Kf8 {0.00/71}) {Stockfish 231019 64:} 50. Ke7 (50. Ke7 $11 Qe6+
51. Kd8 $4 (51. Kf8 $3 $11) 51... Qxf7 52. Kc8 Ke6 53. Kb8 Kd6 54. Nc2 dxc2 55.
d4 cxb1=Q 56. dxc5+ bxc5 57. b6 Qxb6 58. Ka8 Qe8# {-#12/112}) 50... Qe6+ ({
Stockfish 231019 64 BMI2:} 50... Qg7 51. Ke8 Ke6 52. Nc2 {0.00/73}) 51. Kf8
Qd6+ ({Stockfish 231019 64 BMI2:} 51... Qf6 52. Kg8 {0.00/109}) 52. Kg8 {
0.00/82} *



Peter
Parent - - By McBrain (*) Date 2019-11-02 02:04 Upvotes 1
We know why.  It the well known 'Graph History Interaction" or known as the GHI problem.

Here's a scholarly discussion of the issue http://webdocs.cs.ualberta.ca/~mmueller/ps/aaai-ghi.pdf

The 30 second elevator explanation is that transposition tables (TT) do not contain game state, most importantly , the 50 move rule  counter im this case.  So if Stockfish or any other chess program has it stored as mate when the 50 move rule counter did not indicate the draw, then on a lookup down the road, where the 50 move rule counter has been incremented, the game state has changed, but when the lookup is performed, stockfish , or any other engine does not know that and still calls it mate. even though it now may be a draw.  If you clear the TT  on every game state change , you lose the benefits of TT so much that it loses Elo.   All attempts  to fix it involve ignoring TT after the move counter,  say hits 90 ( 90 == 45 moves for each player) are either Elo losses or neutral and also new issues appear as well - specifically , those long mates that you line engines to find also disappear.
Parent - By user923005 (****) Date 2019-11-02 02:24
A masterful explanation
Parent - By Peter Grayson (****) Date 2019-11-02 14:20 Upvotes 1
Thank you for the explanation and the link.

In analysis, clearing the TT on each half ply only works up to a point so I took the moves back to where the erroneous score started to be shown despite starting with clean hash to kick off some engine games to check what may happen under game conditions.

I ran 4 games where the previous game moves were included. In game 1 White started at move 39 and output a score of 39.Kf1 148.80/51. The second instance of the engine with Black scored it a draw a half ply later with 39..Kf3 0.00/84. White lost when it played 43.Kc7 moving its King away from the defence of f7 pawn.
[Event "Stockfish 50 mv rule test"]
[Site "Newport, South Wales"]
[Date "2019.11.02"]
[Round "1"]
[White "Stockfish 311019 64_N1"]
[Black "Stockfish 311019 64_N2"]
[Result "0-1"]
[Annotator "-148.80;0.00"]
[SetUp "1"]
[FEN "8/1p6/1p6/kPp2P1K/2P5/N1Pp4/q2P4/1N6 w - - 0 1"]
[PlyCount "134"]
[EventDate "2019.11.02"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "Grayson"]

{Intel(R) Core(TM)2 Quad CPU  Q9550 @ 2.83GHz 2833 MHz W=65.2 plies; 6,285kN/s;
42,191,535 TBAs B=87.2 plies; 5,784kN/s; 29,805,231 TBAs} 1. f6 Qb3 2. f7 Qd1+
3. Kh6 Qf3 4. Kg7 Qg4+ 5. Kh7 Qf5+ 6. Kg7 Qg5+ 7. Kh7 Qf6 8. Kg8 Qg6+ 9. Kf8
Ka4 10. Ke7 Qg5+ 11. Ke8 Qe5+ 12. Kd8 Qf6+ 13. Ke8 Qe6+ 14. Kf8 Kb3 15. Kg7 Qe7
16. Kg8 Qg5+ 17. Kh7 Qf6 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7 Qg7 21. Ke8 Qe5+ 22.
Kd7 Qf6 23. Ke8 Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kg8 Qg5+ 27. Kh7 Qf6 28. Kg8
Qg6+ 29. Kf8 Kd1 30. Ke7 Qg5+ 31. Ke8 Qe5+ 32. Kd7 Qf6 33. Ke8 Qe6+ 34. Kf8 Ke2
35. Kg7 Qe7 36. Kg8 Qg5+ 37. Kh7 Qf6 38. Kg8 Qg6+ 39. Kf8 {-148.80/51 168} Kf3
{0.00/84 114} 40. Ke7 {-148.85/61 97} Qg5+ {0.00/91 176} 41. Ke8 {-148.85/51 7}
Qe5+ {0.00/84 5} 42. Kd7 {-148.88/48 8} Qf6 {0.00/83 9} 43. Kc7 {-148.88/51 7
(Ke8)} Qxf7+ {-19.03/32 6} 44. Kxb6 {-148.90/49 6} Qe7 {-21.72/31 7} 45. Ka7 {
-148.91/52 11} Qc7 {-24.67/30 11} 46. b6 {-148.92/44 6} Qc6 {-32.61/29 7} 47.
Nb5 {-148.92/49 7} Ke2 {-61.52/37 5} 48. Nc7 {-148.93/50 10} Kd1 {-148.71/36 7}
49. Nd5 {-148.95/49 28} Kc2 {-148.92/39 9} 50. Na3+ {-148.96/49 11} Kxd2 {
-148.94/41 6} 51. Ka8 {-148.99/46 6 (Nf4)} Kc1 {-148.99/46 6} 52. Nf4 {-149.01/
49 10} Kb2 {-149.01/49 32 (Qxb6)} 53. Nxd3+ {-#16/58 14} Kxa3 {-#21/51 4} 54.
Ka7 {-#15/62 6 (Nf4)} Kb3 {-#14/57 12} 55. Ne5 {-#14/65 5} Qe6 {-#13/59 6} 56.
Nd3 {-#13/65 12} Qe7 {-#12/63 4 (Kxc4)} 57. Ne5 {-#11/63 5} Qxe5 {-#11/65 5}
58. Kxb7 {-#10/66 5} Qd6 {-#10/63 4} 59. Ka7 {-#9/74 5} Ka4 {-#9/73 4 (Qd7+)}
60. Kb7 {-#8/78 4} Qd7+ {-#8/79 4} 61. Ka6 {-#7/116 4 (Ka8)} Qc6 {-#7/106 4}
62. Ka7 {-#6/1 0} Ka5 {-#6/157 4} 63. b7 {-#5/219 4} Qa6+ {-#5/222 6 (Qc7)} 64.
Kb8 {-11.78/1 0} Kb6 {-#4/245 0 (Qxc4)} 65. Kc8 {-12.47/1 0} Qxb7+ {-#3/245 0}
66. Kd8 {-12.50/1 0} Qf7 {-#2/245 0 (Qc7+)} 67. Kc8 {-#1/1 0} Qc7# {-#1/245 0}
0-1


In Game 2, I moved the start position back 2 ply and now curiously it was Black's 39..Qg3 that was unexpected by White that may have cleared White's TT and suddenly now it saw the draw with 40.Ke7 0.00/75 and that is how the game ended.

[Event "Stockfish 50 mv rule test-1"]
[Site "Newport, South Wales"]
[Date "2019.11.02"]
[Round "1"]
[White "Stockfish 311019 64_N2"]
[Black "Stockfish 311019 64_N1"]
[Result "1/2-1/2"]
[Annotator "-148.80;-0.10"]
[SetUp "1"]
[FEN "8/1p6/1p6/kPp2P1K/2P5/N1Pp4/q2P4/1N6 w - - 0 1"]
[PlyCount "103"]
[EventDate "2019.11.02"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "Grayson"]

{Intel(R) Core(TM)2 Quad CPU  Q9550 @ 2.83GHz 2833 MHz W=72.6 plies; 5,867kN/s;
11,867,939 TBAs B=78.3 plies; 5,506kN/s; 8,659,235 TBAs} 1. f6 Qb3 2. f7 Qd1+
3. Kh6 Qf3 4. Kg7 Qg4+ 5. Kh7 Qf5+ 6. Kg7 Qg5+ 7. Kh7 Qf6 8. Kg8 Qg6+ 9. Kf8
Ka4 10. Ke7 Qg5+ 11. Ke8 Qe5+ 12. Kd8 Qf6+ 13. Ke8 Qe6+ 14. Kf8 Kb3 15. Kg7 Qe7
16. Kg8 Qg5+ 17. Kh7 Qf6 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7 Qg7 21. Ke8 Qe5+ 22.
Kd7 Qf6 23. Ke8 Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kg8 Qg5+ 27. Kh7 Qf6 28. Kg8
Qg6+ 29. Kf8 Kd1 30. Ke7 Qg5+ 31. Ke8 Qe5+ 32. Kd7 Qf6 33. Ke8 Qe6+ 34. Kf8 Ke2
35. Kg7 Qe7 36. Kg8 Qg5+ 37. Kh7 Qf6 38. Kg8 {-148.80/51 84} Qg6+ {-0.10/86 163
} 39. Kf8 {-148.85/60 61} Qg3 {0.00/80 33 (Kf3)} 40. Ke7 {0.00/75 60 (Ke8)}
Qe5+ {-0.10/79 103} 41. Kd7 {0.00/77 9} Qf6 {0.00/89 17} 42. Ke8 {0.00/78 7}
Qe5+ {0.00/89 8 (Qe6+)} 43. Kf8 {0.00/79 15 (Kd8)} Kf3 {0.00/77 7 (Qh8+)} 44.
Kg8 {0.00/67 10} Qe6 {0.00/80 6 (Qg5+)} 45. Kg7 {0.00/76 9} Qd7 {0.00/78 6
(Qe5+)} 46. Kg8 {0.00/75 7} Qe6 {0.00/80 9} 47. Kf8 {0.00/74 8 (Kg7)} Ke4 {
0.00/70 7 (Qf6)} 48. Kg7 {0.00/64 7} Qe5+ {0.00/66 5 (Qd7)} 49. Kg8 {0.00/67 7
(Kh7)} Qg5+ {0.00/67 7 (Qg3+)} 50. Kh7 {0.00/82 7 (Kh8)} Qf6 {0.00/73 5 (Qh4+)}
51. Kg8 {0.00/88 9} Qe6 {0.00/80 5 (Qg6+)} 52. Kh8 {0.00/245 0} 1/2-1/2


Game 3 moved back a half ply and now Black saw a win but White scored it 0.00. At move 47..Qf6 was scoring it #12 but then changed to -148.75/91 and 48..Qe6 0.00/73. The moves were a ponder hit so there appeared no ponder miss influence to clear the hash. Perhaps it was being over written.

[Event "Stockfish 50 mv rule test-2"]
[Site "Newport, South Wales"]
[Date "2019.11.02"]
[Round "1"]
[White "Stockfish 311019 64_N1"]
[Black "Stockfish 311019 64_N2"]
[Result "1/2-1/2"]
[Annotator "0.00;-71.02"]
[SetUp "1"]
[FEN "8/1p6/1p6/kPp2P1K/2P5/N1Pp4/q2P4/1N6 w - - 0 1"]
[PlyCount "103"]
[EventDate "2019.11.02"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "Grayson"]

{Intel(R) Core(TM)2 Quad CPU  Q9550 @ 2.83GHz 2833 MHz W=79.5 plies; 5,514kN/s;
6,981,389 TBAs B=70.6 plies; 6,249kN/s; 16,327,176 TBAs} 1. f6 Qb3 2. f7 Qd1+
3. Kh6 Qf3 4. Kg7 Qg4+ 5. Kh7 Qf5+ 6. Kg7 Qg5+ 7. Kh7 Qf6 8. Kg8 Qg6+ 9. Kf8
Ka4 10. Ke7 Qg5+ 11. Ke8 Qe5+ 12. Kd8 Qf6+ 13. Ke8 Qe6+ 14. Kf8 Kb3 15. Kg7 Qe7
16. Kg8 Qg5+ 17. Kh7 Qf6 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7 Qg7 21. Ke8 Qe5+ 22.
Kd7 Qf6 23. Ke8 Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kg8 Qg5+ 27. Kh7 Qf6 28. Kg8
Qg6+ 29. Kf8 Kd1 30. Ke7 Qg5+ 31. Ke8 Qe5+ 32. Kd7 Qf6 33. Ke8 Qe6+ 34. Kf8 Ke2
35. Kg7 Qe7 36. Kg8 Qg5+ 37. Kh7 Qf6 {-71.02/52 110} 38. Kg8 {0.00/84 76} Qg6+
{-148.73/55 46} 39. Kf8 {0.00/82 55} Kf3 {-148.85/59 51} 40. Ke7 {0.00/81 96}
Qg5+ {-148.87/65 29 (Qg7)} 41. Ke8 {0.00/83 7} Qe5+ {-148.88/57 10} 42. Kd7 {
-7.04/82 98} Qf6 {-148.89/53 6} 43. Ke8 {0.00/80 4 (Kc7)} Qe6+ {-#16/77 7} 44.
Kf8 {0.00/79 24} Kf4 {-#15/82 6 (Qe5)} 45. Kg7 {0.00/82 8} Qe5+ {-#14/82 6} 46.
Kg8 {0.00/74 5} Qg5+ {-#13/88 7} 47. Kh7 {0.00/67 5} Qf6 {-148.85/91 89} 48.
Kg8 {0.00/72 5} Qe6 {0.00/73 30 (Qg6+)} 49. Kg7 {0.00/77 7} Qg4+ {0.00/66 3
(Qd7)} 50. Kf8 {0.00/82 5 (Kf6)} Qd7 {0.00/76 4} 51. Kg8 {0.00/88 5} Qe6 {
0.00/83 6} 52. Kh8 {0.00/245 0} 1/2-1/2


Finally Game 4 that started a further half ply back and now both engines scored it #16 at move 40
[Event "Stockfish 50 mv rule test-3"]
[Site "Newport, South Wales"]
[Date "2019.11.02"]
[Round "1"]
[White "Stockfish 311019 64_N2"]
[Black "Stockfish 311019 64_N1"]
[Result "0-1"]
[Annotator "-148.10;-25.66"]
[SetUp "1"]
[FEN "8/1p6/1p6/kPp2P1K/2P5/N1Pp4/q2P4/1N6 w - - 0 1"]
[PlyCount "110"]
[EventDate "2019.11.02"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "Grayson"]

{Intel(R) Core(TM)2 Quad CPU  Q9550 @ 2.83GHz 2833 MHz W=146.9 plies; 8,322kN/
s; 10,569,278 TBAs B=127.3 plies; 6,701kN/s; 10,620,810 TBAs} 1. f6 Qb3 2. f7
Qd1+ 3. Kh6 Qf3 4. Kg7 Qg4+ 5. Kh7 Qf5+ 6. Kg7 Qg5+ 7. Kh7 Qf6 8. Kg8 Qg6+ 9.
Kf8 Ka4 10. Ke7 Qg5+ 11. Ke8 Qe5+ 12. Kd8 Qf6+ 13. Ke8 Qe6+ 14. Kf8 Kb3 15. Kg7
Qe7 16. Kg8 Qg5+ 17. Kh7 Qf6 18. Kg8 Qg6+ 19. Kf8 Kb2 20. Ke7 Qg7 21. Ke8 Qe5+
22. Kd7 Qf6 23. Ke8 Qe6+ 24. Kf8 Kc1 25. Kg7 Qe5+ 26. Kg8 Qg5+ 27. Kh7 Qf6 28.
Kg8 Qg6+ 29. Kf8 Kd1 30. Ke7 Qg5+ 31. Ke8 Qe5+ 32. Kd7 Qf6 33. Ke8 Qe6+ 34. Kf8
Ke2 35. Kg7 Qe7 36. Kg8 Qg5+ 37. Kf8 {-148.10/52 81} Kf3 {-25.66/43 61} 38. Ke8
{-#18/91 78} Qe5+ {-148.86/47 32} 39. Kd7 {-#17/95 29} Qf6 {-148.90/55 37} 40.
Ke8 {-#16/103 52 (Kc7)} Qe6+ {-#16/90 79} 41. Kf8 {-#15/102 7} Kf4 {-#15/90 11
(Ke4)} 42. Kg7 {-#14/99 8} Qe7 {-#14/89 8 (Qe5+)} 43. Kg8 {-#13/103 7} Qg5+ {
-#13/96 10} 44. Kh7 {-#12/108 9} Qf6 {-#12/97 8} 45. Kg8 {-#11/108 9} Qg6+ {
-#11/101 7} 46. Kf8 {-#10/109 8} Kf5 {-#10/99 11} 47. Ke7 {-#9/121 14} Qe6+ {
-#9/117 6} 48. Kd8 {-#8/142 6} Qxf7 {-#8/130 9} 49. Kc8 {-#7/164 6} Ke5 {
-#7/156 6 (Ke6)} 50. Nc2 {-#6/165 6 (Kb8)} Kd6 {-#6/102 6} 51. Kb8 {-#5/245 1}
Qc7+ {-#5/245 1 (dxc2)} 52. Ka7 {-#4/245 0} dxc2 {-#4/245 0} 53. Na3 {-#3/245 0
} c1=Q {-#3/245 0} 54. Nc2 {-#2/245 0 (Nb1)} Qxc2 {-#2/245 0} 55. d3 {-#1/245 0
} Qa2# {-#1/245 0} 0-1



Peter
Up Topic The Rybka Lounge / Test Positions / Stockfish analysis cast into doubt.

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill