Strange eval from server analyze :
https://fr.lichess.org/uwfoayZs/black#47
I'm going to start by filing a bug in Lichess Feedback, asking how 24. a4 is a blunder and how 24... e4 is not a blunder. Hopefully Lichess may produce information about the reproducibility of your reported issue.
Lichess seem to suggest this evaluation is reproducible. I played around with the position a bit and couldn't find a win for Black, although -8 does not guarantee a win (only #-99 or better guarantee a win).
I also hit the "Go deeper!" button and now Stockfish 8 PNACL announces #-20 but I don't believe it. EDIT I am wrong and Black mates by promoting the e-pawn:
info depth 31 seldepth 54 multipv 1 score mate 22 nodes 104908490 nps 804741 hashfull 999 tbhits 0 time 130363 pv e5e4 a4b5 f2d2 a1a2 d2d1 a2b3 d1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5c6 e2e1q c6b7 e1c3 g2g4 c3c6 c2c4 c8d7 b7c8 d7d6 c8d7 a7a5 d7e6 a5b4 e6e5 d6c7 e5d6 c7b7 d6c7 b7b6 h2h4 b6c5 c7d6 c5b4 d6e5 c6d6 e5e4 d6d4 e4f3 d4g4
...
info depth 36 seldepth 54 multipv 1 score mate 20 nodes 156241712 nps 823186 hashfull 999 tbhits 0 time 189801 pv e5e4 e1f1 f2g2 a1b2 d4e3 b2c3 e4e3 c3d4 e3e2 d4d5 e2e1q d5c6 e1e6 c6b7 c8c7 b7b6 b5a4 b6b7 c7b6 c2c4 b6a6 b7c7 e6c6 c7b7 c6c7 h2h4 h7h5 b7b6 c7c5 b6b7 c5b6 c4c5 a6b5 b7c6 b5a4 c6d7 b6d6 d7c8 d6c7
...
info depth 38 seldepth 54 multipv 1 score mate 19 nodes 196144001 nps 830717 hashfull 999 tbhits 0 time 236114 pv e5e4 a4b5 f2d2 a1a2 d2d1 a2b3 d1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5c6 e2e1q c2c3 e1e6 c6c7 c8b7 c3c4 b7c6 g2g4 c6d6 c4c5 d6e5 c7d6 e6d5 d6e6 e5d4 e6e5 d4c3 e5f6 d5f7 f6e5 f7f5 e5d4 f5c5
I have created a tuning session to consider the file of the passed pawn.
OK. The bad evaluation is 0 for move 24.e4.
Now, I see the local eval gives mate in 21 at depth 35 (6 threads).
If I understand correctly, the point is that black can force the exchange of rooks in a way that the white king is too far away to stop the passed pawn. I think that this suggests to add a term to the passed pawn evaluation that only applies if the defending side (regarding the passed pawn) does not have non-pawn material. Below you can find the output of current master in this position. Apparently, it goes for perpetual check up to depth 25, since black is a pawn down.
setoption name UCI_Variant value atomic
position fen 2k5/p6p/8/1p2p3/PP1p4/4P3/2P2rPP/K3R3 b - - 0 24
go depth 27
info depth 1 seldepth 1 multipv 1 score cp -64 nodes 24 nps 6000 tbhits 0 time 4 pv c8c7
info depth 2 seldepth 2 multipv 1 score cp -59 nodes 94 nps 23500 tbhits 0 time 4 pv c8c7 c2c3
info depth 3 seldepth 3 multipv 1 score cp -24 nodes 216 nps 54000 tbhits 0 time 4 pv e5e4 e3d4 c8c7
info depth 4 seldepth 4 multipv 1 score cp -62 nodes 586 nps 117200 tbhits 0 time 5 pv e5e4 g2g4 c8c7 c2c3
info depth 5 seldepth 5 multipv 1 score cp -18 nodes 1163 nps 193833 tbhits 0 time 6 pv e5e4 g2g4 c8c7 e3d4 f2e2
info depth 6 seldepth 6 multipv 1 score cp -67 nodes 3911 nps 391100 tbhits 0 time 10 pv c8c7 g2g4 c7d6 h2h4 a7a5 c2c3
info depth 7 seldepth 8 multipv 1 score cp -44 nodes 11097 nps 652764 tbhits 0 time 17 pv e5e4 a4b5 c8c7 b4b5 c7d6 e3d4 f2e2
info depth 8 seldepth 8 multipv 1 score cp -54 nodes 13125 nps 690789 tbhits 0 time 19 pv e5e4 a4b5 c8c7 b4b5 c7d6 g2g4 d4d3 c2d3
info depth 9 seldepth 10 multipv 1 score cp -38 nodes 23185 nps 927400 tbhits 0 time 25 pv e5e4 a4b5 c8c7 h2h3 f2f1 b4b5 c7d6 b5b6 a7b6
info depth 10 seldepth 13 multipv 1 score cp 0 nodes 30355 nps 1046724 tbhits 0 time 29 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 11 seldepth 13 multipv 1 score cp 0 nodes 32032 nps 1067733 tbhits 0 time 30 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 12 seldepth 13 multipv 1 score cp 0 nodes 33302 nps 1074258 tbhits 0 time 31 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 13 seldepth 13 multipv 1 score cp 0 nodes 34725 nps 1085156 tbhits 0 time 32 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 14 seldepth 13 multipv 1 score cp 0 nodes 36824 nps 1115878 tbhits 0 time 33 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 15 seldepth 13 multipv 1 score cp 0 nodes 39746 nps 1135600 tbhits 0 time 35 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 16 seldepth 13 multipv 1 score cp 0 nodes 43848 nps 1185081 tbhits 0 time 37 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 17 seldepth 13 multipv 1 score cp 0 nodes 49300 nps 1232500 tbhits 0 time 40 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 18 seldepth 13 multipv 1 score cp 0 nodes 56878 nps 1322744 tbhits 0 time 43 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 19 seldepth 13 multipv 1 score cp 0 nodes 67176 nps 1370938 tbhits 0 time 49 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 20 seldepth 13 multipv 1 score cp 0 nodes 80818 nps 1469418 tbhits 0 time 55 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 21 seldepth 13 multipv 1 score cp 0 nodes 157208 nps 1672425 tbhits 0 time 94 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 22 seldepth 13 multipv 1 score cp 0 nodes 210227 nps 1766613 tbhits 0 time 119 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 23 seldepth 13 multipv 1 score cp 0 nodes 264515 nps 1824241 tbhits 0 time 145 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 24 seldepth 13 multipv 1 score cp 0 nodes 313727 nps 1867422 tbhits 0 time 168 pv d4d3 c2d3 f2a2 a1b1 a2a1 b1b2 a1b1 b2a2 b1a1 a2b2
info depth 25 seldepth 42 multipv 1 score cp 88 nodes 5110681 nps 2080049 hashfull 930 tbhits 0 time 2457 pv e5e4 h2h4 f2f1 a1b1 d4e3 c2c4 e4e3 b1c2 f1g1 c4c5 e3e2 e1e2 g1c1 c2d2 c1c2 d2e3 c2e2 e3d3 e2e3 d3d2 c8b7 g2g4 e3d3 d2e2 d3d2 e2e3 d2e2 e3d3 a7a5 g4g5 e2d2 d3e4 d2d4 e4e5 d4d5 e5e4 d5e5 e4d3
info depth 26 seldepth 50 multipv 1 score cp 73 upperbound nodes 7411090 nps 2119877 hashfull 985 tbhits 0 time 3496 pv e5e4 h2h4
info depth 26 seldepth 52 multipv 1 score cp 81 lowerbound nodes 8544667 nps 2136166 hashfull 994 tbhits 0 time 4000 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 96 lowerbound nodes 8871232 nps 2131995 hashfull 995 tbhits 0 time 4161 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 117 lowerbound nodes 9001596 nps 2130051 hashfull 996 tbhits 0 time 4226 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 145 lowerbound nodes 9178667 nps 2128633 hashfull 996 tbhits 0 time 4312 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 182 lowerbound nodes 10131569 nps 2137912 hashfull 997 tbhits 0 time 4739 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 231 lowerbound nodes 10758359 nps 2138413 hashfull 998 tbhits 0 time 5031 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 293 lowerbound nodes 11091207 nps 2137034 hashfull 999 tbhits 0 time 5190 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 373 lowerbound nodes 11417953 nps 2138994 hashfull 999 tbhits 0 time 5338 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 475 lowerbound nodes 12146268 nps 2145225 hashfull 999 tbhits 0 time 5662 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 604 lowerbound nodes 12491373 nps 2148129 hashfull 999 tbhits 0 time 5815 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 767 lowerbound nodes 14701958 nps 2175489 hashfull 999 tbhits 0 time 6758 pv e5e4
info depth 26 seldepth 52 multipv 1 score cp 772 nodes 18155961 nps 2204463 hashfull 999 tbhits 0 time 8236 pv e5e4 a4b5 f2d2 a1a2 d2d1 b4b5 d1a1 a2b3 a1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5c6 e2e1q c6c7 a7a5 b5a6 e1e5 c2c4 c8d7 c7d6 e5c5 g2g4 c5e5 g4g5 d7e6 g5g6 h7g6
info depth 27 seldepth 52 multipv 1 score cp 779 lowerbound nodes 19408061 nps 2208473 hashfull 999 tbhits 0 time 8788 pv e5e4
info depth 27 seldepth 52 multipv 1 score cp 786 lowerbound nodes 20749275 nps 2188742 hashfull 999 tbhits 0 time 9480 pv e5e4
info depth 27 seldepth 52 multipv 1 score cp 797 lowerbound nodes 23345268 nps 2191015 hashfull 999 tbhits 0 time 10655 pv e5e4
info depth 27 seldepth 52 multipv 1 score cp 812 lowerbound nodes 25906247 nps 2169884 hashfull 999 tbhits 0 time 11939 pv e5e4
info depth 27 seldepth 52 multipv 1 score cp 810 nodes 27858694 nps 2172387 hashfull 999 tbhits 0 time 12824 pv e5e4 a4b5 f2d2 a1a2 d2d1 a2b3 d1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5c6 e2e1q c6b7 e1e6 g2g4 c8d7 b7c6 a7a5 b4a5 d7e7 c6d6 e7f7 d6e7 f7f6 g4g5 f6g6 e7f6 g6h5 f6g6 e6e5 h2h3 e5f6
bestmove e5e4 ponder a4b5
Interesting suggestion @ianfab , perhaps pawns.cpp should be carefully reviewed in terms of what passed pawns can be blocked (or captured on the promotion square) by a king. For example 26. Ka2 Rd1 27. Kb3 Rb1+ 28. Rxb1 dxe3 and White's king is "in the square" of Black e4-pawn but still one move too slow!
I think a second aspect of this issue is the penalty for passed pawns on center files, hence the tuning session.
Yes, we should review the evaluation of (potential) passed pawns, since proper evaluation of passed pawns is key in atomic chess endgames. Another interesting idea might be to evaluate whether it is possible to create a passed pawn (ignoring non-pawn pieces). This should be much easier in atomic chess compared to standard chess, but we might still run into problems due to combinatorics. However, it could potentially help a lot, since piece count is essential if the side that is down material can not create a passed pawn.
ianfab commented 21 hours ago
If I understand correctly, the point is that black can force the exchange of rooks in a way that the white king is too far away to stop the passed pawn. I think that this suggests to add a term to the passed pawn evaluation that only applies if the defending side (regarding the passed pawn) does not have non-pawn material
IIRC, SF has a "unstoppable passed pawn" concept. And these "unstoppable passed pawns" are killing in atomic.
Simple "passed pawns" are very strong too in atomic.
The so-called unstoppable bonus has been simplified away, but the only condition was that the defending side does not have non-pawn material. Anyway, reintroducing it for atomic chess makes sense, since this is a sufficient condition in atomic chess.
[An unstoppable passed pawn] is a sufficient condition in atomic chess.
I think even more generally, one player having more passed pawns (or potential passed pawns) than the other player has pieces constitutes a large endgame advantage.
Right, it can easily be generalized in that way.
Excuse my ignorance, but why would "king in the square" matter for atomic? The king can't capture in atomic, and if the side with a passed pawn has just a knight or a rook, it can drive the blockading king off with checks, IOW, sole king blockades seem to be useless, unless the other side also is down to king and pawns.
@sf-x E.g., in a position like this, it is clear that black has to stop the pawn to win.
There's some zugzwang issue for some positions :
Here, black loses because they has to move :
https://fr.lichess.org/analysis/atomic/8/k7/P7/8/8/6p1/2p3N1/2K5_b_-_-_1_4
But same position, white to play, they loses :
https://fr.lichess.org/analysis/atomic/8/k7/P7/8/8/6p1/2p3N1/2K5_w_-_-_1_4
Yes, there is a mutual zugzwang, but I do not see why this is an issue, since the search will resolve this. My statement maybe was inaccurate, but the point is that stopping a passed pawn with the king can be important even if the opponent has non-pawn material.
Upstream PR#1092 may add a passed pawn bonus in positions where a pawn is sacrificed to create a passed pawn.
Even after upstream changes, the test position still takes many nodes to solve:
setoption name UCI_Variant value atomic
position fen 2k5/p6p/8/1p2p3/PP1p4/4P3/2P2rPP/K3R3 b - - 0 24
go depth 27
After merging more upstream changes, the test position still takes many nodes to solve:
setoption name UCI_Variant value atomic
position fen 2k5/p6p/8/1p2p3/PP1p4/4P3/2P2rPP/K3R3 b - - 0 24
go depth 30
info depth 30 seldepth 52 multipv 1 score cp 1137 nodes 89402989 nps 891916 hashfull 999 tbhits 0 time 100237 pv e5e4 a4b5 f2d2 a1a2 d2d1 a2b3 d1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5d6 e2e1q d6c7 e1e5 h2h4 c8d7 h4h5 d7e6 c7d6 e6f5 d6e6 f5e4 e6d5 e4d4 d5c4 d4c3 c4d3 e5d4 d3d2 d4d3 d2c1 d3c4 c1d2 c4e2 d2c1 e2e1 c1b2
bestmove e5e4 ponder a4b5
Merging upstream 77342126d8417469bd6a398cfc6c0594b1f02f82 helps immensely:
setoption name UCI_Variant value atomic
position fen 2k5/p6p/8/1p2p3/PP1p4/4P3/2P2rPP/K3R3 b - - 0 24
go depth 23
info depth 23 seldepth 18 multipv 1 score cp 89 lowerbound nodes 2846716 nps 935496 hashfull 730 tbhits 0 time 3043 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 67 upperbound nodes 3419862 nps 943150 hashfull 799 tbhits 0 time 3626 pv e5e4 a4a5
info depth 23 seldepth 33 multipv 1 score cp 97 lowerbound nodes 3558334 nps 941109 hashfull 811 tbhits 0 time 3781 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 159 lowerbound nodes 4225936 nps 929798 hashfull 879 tbhits 0 time 4545 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 239 lowerbound nodes 4705058 nps 926010 hashfull 903 tbhits 0 time 5081 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 341 lowerbound nodes 5022749 nps 927733 hashfull 912 tbhits 0 time 5414 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 470 lowerbound nodes 5635901 nps 933714 hashfull 943 tbhits 0 time 6036 pv e5e4
info depth 23 seldepth 33 multipv 1 score cp 633 lowerbound nodes 6320670 nps 942118 hashfull 963 tbhits 0 time 6709 pv e5e4
info depth 23 seldepth 35 multipv 1 score cp 755 nodes 8386976 nps 945544 hashfull 983 tbhits 0 time 8870 pv e5e4 a4b5 f2d2 a1a2 d2d1 b4b5 d1a1 a2b3 a1b1 e1b1 d4e3 b3c4 e4e3 c4c5 e3e2 c5d6 e2e1q d6d7 e1c3 d7c7 a7a5 b5a6 c3c6 c2c4 c8d7 c7d8 d7e6
bestmove e5e4 ponder a4b5