Closed GeorgeMJ23 closed 4 years ago
Situation seems to be very bad as for example SF recommends black to play 110...b2?? in the following position and lose. Instead of example 110...Kg5 or whatever other King move that will not reset 50 move rule and not give a Pawn for free :) 8/5p2/4b2k/8/8/1p5p/5Qp1/6K1 b - - 89 110
Halfmove ply counter is 89 so black needs 6 more ply to hold for a draw. And he can obviously easily do it. Yet SF says black should play b3 that will immediately lose.
Analysis by Stockfish 181119 64 POPCNT:
110...b3-b2 111.Qf2xb2 Kh6-g6 112.Qb2-c2+ Kg6-g7 113.Qc2-c3+ Kg7-g8
114.Qc3-b4 Be6-d7 115.Qb4-b8+ Kg8-g7 116.Qb8-g3+ Kg7-f6 117.Qg3-f2+
Kf6-e7 118.Kg1-h2 Bd7-e6 119.Qf2-h4+ Ke7-d6 120.Qh4-d4+ Kd6-c6 121.Qd4-c3+
Kc6-b5 122.Qc3-a3 Kb5-c6 123.Qa3-f3+ Kc6-d7 124.Qf3-d1+ Kd7-e7 125.Kh2-g3 Be6-d7
126.Qd1-c1 Ke7-d6 127.Kg3-f4 Kd6-d5 128.Qc1-d2+ Kd5-c4 129.Qd2-e3 Kc4-d5
130.Kf4-g3 Kd5-d6 131.Qe3-d4+ Kd6-c6 132.Qd4-c4+ Kc6-b6 133.Kg3-h2 Bd7-e6
134.Qc4-c1 Kb6-b5 135.Qc1-g5+ Kb5-c6 136.Qg5-h6 Kc6-d7 137.Qh6-d2+ Kd7-c6
138.Qd2-e1 Kc6-d7 139.Qe1-g1 Kd7-c6 140.Kh2-g3 Kc6-d5 141.Qg1-c1 Kd5-d6
142.Qc1-a1 Kd6-d5 143.Kg3-f4 Kd5-c4 144.Qa1-c1+ Kc4-b3 145.Qc1-d1+ Kb3-a3
146.Kf4-g3
(+147.92) Depth: 54/72 00:00:04 424MN, tb=70480952
If you follow SF's recommendations with TB wins(+147.92 etc) then 6 plies before 50 move draw it changed to 0.00 evals seeing the draw. And then if you go back even at root at the first move after the last Pawn move, it very quickly sees the draw.
@vondele :)
I tried SF 10 and it also has this bug. I tried SF 9 and again this is also there(with +132.60 reported TB wins).
Hmm situation seems more clear after analyzing a bit more. SF dev, 10 9 etc were correct that position was winning! It seems white can force a zugzwang and win. Yet, the issue is that SF dev did not manage to find the correct moves to lead black in a zugzwang position. So it drew the game.
So this is no TB bug. Not also a wrong SF eval. It just SF did not manage to convert a TB win(that it recognized and calculated it was a TB win) into a win. :)
Which is still a huge issue - not being able to win a VALUE_KNOWN_WIN is not smth that should ever happen.
@GeorgeMJ23 Which tablebases do you have installed ? 3, 4 and 5 men ? or 6 men also ? And what do they have on CCC ? Thanks.
CCC has partial 7-man. Full 3,4,5,6-man.
GHI issue - all chess programs suffer from it and its been around a very long time - from the beginning. Hash tables do not contain game state, specifically the 50 move counter or 3 fold repetition status.
FWIW, the error was move 102. Qe7 ... 102. Qg5 wins edit: one error was 102. Qe7, there could been other errors made before and/or after... a full 7 man syzygy egtb was used for this analysis. 8/5p1k/4bQ2/8/8/1p5p/6pK/8 w - - 72 102
dep score nodes time (not shown: tbhits knps seldep)
30 +100.00 253.7M 0:08.44 Qg5 b2 Qb5 Kg6 Qxb2 Bf5 Qb6+ Be6 Qf2 Bf5 Qg3+ Kf6 Kg1 Be6 Qh4+ Kg6 Kf2 Kg7 Qg5+ Kh7 Qe3 Kg6 Kf3 Kg7 Qg5+ Kh7 Kf2 Bd7 Kg1 Be6 Qg3 Kh6 Qg8 Kh5 Qg7 Kh4 Kh2 Kh5 Qf6 Kg4 Qe5 Kf3 Qd4 Ke2 Kg1 Kf3 Qd3+ Kf4 Qd2+ Kg4
29 +100.00 235.8M 0:07.80 Qg5 b2 Qb5 Kg6 Qxb2 Bf5 Qb6+ Be6 Qb1+ Bf5 Qb2 Be6 Qb6 Kg5 Qe3+ Kf6 Kg3 Kg7 Kf4 f6 Qb6 Kf7 Kg3 Bc8 Qa7+ Kf8 Qe3 Kf7 Kf2 Bg4 Qd4 Bf5 Qd5+ Be6 Qd3 Bg4 Qc4+ Be6 Qc2 Bg4 Kg1 Kg7 Qc5 Kf7 Qd5+ Kg7 Qd4 Bf5 Qc4 Kg6 Qh4 Kg7 Qg3+ Kf7 Qb
28 +100.00! 217.7M 0:07.17 Qg5!
27 +100.00! 201.9M 0:06.63 Qg5!
26 +100.00? 193.3M 0:06.33 Qg5 Kh8?
25 +100.00! 156.1M 0:05.11 Qg5!
24 +100.00? 122.6M 0:03.96 Qg5 Kh8?
23 +100.00 120.1M 0:03.87 Qg5 Kh8 Kg1 Kh7 Qf6 Kg8 Qh6 Bd7 Qg5+ Kh7 Qh4+ Kg6 Qg3+ Kf6 Qxb3 Be6 Qd1 Ke7 Qd4 Kf8 Kh2 Ke8 Kg3 Bd7 Qc5 Be6 Kf2 Bd7 Kf3 Be6 Qd4 Bd7 Ke4 Ke7 Kf4 Ke8 Kg5 Ke7 Qc5+ Kd8 Kf4 f6 Kg3 Ke8 Kf2 Kf7 Qc4+ Be6 Qe4 Ke7 Kg1 Kd6 Qd4+ Ke7 Qb4
22 +100.00 46.0M 0:01.47 Qg5 Bd7 Qh4+ Kg6 Qg3+ Kf6 Qxb3 Be6 Qe3 Bf5 Qh6+ Ke5 Qh8+ Kd5 Qa8+ Kd6 Qd8+ Ke6 Kg1 Ke5 Qa5+ Ke6 Qb6+ Ke7 Qc5+ Kf6 Kf2 Be6 Kf3 Kg6 Qe3 Kf6 Qd4+ Ke7 Qc5+ Ke8
21 +100.00 21.0M 0:00.67 Kg1 Kg8 Qh6 Bd7 Qg5+ Kh7 Qh4+ Kg6 Qg3+ Kf6 Qxb3 Be6 Qa3 Kg7 Kh2 Kg6 Qg3+ Kf6 Qe3 Kg6 Kg3 Kh7 Qe4+ Kg7 Qe5+ Kg8 Qg5+ Kf8 Kf2 Ke8 Qc5 Kd7 Kg3 Ke8 Qd4 Bd7 Qa7 Be6 Kh2 Bd7 Qa8+ Ke7 Qa3+ Ke8
20 +95.35 15.3M 0:00.48 Kg1 Kg8 Qh6 Bd7 Qg5+ Kh7 Qh4+ Kg6 Qg3+ Kf6 Qxb3 Be6 Qa3 Kg6 Qa1 Bf5 Qh8 Be6 Qd4 Bc8 Kh2 Be6 Qh4 Kg7 Qf2 Bf5 Qxf5
19 +82.21 13.9M 0:00.44 Qg5 Kh8 Qh6+ Kg8 Kg1 Bd7 Qg5+ Kh7 Qh4+ Kg6 Qg3+ Kf6 Qc3+ Ke7 Qb4+ Kf6 Qxb3 Be6 Qb2+ Kg6 Kh2 Bf5 Qa3 Be6
18 +97.54 3.77M 0:00.12 Qg5 Kh8 Qh6+ Kg8 Kg1 b2 Qg5+ Kh7 Qb5 b1=R+ Qxb1+ Kg7 Qa1+ Kf8 Qa3+ Kg8 Qc3 Kf8 Qb4+ Kg7 Kh2 Kf6 Qb2+ Ke7 Qd4 Ke8 Qd6 f6 Qxe6+ Kd8
17 +91.98 1.82M 0:00.06 Kg1 Kg8 Qh6 b2 Qg5+ Kh7 Qb5 b1=Q+ Qxb1+ Kg7 Qa1+ Kf8 Kf2 Ke7 Qa3+ Kf6 Qb2+ Ke7 Kg1 Kf8 Qb5 Kg8 Qb8+ Kg7 Qd8 Kg6 Qg8+ Kf6 Qh7
16 +91.63 1.16M 0:00.04 Kg1 Kg8 Qh6 b2 Qg5+ Kh7 Qh4+ Kg8 Qb4 Kg7 Qc3+ Kf8 Qxb2 Ke7 Qb4+ Kf6 Qd6 Kg6 Qg3+ Kf6 Qd3 Ke5 Qd8 h2+ Kxg2
15 +95.63 708680 0:00.02 Kg1 Kg8 Qh6 b2 Qg5+ Kh7 Qb5 Kg8 Qb8+ Kh7 Qxb2 Kg6 Kh2 Bf5 Qa3 Be6 Qc3 Kh6 Qg3 Kh7 Qg5 Kh8 Qe5+ Kh7 Qe4+ f5 Qxe6
14 +79.67 241168 0:00.01 Kg1 Kg8 Qh6 b2 Qg5+ Kh7 Qh5+ Kg7 Qe5+ Kg6 Qxb2 Bf5 Qh8 Be6 Qg8+ Kf6 Kh2 g1=Q+ Qxg1
13 +65.11 185792 0:00.01 Kg1 Kg8 Qh6 Bd7 Qg5+ Kh7 Qh4+ Kg6 Qg3+ Kf6 Qxb3 Be6 Qg3 Ke7 Qa3+ Kf6
12 +50.00 89531 0:00.00 Qa1 Kg8 Qa8+ Kh7
11 +50.00 49938 0:00.00 Qa1 Kg8 Qa8+ Kh7
10 +50.00 33102 0:00.00 Qa1 Kg8 Qa8+ Kh7
9 +50.00 27411 0:00.00 Qa1 Kg8 Qa8+ Kh7
8 +50.00 23293 0:00.00 Qa1 Kg8 Qa8+ Kh7
7 +50.00 19897 0:00.00 Qa1 Kg8 Qa8+ Kh7
6 +50.00 15965 0:00.00 Qa1 Kg8 Qa8+ Kh7
5 +50.00 11968 0:00.00 Qa1 Kg8 Qa8+ Kh7
4 +50.00 7788 0:00.00 Qa1 Kg8 Qa8+ Kh7
3 +50.00 4130 0:00.00 Qa1 Kg8 Qa8+ Kh7
2 +50.00 496 0:00.00 Qa1 Kg8
1 +50.00 62 0:00.00 Qa1
8/4Qp1k/4b3/8/8/1p5p/6pK/8 b - - 73 102 note -> this SF fork uses Lc0 like scoring % and not centipawn , 100% is a win, 50% is a draw score and 0% is a lost.
dep score nodes time (not shown: tbhits knps seldep)
23 +50.00! 197.7M 0:08.49 Kg8!
23 +49.18? 195.5M 0:08.40 Kg8 Qg5+?
22 +50.00 165.9M 0:07.14 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
21 +50.00! 160.1M 0:06.90 Kg8!
21 +49.18? 157.5M 0:06.79 Kg8 Qg5+?
20 +50.00 144.8M 0:06.22 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
19 +50.00 87.8M 0:03.77 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qh4 Kf8
18 +50.00 35.5M 0:01.52 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
17 +50.00 13.4M 0:00.57 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
16 +50.00 5.43M 0:00.23 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
15 +50.00 2.52M 0:00.11 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
14 +50.00 1.51M 0:00.07 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
13 +50.00 1.18M 0:00.05 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qg5+
12 +50.00 517092 0:00.02 Kg8 Qg5+ Kf8 Qd8+ Kg7 Qa8 Kg6 Qh8 Kg5
11 +50.00 248437 0:00.01 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1 Kf4 Qd4+ Kg5
10 +50.00 123024 0:00.01 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1 Kf4 Qd4+ Kg5
9 +50.00 74336 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1 Kf6 Qa1+ Ke7
8 +50.00 49226 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1 Kf6
7 +50.00 30006 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1
6 +50.00 21467 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5 Qd1
5 +50.00 14117 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6 Qb1+ Kg5
4 +50.00 9274 0:00.00 Kg8 Qg5+ Kh7 Qc1 Kg6
3 +50.00 4518 0:00.00 Kg8 Qg5+ Kf8 Qd8+ Kg7
2 +50.00 1917 0:00.00 Kg8 Qg5+ Kf8
1 +50.00 294 0:00.00 Kg8
Edit: Just fyi , often in complex cases like this one, the only way to to obtain the correct evaluation is to load the entire game and then with analysis on, and starting from the last position , retreat from the end of the of the game backward to earlier positions. You may have to do some back and forth. Trying to do the analysis from an fen is almost useless here since the game state depends on earlier moves and without the game state correctly provided to the engine, you may not get the correct analysis.
@GeorgeMJ23 Which tablebases do you have installed ? 3, 4 and 5 men ? or 6 men also ? And what do they have on CCC ?
As i've said above, neither CCCC or me had KQ-KBPPP syzygy endgame tablebases. I had full 3-6 TBs and some(258 out of 1001 sets of 7 men TBs) 7 men TBs.
Do you still see the issue in current dev version after the commit bae019b53e5c2bfcf0d69b4ebfc52b4f4de762eb called "50-moves rule improvement for transposition table" ?
possibly related to https://github.com/official-stockfish/Stockfish/issues/2533 ?
the recent commit restored the behavior wrt. to TB wins. So I'll assume this is the fixed. This is hard to prove however.
In this game(CCCC game) of: SF 191119 64 BMI2 90 threads versus Fat Fritz 3x2080 Ti:
Stockfish has a really really bad eval with TB win(+147.92 etc) in a drawish position!! I can replicate it with SF 181119 x64 popcount as in example in this position: 5k2/5p2/4b3/6Q1/8/1p5p/5Kp1/8 w - - 0 89
I get:
This must be a search bug. Neither CCCC or me have KQ-KBPPP syzygy endgame tablebases. Maybe it's related to that maybe not.