I meant "go mate 2". And Stockfish still does not find the mate in 2 but only in 5.
Godfrey Heathcote's (1902) 2-move mate - engine tester
Moderator: Ras
-
- Posts: 57
- Joined: Fri Jul 23, 2021 5:24 pm
- Location: Elin Pelin
- Full name: Guido Flohr
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
-
- Posts: 441
- Joined: Thu Apr 26, 2012 1:51 am
- Location: Oak Park, IL, USA
- Full name: Erik Madsen
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
I'm not sure what you mean. Stockfish 14 finds it on my PC.
Code: Select all
❯ .\stockfish_14_x64_avx2.exe
Stockfish 14 by the Stockfish developers (see AUTHORS file)
uci
id name Stockfish 14
position fen b4b2/3r4/3pr3/8/1K5N/2PR4/Q3p3/5kBR w - - 0 1
go mate 2
info string NNUE evaluation using nn-3475407dc199.nnue enabled
info depth 1 seldepth 1 multipv 1 score cp 938 nodes 188 nps 188000 tbhits 0 time 1 pv a2e6 a8h1
info depth 2 seldepth 2 multipv 1 score cp 1339 nodes 626 nps 313000 tbhits 0 time 2 pv a2a8 e2e1n a8f8 f1e2
info depth 3 seldepth 3 multipv 1 score cp 1339 nodes 709 nps 354500 tbhits 0 time 2 pv a2a8 e2e1n a8f8 f1e2
info depth 4 seldepth 4 multipv 1 score cp 1339 nodes 784 nps 392000 tbhits 0 time 2 pv a2a8 e2e1n a8f8 f1e2
info depth 5 seldepth 5 multipv 1 score cp 1126 nodes 1802 nps 901000 tbhits 0 time 2 pv a2a8 e2e1n b4b3 f1e2 h4f5
info depth 6 seldepth 6 multipv 1 score cp 1160 nodes 2232 nps 744000 tbhits 0 time 3 pv a2a8 e2e1n b4b3 e1d3 a8g2 f1e1
info depth 7 seldepth 7 multipv 1 score cp 1202 nodes 2550 nps 850000 tbhits 0 time 3 pv a2a8 e2e1n b4b3 f8h6 h4f5
info depth 8 seldepth 9 multipv 1 score cp 1362 nodes 4731 nps 1182750 tbhits 0 time 4 pv a2a8 e2e1n d3h3 f1e2 a8a2 e1c2 a2c2 e2f1
info depth 9 seldepth 9 multipv 1 score cp 2147 nodes 9000 nps 1500000 tbhits 0 time 6 pv a2a8
info depth 10 seldepth 8 multipv 1 score cp 7572 nodes 9976 nps 1662666 tbhits 0 time 6 pv a2a8 e2e1n g1b6 f1e2 h1h2 e2f1
info depth 11 seldepth 12 multipv 1 score mate 5 nodes 11864 nps 1483000 tbhits 0 time 8 pv a2a8 e2e1n g1b6 f1e2 h1h2 e1g2 a8f3 e2e1 h4g2
info depth 12 seldepth 10 multipv 1 score mate 5 nodes 14634 nps 1626000 tbhits 0 time 9 pv a2a8 e2e1n g1b6 f1e2 h1h2 e1g2 a8f3 e2e1 h4g2
info depth 13 seldepth 10 multipv 1 score mate 4 nodes 18500 nps 1541666 tbhits 0 time 12 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 14 seldepth 8 multipv 1 score mate 4 nodes 24154 nps 1610266 tbhits 0 time 15 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 15 seldepth 8 multipv 1 score mate 4 nodes 31317 nps 1565850 tbhits 0 time 20 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 16 seldepth 8 multipv 1 score mate 4 nodes 38804 nps 1616833 tbhits 0 time 24 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 17 seldepth 8 multipv 1 score mate 4 nodes 46405 nps 1657321 tbhits 0 time 28 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 18 seldepth 8 multipv 1 score mate 4 nodes 54245 nps 1749838 tbhits 0 time 31 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 19 seldepth 8 multipv 1 score mate 4 nodes 62826 nps 1795028 tbhits 0 time 35 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 20 seldepth 8 multipv 1 score mate 4 nodes 71128 nps 1823794 tbhits 0 time 39 pv d3d5 a8d5 a2d5 e2e1n g1e3 f1e2 d5d2
info depth 21 seldepth 8 multipv 1 score mate 2 nodes 83468 nps 1897000 tbhits 0 time 44 pv a2a6 a8h1 d3d1
bestmove a2a6 ponder a8h1
Code: Select all
❯ .\stockfish_21100311_x64_avx2.exe
Stockfish 031021 by the Stockfish developers (see AUTHORS file)
uci
id name Stockfish 031021
id author the Stockfish developers (see AUTHORS file)
position fen b4b2/3r4/3pr3/8/1K5N/2PR4/Q3p3/5kBR w - - 0 1
go mate 2
info string NNUE evaluation using nn-13406b1dcbe0.nnue enabled
info depth 1 seldepth 3 multipv 1 score cp 1325 nodes 189 nps 94500 tbhits 0 time 2 pv a2a8 e2e1b a8f8 f1e2
info depth 2 seldepth 3 multipv 1 score cp 1215 nodes 570 nps 285000 tbhits 0 time 2 pv h4f3 a8f3 d3f3 f1g2 a2e6 g2f3 e6d7
info depth 3 seldepth 6 multipv 1 score cp 992 nodes 1534 nps 511333 tbhits 0 time 3 pv a2a8 e2e1n h4f3 d7f7 f3e1 e6e1
info depth 4 seldepth 4 multipv 1 score cp 1092 nodes 1607 nps 535666 tbhits 0 time 3 pv a2a8 e2e1n h4f3 d7f7
info depth 5 seldepth 5 multipv 1 score cp 1046 nodes 3193 nps 798250 tbhits 0 time 4 pv h4f3 a8e4 a2e6 e4d3 e6d7 e2e1q
info depth 6 seldepth 6 multipv 1 score cp 1157 nodes 4383 nps 876600 tbhits 0 time 5 pv h4f3 a8e4 a2e6 e4d3
info depth 7 seldepth 8 multipv 1 score cp 1356 nodes 5779 nps 963166 tbhits 0 time 6 pv a2a8 e2e1n a8f8 f1e2 d3d5
info depth 8 seldepth 8 multipv 1 score cp 1364 nodes 8149 nps 1164142 tbhits 0 time 7 pv a2a8 e2e1n d3d5 d7e7 d5f5 f1e2 f5f8 e1c2 b4b3
info depth 9 seldepth 12 multipv 1 score cp 1392 nodes 13587 nps 1358700 tbhits 0 time 10 pv a2a8 e2e1n d3d5 e1c2 b4b3 e6f6 a8a6 f1e1 b3c2
info depth 10 seldepth 12 multipv 1 score cp 1423 nodes 15761 nps 1432818 tbhits 0 time 11 pv a2a8 e2e1n d3d5 e1c2 b4b3
info depth 11 seldepth 12 multipv 1 score cp 1462 nodes 20911 nps 1493642 tbhits 0 time 14 pv a2a8 e2e1n d3d5 e1c2 b4b3
info depth 12 seldepth 12 multipv 1 score cp 1569 nodes 26270 nps 1641875 tbhits 0 time 16 pv a2a8 e2e1n d3d5 e6e4 g1d4 f1e2 a8a2 e2d1 a2b1 d1d2 b1e4
info depth 13 seldepth 17 multipv 1 score cp 1751 nodes 48543 nps 1867038 tbhits 0 time 26 pv a2a8 e2e1n d3d5 e6e4 g1d4 f1e2
info depth 14 seldepth 18 multipv 1 score cp 1925 nodes 86751 nps 2065500 tbhits 0 time 42 pv a2a8 e2e1n d3d5 e6e4 g1d4 f1e2 a8a2 e2d1
info depth 15 seldepth 18 multipv 1 score cp 2082 nodes 133255 nps 2258559 tbhits 0 time 59 pv a2a8 e2e1n d3d5 e1d3 d5d3 d7b7 a8b7 d6d5 b4b3
info depth 16 seldepth 18 multipv 1 score cp 6583 nodes 190033 nps 2346086 tbhits 0 time 81 pv a2a8 e2e1n d3d5 e1c2 b4b3
info depth 17 seldepth 10 multipv 1 score cp 7512 nodes 213128 nps 2342065 tbhits 0 time 91 pv a2a8 e2e1n d3d5 e1d3 d5d3 d7b7 a8b7 d6d5 b4b3
info depth 18 seldepth 18 multipv 1 score mate 5 nodes 237574 nps 2329156 tbhits 0 time 102 pv a2a8 e2e1n g1e3 f1e2 a8a2 e2d3 a2d2 d3e4 d2d4
info depth 19 seldepth 10 multipv 1 score mate 4 nodes 257448 nps 2200410 tbhits 0 time 117 pv d3h3 a8h1 h3h1 d7g7 g1b6 g7g1 h1g1
info depth 20 seldepth 8 multipv 1 score mate 4 nodes 266864 nps 2152129 tbhits 0 time 124 pv d3h3 a8h1 h3h1 d7g7 g1b6 g7g1 h1g1
info depth 21 seldepth 8 multipv 1 score mate 3 nodes 275932 nps 2139007 tbhits 0 time 129 pv a2c4 f1e1 c4f4 a8h1 f4f2
info depth 22 seldepth 6 multipv 1 score mate 3 nodes 277163 nps 2132023 tbhits 0 time 130 pv a2c4 f1e1 c4f4 a8h1 f4f2
info depth 23 seldepth 6 multipv 1 score mate 2 nodes 278502 nps 2125969 tbhits 0 time 131 pv a2a6 a8h1 d3d1
bestmove a2a6 ponder a8h1
Erik Madsen | My C# chess engine: https://www.madchess.net
-
- Posts: 57
- Joined: Fri Jul 23, 2021 5:24 pm
- Location: Elin Pelin
- Full name: Guido Flohr
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
I am using stockfish 250721. I will update and try again. Maybe it was a temporary bug.
-
- Posts: 313
- Joined: Tue Aug 03, 2021 2:41 pm
- Full name: Bill Beame
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
That's not the only highly ranked engine that fails to find it. Here's the problem: PURNING. The best ELO engine prune, however, that can maximize ELO's, but, fails on minimum mate solutions. If your objective is a perfect minimum solution YOU CAN"T PRUNE! You may solve 98% with a good evaluation, but, there will always be some that fail. Once you have a error free engine, then you can try to optimize it and prune all you want.
I think Stockfish can be beat with a personal computer using a "perfect engine" at 20 ply. You have to optimize by opening and defense; otherwise, you need to get to speeds that aren't available yet on personal computers. I think I can do that in 4 years.
-
- Posts: 1062
- Joined: Tue Apr 28, 2020 10:03 pm
- Full name: Daniel Infuehr
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
Yeah in my opinin engines shouldnt prune up to a certain depth (maybe 5?). There are not so many nodes and if its an insane position you maybe start pruning before 5.Chessnut1071 wrote: ↑Mon Oct 04, 2021 6:59 amThat's not the only highly ranked engine that fails to find it. Here's the problem: PURNING. The best ELO engine prune, however, that can maximize ELO's, but, fails on minimum mate solutions. If your objective is a perfect minimum solution YOU CAN"T PRUNE! You may solve 98% with a good evaluation, but, there will always be some that fail. Once you have a error free engine, then you can try to optimize it and prune all you want.
I think Stockfish can be beat with a personal computer using a "perfect engine" at 20 ply. You have to optimize by opening and defense; otherwise, you need to get to speeds that aren't available yet on personal computers. I think I can do that in 4 years.
I have had SF not see mating ideas and tell me that +80 go there and miss Checkmate in 5. After 10 minutes. On 16 Cores. 50Meganodes/s.
When you make the move SF tells me: Ah yes of course its mate in #4.
This is a 2021 engine. If it misses the obvious mating ideas what sacrifices does it miss?
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
Daniel Inführ - Software Developer
-
- Posts: 441
- Joined: Thu Apr 26, 2012 1:51 am
- Location: Oak Park, IL, USA
- Full name: Erik Madsen
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
What strong engine can't find this mate-in-2? Stockfish, Komodo, Ethereal, hell my modest engine finds it. It's easy. I find it hard to believe a strong engine cannot find this mate.Chessnut1071 wrote: ↑Mon Oct 04, 2021 6:59 am That's not the only highly ranked engine that fails to find it. Here's the problem: PURNING. The best ELO engine prune, however, that can maximize ELO's, but, fails on minimum mate solutions. If your objective is a perfect minimum solution YOU CAN"T PRUNE!
I agree with you that exhaustive search is the optimal technique for short mate-in-x problems. But it's not optimal for longer mate-in-x problems.
If the mate distance is large and the problem is time-bound, I disagree. If we're looking for a solution in a reasonable amount of time, an engine that reduces & prunes will outperform an engine that does not reduce or prune. If the engine searches plies iteratively, the reduction logic doesn't permanently cripple particular lines, and pruning is done only near the leaves (all common in chess engines), then eventually the engine has enough depth to "see" the mate. In other words, a selective searcher will solve more long mate-in-x problems than what you call a "perfect engine".
What's a reasonable amount of time? That's subjective. Let's say we want a chess engine to solve a mate-in-7 problem. The winning line has 13 moves (7 by the winning side, 6 by the losing side). Assuming there are 30 legal moves each ply, an exhaustive naive minimax search requires evaluating 30^13 = 1.6 × 10^19 positions. Best-case alpha / beta improves that to sqrt(1.6 × 10^19) = 4 billion positions. An engine that searches 50 million NPS will solve the problem in 80 seconds. But that requires perfect move ordering at every node, a fantasy. A more realistic estimate is (30 / 2)^13 = 1.9 × 10^15 positions. That will take a fast engine 451 days to solve. That's not very useful.
Erik Madsen | My C# chess engine: https://www.madchess.net
-
- Posts: 313
- Joined: Tue Aug 03, 2021 2:41 pm
- Full name: Bill Beame
Re: Godfrey Heathcote's (1902) 2-move mate - engine tester
Hi Erikemadsen wrote: ↑Wed Oct 06, 2021 6:10 amWhat strong engine can't find this mate-in-2? Stockfish, Komodo, Ethereal, hell my modest engine finds it. It's easy. I find it hard to believe a strong engine cannot find this mate.Chessnut1071 wrote: ↑Mon Oct 04, 2021 6:59 am That's not the only highly ranked engine that fails to find it. Here's the problem: PURNING. The best ELO engine prune, however, that can maximize ELO's, but, fails on minimum mate solutions. If your objective is a perfect minimum solution YOU CAN"T PRUNE!
I agree with you that exhaustive search is the optimal technique for short mate-in-x problems. But it's not optimal for longer mate-in-x problems.
If the mate distance is large and the problem is time-bound, I disagree. If we're looking for a solution in a reasonable amount of time, an engine that reduces & prunes will outperform an engine that does not reduce or prune. If the engine searches plies iteratively, the reduction logic doesn't permanently cripple particular lines, and pruning is done only near the leaves (all common in chess engines), then eventually the engine has enough depth to "see" the mate. In other words, a selective searcher will solve more long mate-in-x problems than what you call a "perffind uires evaluating 30^13 = 1.6 × 10^19 positions. Best-case alpha / beta improves that to sqrt(1.6 × 10^19) = 4 billion positions. An engine that searches 50 million NPS will solve the problem in 80 seconds. But that requires perfect move ordering at every node, a fantasy. A more realistic estimate is (30 / 2)^13 = 1.9 × 10^15 positions. That will take a fast engine 451 days to solve. That's not very useful.
I think we're talking about 2 different objectives. First, the strong engines get that way by pruning efficiently, the more efficient the higher the ELO. We both agree that pruning leaves holes; however, in OTB competition it doesn't matter as much as speed and depth. In mate in - x positions it does matter. My current objective is to solve mate in x the shortest and quickest way possible, regardless of the time to solution, even 100 days if that's what it takes. Here's why.
Quantum computing advances are going to accelerate speeds to unimaginable levels in the not too near distant future. I've seen it done at White Sands, that technology is mind bending. When it gets affordable and commercialized, exhaustive search engines will be more competitive against pruning. Get to 20-ply and the pruning engines will be at a huge disadvantage, since they will miss sacrifices and weak lines that end up being optimal "over the horizon." If you're focused on current technology, fine, prune away. In five years I want to play against your engine.
regards