Turning off 50-move draw rule in Stockfish & other engines

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
jp
Posts: 1345
Joined: Mon Apr 23, 2018 5:54 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by jp » Mon Mar 16, 2020 9:09 pm

MonteCarlo wrote:
Mon Mar 16, 2020 3:19 am
If we're just wanting to test the idea, it seems it might be simpler to find a difficult TB position where the conversion is ,say, 30 moves away (or some such depth), and see if SF finds the win faster with 50-move ply counter set to 0 than with it at 39, instead of trying to make absolutely sure the engine ignores the 50 move rule.

Just speculating from the armchair, so maybe finding an appropriate position isn't any easier, but it's a thought :)
It's a good thought. I've tried it with a position with DTZ 23 (DTM 51).

SF10 with ply counter set to 70 finds a mate at depth 55:
depth 55 +M36; depth 56 +M34; depth 57 +M33.
SF10 with ply counter set to 0 finds a mate at depth 54 but it gets there much quicker, in maybe 40% of the time:
depth 54 +M35; depth 55 M33; ...; depth 57 +M30.
SF10 with ply counter set to 76 gets quite stuck at low depths:
depth 23 +3.56; ...
After twice the time (it had with counter 70), it's still at only depth 25 with no mate score.

That's encouraging enough to go ahead with the full-scale test with the changed code.

syzygy
Posts: 4577
Joined: Tue Feb 28, 2012 10:56 pm

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by syzygy » Tue Mar 17, 2020 11:56 am

Zenmastur wrote:
Sun Mar 15, 2020 11:20 pm
Joerg Oster wrote:
Sun Mar 15, 2020 9:35 pm
You might give Moonfish a try. https://github.com/joergoster/Moonfish

If you set "Syzygy50MoveRule" to false, this will also switch it off for the search.
Thanks Joerg. Do you know when using “regular” Stockfish if you turn off the Syzygy50Moverule does the main program still enforce the 50-move-rule. It doesn't seem make sense that it would. I mean, what good would it do to switch it off for TB's and still have the program enforce the rule?
Look up the rules of correspondence chess.

Zenmastur
Posts: 850
Joined: Sat May 31, 2014 6:28 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Zenmastur » Tue Mar 17, 2020 9:17 pm

syzygy wrote:
Tue Mar 17, 2020 11:56 am
Zenmastur wrote:
Sun Mar 15, 2020 11:20 pm
Joerg Oster wrote:
Sun Mar 15, 2020 9:35 pm
You might give Moonfish a try. https://github.com/joergoster/Moonfish

If you set "Syzygy50MoveRule" to false, this will also switch it off for the search.
Thanks Joerg. Do you know when using “regular” Stockfish if you turn off the Syzygy50Moverule does the main program still enforce the 50-move-rule. It doesn't seem make sense that it would. I mean, what good would it do to switch it off for TB's and still have the program enforce the rule?
Look up the rules of correspondence chess.
This has absolutely nothing to do with correspondence chess.
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

Zenmastur
Posts: 850
Joined: Sat May 31, 2014 6:28 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Zenmastur » Tue Mar 17, 2020 9:24 pm

Here is the original test position along with one solutions.



The first capture takes place on ply 81 or black can select an alternate route and gets mated on ply 91.
This makes for an extremely long test because the action doesn't take place until the engine is deep in the tree.

We can make two modification to help shorten the test AND make it more apparent that the 50-move-rule is interfering with the engines ability to solve the problem. The first is to put a preamble on the solution to make the shorter mate happen on ply 99 and the night capture happen on ply 89. This pushes both closer to the 50 move limit.

Like this:



This makes for a very long testing times. We can shorten the test by starting at a position closer to the action. Like this:



Notice the half-move clock is set at it's “normal” value for a starting position WITH the preamble I added. The engine output using SCID vs PC (sorry no raw output) is:

Code: Select all

1 [+1.92]  40.Bg6  (0.00)
 2 [+2.00]  40.Bg6 Kh6  (0.00)
 3 [+1.90]  40.Bg6 Kg8 41.Bh5  (0.00)
 4 [+1.92]  40.Be5+ Kg8 41.Ba1 Nf8 42.Bd4  (0.00)
 5 [+1.83]  40.Ba4 Kf7 41.Bc2 Kg7 42.Bd3  (0.00)
 6 [+1.92]  40.Ba4 Nf8 41.Be8 Nh7 42.Bh5 Nf8  (0.00)
 7 [+1.79]  40.Bh5 Nf8 41.Be5+ Kg8 42.Be8 Nh7 43.Ba1 Nf8  (0.00)
 8 [+1.68]  40.Be5+ Kg8 41.Bc3 Nf8 42.Be1 Nh7 43.Bh5 Kg7 44.Bg3  (0.01)
 9 [+1.69]  40.Be7 Nf8 41.Bf6+ Kg8 42.Bc3 Nh7 43.Bb4 Nf8 44.Bd2 Nh7  (0.01)
10 [+1.66]  40.Be7 Nf8 41.Bc5 Nh7 42.Bc6 Nf8 43.Bd6 Kf7 44.Ba4 Kg7 45.Be5+ Kf7 46.Bb5 Ke7  (0.01)
11 [+1.66]  40.Be7 Kg8 41.Bc5 Nf8 42.Bd4 Nh7 43.Be5 Kf8 44.Bh5 Kg8 45.Bd1 Kf7  (0.01)
12 [+1.66]  40.Be7 Nf8 41.Bd6 Kg8 42.Bb8 Kg7 43.Bg3 Kg8 44.Bh5 Nd7 45.Bd6 Kg7  (0.01)
13 [+1.66]  40.Be7 Kg8 41.Bc5 Kg7 42.Bd4+ Kg8 43.Ba7 Kg7 44.Ba4 Kf7 45.Bd4 Ke7 46.Bb3 Nf8 47.Bc5+ Ke8  (0.01)
14 [+1.55]  40.Be7 Kg8 41.Bd6 Kg7 42.Be5+ Kg8 43.Bc3 Nf8 44.Be1 Nh7 45.Bb5 Kf7 46.Bh4 Nf8 47.Bc4+ Ke8 48.Bf6  (0.02)
15 [+1.45]  40.Be7 Kg8 41.Bc5 Kg7 42.Bd4+ Kg8 43.Bc3 Nf8 44.Ba1 Nh7 45.Bc6 Kf7 46.Bb2 Nf8 47.Bc1 Ke7 48.Ba3+ Kf7 49.Bd5+ Kg7  (0.03)
16 [+1.35]  40.Be7 Kg8 41.Ba3 Nf8 42.Bd6 Kg7 43.Be5+ Kg8 44.Bf4 Kg7 45.Bd6 Nh7 46.Be5+ Kf8 47.Bh5 Kg8 48.Be2 Kf7 49.Bb2 Ke7  (0.05)
17 [+1.04]  40.Be7 Kg8 41.Bc5 Kg7 42.Bb5 Kf7 43.Bb4 Nf8 44.Bc4+ Ke8 45.Ke5 Nd7+ 46.Kd4 Nf8 47.Kc3 Nd7 48.Kb3 Kd8 49.Be6 Nb6  (0.22)
18 [+1.00]  40.Be7 Kg8 41.Bc5 Kg7 42.Ba3 Kg8 43.Be7 Kg7 44.Bc5 Kg8 45.Bd4 Kf8 46.Bg6 Kg8 47.Bb2 Nf8 48.Be8 Nh7 49.Bc3 Kf8  (0.26)
19 [+0.85]  40.Be7 Kg8 41.Bh4 Kg7 42.Be1 Kg8 43.Bg3 Nf8 44.Bf4 Kg7 45.Bd6 Kg8 46.Bb4 Kg7 47.Bc5 Nh7 48.Bh5 Nf8 49.Bd4+ Kg8  (0.46)
20 [+0.00]  40.Be7 Kg8 41.Bc5 Nf8 42.Bb4 Kg7 43.Bd6 Kg8 44.Bf4 Kg7 45.Be5+ Kh6 46.Bb2 Kh7 47.Bf6 Kh6 48.Be5 Kh7 49.Bf6  (1.15)
21 [+0.00]  40.Be7 Kg8 41.Bd6 Kg7  (1.17)
22 [+0.00]  40.Be7 Kg8 41.Bd6 Nf8 42.Ke5 Nh7  (1.19)
23 [+0.00]  40.Be7 Kg8 41.Bd6 Nf8 42.Be5 Nh7  (1.20)
24 [+0.00]  40.Be7 Nf8 41.Ba3 Nh7  (1.27)
25 [+0.00]  40.Be7 Nf8 41.Ba3 Nh7 42.Bb2+ Kg8 43.Be5 Kf8 44.Bg6 Kg8 45.Ba1 Nf8 46.Be8 Nh7  (1.28)
26 [+0.00]  40.Be7 Nf8 41.Ba3 Nh7 42.Bc6 Kf7 43.Bd5+ Ke8 44.Bd6 Nf8 45.Bc6+ Kf7 46.Bxf8 Kxf8 47.Kf6 Kg8 48.Bd5+ Kh7 49.Bg2 Kg8 50.Bc6 Kh7 51.Bb5 Kg8 52.Bc6  (1.37)
27 [+0.00]  40.Be7 Nf8 41.Ba3 Nh7 42.Bc6 Kf7 43.Bd5+ Ke8 44.Bb3 Nf8 45.Ba4+ Kf7 46.Bxf8 Kxf8 47.Kf6 Kg8 48.Be8 Kh7 49.Bg6+ Kg8  (1.38)
28 [+0.00]  40.Be7 Kg8 41.Ba3 Kg7  (1.65)
33 [+0.00]  40.Be7 Kg8 41.Ba3 Kg7 42.Bg6 Nf6 43.Bf8+ Kg8 44.Kxf6 Kxf8 45.Bh5 Kg8 46.Bf3 Kf8  (1.69)
34 [+0.00]  40.Be7 Kg8 41.Ba3 Kg7 42.Bg6 Nf6 43.Bf8+ Kg8 44.Kxf6 Kxf8 45.Bh5 Kg8 46.Bf3 Kf8 47.Bd5 Ke8 48.Bc6+ Kd8 49.Ke5 Kc7 50.Kd5 Kb8 51.Bb5 Kb7 52.Kd6 Kb6 53.Be8 Kb7  (1.73)
35 [+0.00]  40.Be7 Kg8 41.Ba3 Nf8 42.Bxf8 Kxf8 43.Bc6 Ke7 44.Ke5 Kd8 45.Kd6 Kc8 46.Bb5 Kb7 47.Bf1 Kb6 48.Bd3 Ka5 49.Kc5 Ka4 50.Kc4 Ka5 51.Be2 Kb6 52.Kd5 Ka5  (1.81)
36 [+0.00]  40.Be7 Kg8 41.Ba3 Nf8 42.Bxf8 Kxf8 43.Bc6 Ke7 44.Ke5 Kd8 45.Kd6 Kc8 46.Bd7+ Kb7 47.Ba4 Kc8  (1.85)
37 [+0.00]  40.Be7 Kg8 41.Ba3 Nf8 42.Bb4 Kg7 43.Bxf8+ Kxf8 44.Bc6 Ke7 45.Ke5 Kd8 46.Kd6 Kc8 47.Bd7+ Kb7 48.Ba4 Kc8 49.Bc6 Kb8 50.Bg2 Kc8 51.Bf1 Kb7 52.Be2 Kb6 53.Kd5 Ka5 54.Kc5 Ka4 55.Bd1+ Ka5 56.Bc2 Ka6 57.Ba4 Kb7 58.Bc6+ Kb8 59.Bb5 Kc7 60.Kd5 Kb6  (1.90)
38 [+0.00]  40.Be7 Kg8 41.Ba3 Nf8 42.Bxf8 Kxf8 43.Bc6 Ke7 44.Ke5 Kd8 45.Kd6 Kc8 46.Bd7+ Kb7 47.Be8 Ka7 48.Kc5 Kb7  (1.98)
39 [+0.00]  40.Be7 Kg8 41.Ba3 Nf8 42.Bxf8 Kxf8 43.Bc6 Ke7 44.Ke5 Kd8 45.Kd6 Kc8 46.Bd7+ Kb7 47.Kc5 Kc7 48.Bb5 Kb8 49.Kd6 Kb7 50.Be2 Kb6 51.Kd5 Kc7 52.Bb5 Kb7 53.Bc4 Kc7  (2.06)
40 [+0.00]  40.Be7 Kh6 41.Ba3 Kg7  (2.15)
41 [+0.00]  40.Be7 Kh6 41.Bb5 Kg7 42.Bc4 Nf8 43.Bxf8+ Kxf8 44.Kf6 Ke8 45.Bb5+ Kd8 46.Ke6 Kc7 47.Kd5 Kb7 48.Ba4 Kb8 49.Kc5 Kc7 50.Kd5  (2.54)
42 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7  (2.69)
43 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Bb4 Kg7 44.Bc3+ Kh7 45.Bb2 Kh6 46.Bf6 Kh7 47.Ke6 Kh6 48.Ba1 Kg5 49.Ke5 Kg6 50.Bd4 Kf7 51.Bc5 Kg6  (3.21)
44 [+0.00]  40.Be7 Nf8 41.Bxf8+ Kxf8 42.Bc6 Ke7 43.Ke5 Kd8 44.Kd6 Kc8 45.Bg2 Kb8 46.Bf1 Kc8 47.Kc6 Kd8 48.Kd5 Kc7 49.Bb5 Kb7 50.Kd6 Kc8 51.Ke5 Kb8 52.Be2 Kc7 53.Bd3 Kc6 54.Kd4 Kd7 55.Kd5 Kd8 56.Bc2 Kc7 57.Kc5 Kb7 58.Bb1 Kc7 59.Ba2 Kb7  (3.30)
45 [+0.00]  40.Be7 Nf8 41.Bxf8+ Kxf8 42.Bc6 Ke7 43.Ke5 Kd8 44.Kd6 Kc8 45.Bg2 Kb8 46.Bf1 Kc8  (3.38)
47 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7  (5.19)
48 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Be8 Kh7 45.Kf5 Kg7 46.Ke5 Kh7  (5.36)
49 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Ba3 Kh6 44.Bc1+ Kg7 45.Bb2+ Kf8 46.Kg6 Kg8 47.Bd4 Kf8  (5.74)
50 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Bg5 Kg7 44.Bc1 Kf8 45.Bg5  (6.06)
51 [+0.00]  40.Be7 Kh6 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Bg5 Kg7 44.Bc1 Kf8 45.Bb2 Ke8 46.Kf6 Kd7 47.Kg6 Kd8 48.Bf6+ Ke8 49.Bg5 Kf8 50.Bh6+ Ke8 51.Kf6 Kd8 52.Bf8 Kc7 53.Ke5 Kd8  (6.53)
52 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Ke4 Kg7 44.Bd8 Kg8 45.Kd4 Kf8 46.Kd5 Kf7 47.Ke5 Kf8  (7.58)
53 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Ba2 Kh6 46.Ke5 Kg7 47.Bb3 Kg6 48.Bc2+ Kg5 49.Ke4 Kf6 50.Bd3 Kg7 51.Bc2  (8.31)
54 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Ba2 Kh6 46.Ke5 Kg7 47.Bb1 Kg8 48.Ba2+  (8.96)
55 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Ba2 Kh6 46.Ke5 Kg7 47.Bb1 Kg8 48.Kf6  (9.63)
56 [+0.00]  40.Be7 Kg8 41.Bc5 Kg7 42.Bg6 Nf8 43.Bxf8+ Kxf8 44.Kf6 Kg8 45.Bf7+ Kh7 46.Ba2 Kh6 47.Ke5 Kg7 48.Bb1 Kg8 49.Kf6  (11.51)
57 [+0.00]  40.Be7 Nf8 41.Bxf8+ Kxf8 42.Bc6 Kg8 43.Bd5+ Kg7 44.Bc4 Kh8 45.Bf7 Kh7 46.Bb3 Kh6 47.Kf6 Kh7  (13.84)
58 [+0.00]  40.Be7 Nf8 41.Bxf8+ Kxf8 42.Bc6 Kg8 43.Bd5+ Kg7 44.Bc4 Kh8 45.Bf7 Kh7 46.Bb3 Kh6 47.Kf6 Kh7 48.Bc2+ Kg8 49.Kg6 Kh8 50.Kf5 Kg7 51.Ba4 Kf8 52.Kf6 Kg8 53.Bb3+  (15.79)
59 [+0.00]  40.Be7 Kg8 41.Bg6 Kg7 42.Bxh7 Kxh7 43.Bd8 Kh6 44.Kf4 Kg7 45.Ke4 Kf8 46.Kd4 Ke8 47.Bg5 Kf8  (19.23)
60 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Be6 Kh6 46.Bb3 Kh7  (20.72)
61 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Be6 Kh6 46.Bb3 Kh7 47.Kf5 Kg7 48.Bd1 Kh8 49.Ba4 Kg8 50.Bb3+  (27.06)
62 [+0.00]  40.Be7 Kg8 41.Bg6 Nf8 42.Bxf8 Kxf8 43.Kf6 Kg8 44.Bf7+ Kh7 45.Be6 Kh6 46.Bb3 Kh7 47.Kf5 Kg7 48.Bd1 Kh8 49.Ba4 Kg8 50.Bb3+  (1490.86)
69 [+0.10]  40.Be5+  (1490.86)
This ran for 1491 seconds and evaluated 262,071,102,000 nodes before it found the right move (Be5+) with a score of just +0.10. Not exactly a great performance.

If you change the half-move clock to 0 like this:



Code: Select all

1 [+3.51]  1.Be5+ Kf8  (0.00)
 2 [+3.92]  1.Bh5 Kg8  (0.00)
 3 [+4.00]  1.Bh5 Kg8 2.Bf3  (0.00)
 4 [+4.03]  1.Bc6 Nf8 2.Bg2 Kf7 3.Bd5+ Ke8  (0.00)
 5 [+3.85]  1.Bh5 Kg8 2.Bf3 Kf7 3.Bd5+ Ke8  (0.00)
 6 [+3.94]  1.Bc6 Nf8 2.Be8 Kg8 3.Be5  (0.00)
 7 [+3.86]  1.Bc6 Nf8 2.Bd5 Nd7 3.Be6 Nb6  (0.00)
 8 [+3.89]  1.Be7 Kg8 2.Bc5 Kg7 3.Bd4+ Kg8 4.Bc6 Kf7 5.Bd5+ Ke7  (0.00)
 9 [+3.72]  1.Be7 Kg8 2.Bd6 Nf8 3.Ba3 Kg7 4.Be7 Kg8 5.Bd6 Nh7  (0.01)
10 [+3.68]  1.Bg6 Nf8 2.Be8 Nh7 3.Ba4 Kf7 4.Bb5 Nf8 5.Be2 Nh7 6.Bh5+ Kg8 7.Bd1  (0.01)
11 [+3.63]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bb2 Nf8 4.Be8 Nh7 5.Bc3 Kf8 6.Bh5 Kg8 7.Bb4 Nf8 8.Be8 Nh7 9.Bd6 Kg7  (0.01)
12 [+3.64]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh5 Nf8 4.Be8 Nh7 5.Bb5 Kf7 6.Bd6 Nf8 7.Bc4+ Ke8 8.Bb3 Nh7 9.Bd1 Kf7 10.Bh5+ Kg8  (0.01)
13 [+3.63]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh2 Kh8 4.Bf4 Kg7 5.Bd6 Kg8 6.Be5 Nf8 7.Be8 Nh7 8.Bb5 Kf7  (0.01)
14 [+3.62]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bc3 Nf8 4.Be8 Nh7 5.Bb4 Kg7 6.Be7 Nf8 7.Bd6 Kg8 8.Be5 Nh7 9.Ba4 Kf7  (0.01)
15 [+3.62]  1.Be5+ Kg8 2.Bb5 Kf7 3.Bd6 Nf8 4.Ba3 Nh7 5.Bc4+ Ke8 6.Be2 Kf7 7.Bd6 Nf8 8.Bh5+ Kg7 9.Bf3 Kf7 10.Bd5+ Ke8 11.Bc6+ Kf7  (0.01)
16 [+3.62]  1.Be5+ Kg8 2.Bd4 Kf8 3.Bc6 Kf7 4.Bc3 Nf8 5.Bb4 Nh7 6.Bd5+ Ke8 7.Bf3 Kf7 8.Bh5+ Kg8 9.Be8 Kg7 10.Bc3+ Kg8 11.Be5  (0.02)
17 [+3.61]  1.Be5+ Kg8 2.Bd4 Kf8 3.Bc6 Kf7 4.Bc3 Nf8 5.Bb4 Nh7 6.Bd5+ Ke8 7.Bf3 Kf7 8.Bh5+ Kg8 9.Be8 Nf8 10.Bd6 Nh7 11.Bc6 Kf7 12.Ba4 Nf8  (0.02)
18 [+3.61]  1.Be5+ Kf8 2.Bc6 Ke7 3.Bb2 Kf7 4.Bd5+ Ke7 5.Bc1 Nf8 6.Ba3+ Ke8 7.Bc6+ Kf7 8.Bd6 Nh7 9.Bd5+ Ke8 10.Bb3 Nf8 11.Ba4+ Kf7 12.Bb5 Nh7 13.Bc4+ Ke8 14.Be2  (0.02)
19 [+3.62]  1.Be5+ Kf8 2.Bb5 Kf7 3.Bd4 Ke7 4.Bc5+ Kf7 5.Bc4+ Ke8 6.Bd5 Nf8 7.Bc6+ Kf7 8.Bd6 Nh7 9.Bd5+ Ke8 10.Bb3 Kd7 11.Ba3 Ke8 12.Bd1 Kf7 13.Be2 Nf8 14.Bc4+ Ke8 15.Bb5+ Kf7 16.Bd6  (0.03)
20 [+3.76]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh5 Kf8 4.Bb2 Kg8 5.Be8 Kf8 6.Bg6 Kg8 7.Be5 Nf8 8.Be8 Nh7 9.Kg6 Nf8+ 10.Kf6 Nh7+ 11.Ke7 Ng5 12.Bc6 Kh7 13.Kf6 Nh3 14.Bf3 Nf2 15.Bg3 Nh3 16.Bg4  (0.03)
21 [+4.06]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh5 Kf8 4.Bb2 Kg8 5.Be8 Kf8 6.Bg6 Kg8 7.Be5 Nf8 8.Be8 Nh7 9.Kg6 Nf8+ 10.Kf6 Nh7+ 11.Ke7 Ng5 12.Bc6 Kh7 13.Kf6 Kh6 14.Bf4  (0.03)
22 [+54.94]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bd4 Nf8 4.Bh5 Nd7 5.Be8 Nf8 6.Be5 Nh7 7.Kg6 Nf8+ 8.Kf6 Nh7+ 9.Ke7 Ng5 10.Bc6 Kh7 11.Kf6 Nh3 12.Bf3 Kh6  (0.04)
23 [+54.94]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh5 Kf8 4.Bb2 Kg8 5.Be8 Kf8 6.Bg6 Kg8 7.Be5 Nf8 8.Be8 Nh7 9.Kg6 Nf8+ 10.Kf6 Nh7+ 11.Ke7 Ng5 12.Bc6 Kh7 13.Kf6 Nh3  (0.04)
24 [+54.94]  1.Be5+ Kf8 2.Bg6 Kg8 3.Bh5 Kf8 4.Bb2 Kg8 5.Be8 Kf8 6.Bg6 Kg8 7.Be5 Nf8 8.Be8 Nh7 9.Kg6 Nf8+ 10.Kf6 Nh7+ 11.Ke7 Ng5 12.Bc6 Kh7 13.Kf6 Nh3 14.Bf3  (0.04)
25 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1  (0.20)
26 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Ke2 15.Ke4  (0.20)
27 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Ke2 15.Ke4 Kd2  (0.20)
28 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Ke2 15.Ke4 Kd2 16.Bd4  (0.20)
29 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bf2 Kd5 8.Kg6 Kc4 9.Bf7+ Kd3 10.Bc5 Kc3 11.Kf5 Kc2 12.Bd4 Kd3 13.Bg1 Ke2 14.Ke4 Kd2 15.Bd4 Kc2 16.Ke3 Kc1 17.Bg8  (0.20)
30 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bf2 Kd5 8.Kg6 Kc4 9.Bf7+ Kd3 10.Bc5 Kc3 11.Kf5 Kc2 12.Bd4 Kd3 13.Bg1 Ke2 14.Ke4 Kd2 15.Bd4 Kc2 16.Be3 Kc3 17.Bc5 Kd2  (0.20)
31 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Ke2 15.Ke4 Kd2 16.Bd4 Kc2 17.Be3 Kc3  (0.20)
32 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Ke2 15.Ke4 Kd2 16.Bd4 Kc2 17.Be3 Kb2 18.Bc5  (0.20)
33 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bf2 Kd5 8.Kg6 Kc4 9.Bf7+ Kd3 10.Bc5 Kc3 11.Kf5 Kc2 12.Bd4 Kd3 13.Bg1 Kc2 14.Bc5 Kd2 15.Ke4 Ke2 16.Ba3 Kf2 17.Bg8 Kg3 18.Kf5 Kf2 19.Bc5+ Ke1  (0.20)
34 [+55.63]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg7 Kd5 8.Kg6 Kc4 9.Kf5 Kd3 10.Bf8 Kd4 11.Bf7 Kd3 12.Bc5 Kc2 13.Bd4 Kd3 14.Bg1 Kc3 15.Ke4 Kb4 16.Kd3 Ka5 17.Be8 Kb4 18.Bd4 Ka3 19.Bc5+ Kb3 20.Ke4  (0.20)
35 [+149.07]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bb6 Kd5 8.Kh6 Kc4 9.Kg5 Kd3 10.Bg1 Kc4 11.Bf7+ Kc3 12.Kf6 Kb2 13.Kf5 Ka3 14.Bd4 Kb4 15.Kf6 Ka5 16.Ke5 Ka4  (0.27)
36 [M33]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bb6 Ke5 8.Kg6 Kd5 9.Kf6 Kd6 10.Bf7 Kc6 11.Bd4 Kd6 12.Bc4 Kd7 13.Bd5 Kd6 14.Be4 Kd7 15.Bc5 Kd8 16.Ke6 Kc7 17.Ke7 Kb8 18.Kd6 Kc8 19.Bd4 Kb8  (0.35)
37 [M30]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bb6 Kd5 8.Kg6 Kc4 9.Kf6 Kd5 10.Bf7+ Kc6 11.Bd4 Kb5 12.Ke5 Ka5 13.Bc4 Ka4 14.Kd6 Kb4 15.Kd5 Ka4 16.Kc5 Ka5 17.Bc3+ Ka4 18.Bb2 Ka5 19.Bd3 Ka4 20.Bc2+ Ka5 21.Be5 Ka6 22.Kc6  (0.36)
38 [M29]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bb6 Kd5 8.Kg6 Kc4 9.Kf5 Kd5 10.Bf7+ Kc6 11.Bd4 Kb5 12.Ke5 Ka5 13.Bc4 Kb4 14.Kd5 Ka4 15.Bc5 Ka5 16.Kd6 Ka4 17.Kc6 Ka5 18.Bb3 Ka6 19.Bd1 Ka5 20.Bc2 Ka6 21.Bd4 Ka5  (0.36)
39 [M29]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd3 8.Kg6 Kc3 9.Kf6 Kb4 10.Bf7 Kb5 11.Ke5 Kb4 12.Bd4 Ka4 13.Kd6 Kb4 14.Bc5+ Kc3 15.Ke5 Kc2 16.Kd4 Kd2 17.Ke4 Kc3 18.Ke3 Kc2 19.Bb4 Kd1 20.Kd3 Kc1 21.Bc4 Kb2 22.Kd2  (0.37)
40 [M29]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd3 8.Kg6 Kc4 9.Bf7+ Kb5 10.Kf5 Kb4 11.Ke5 Kb5 12.Bd4 Ka5 13.Kd6 Kb4 14.Bc5+ Kc3 15.Ke5 Kd3 16.Kf4 Kd2 17.Ke4 Ke2 18.Bc4+ Kd2 19.Bb4+ Kc2 20.Ke3 Kc1 21.Kd3 Kb2 22.Kd2 Kb1 23.Ba3 Ka1 24.Bf7  (0.37)
41 [M28]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd3 8.Bf7 Kc3 9.Bc5 Kd3 10.Kg7 Ke4 11.Kf6 Kd3 12.Kf5 Kc2 13.Ke4 Kd2 14.Bd5 Kc2 15.Ke3 Kc3 16.Bf7 Kc2 17.Bb4 Kd1 18.Bb3+ Kc1 19.Ba3+ Kb1 20.Kd4 Ka1 21.Ke4 Kb1 22.Ke3 Ka1 23.Bf7 Kb1  (0.39)
42 [M27]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd3 8.Bf7 Kc3 9.Bc5 Kd3 10.Kg7 Ke2 11.Kg6 Kd3 12.Kf5 Kc2 13.Ke4 Kd2 14.Be6 Kc3 15.Ke3 Kc2 16.Bf7 Kc3 17.Bf8 Kc2 18.Bb4 Kd1 19.Bb3+ Kc1 20.Ba3+ Kb1 21.Kd4 Ka1 22.Bf7 Kb1 23.Kd3 Ka1 24.Kc3  (0.42)
43 [M26]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Kc6 9.Bc4 Kd6 10.Kg6 Ke5 11.Kg5 Kd6 12.Kf6 Kd7 13.Bd5 Kd6 14.Be4 Kd7 15.Bh2 Kc8 16.Ke6 Kd8 17.Be5 Ke8 18.Bg6+ Kd8 19.Kd6 Kc8 20.Kc6 Kd8 21.Bf6+ Kc8 22.Bf5+ Kb8 23.Bd4 Ka8 24.Kb6 Kb8 25.Be5+ Ka8 26.Be4#  (0.49)
45 [M26]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Kc6 9.Bc4 Kd6 10.Kg6 Ke5 11.Kg5 Ke4 12.Kf6 Kf4 13.Bd5 Kg4 14.Be3 Kh4 15.Kf5 Kg3 16.Bc5 Kh2 17.Bf2 Kh3 18.Ba8 Kh2 19.Kf4 Kh3 20.Bc6 Kh2 21.Kf3 Kh3 22.Bd7+ Kh2 23.Ba7 Kh1 24.Kf2 Kh2 25.Bb8+ Kh1 26.Bc6#  (0.86)
46 [M25]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Kc6 9.Bc4 Kd6 10.Kg6 Ke5 11.Kg5 Ke4 12.Kf6 Kf4 13.Bd5 Kg4 14.Be3 Kh4 15.Kf5 Kg3 16.Bc6 Kh3 17.Bf2 Kh2 18.Kf4 Kh3 19.Kf3 Kh2 20.Ba4 Kh1 21.Bd7 Kh2 22.Ba7 Kh1 23.Kf2 Kh2 24.Bb8+ Kh1 25.Bc6#  (2.53)
47 [M25]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Kc6 9.Bc4 Kd6 10.Kg6 Ke5 11.Kg5 Ke4 12.Kf6 Kf4 13.Bd5 Kg4 14.Be3 Kh3 15.Kf5 Kg3 16.Bc6 Kh3 17.Bf2 Kh2 18.Kf4 Kh3 19.Kf3 Kh2 20.Ba4 Kh1 21.Bd7 Kh2 22.Ba7 Kh1 23.Kf2 Kh2 24.Bb8+ Kh1 25.Bc6#  (2.77)
49 [M25]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Bg6+ Ke6 7.Bxh7 Kd5 8.Bb2 Kc4 9.Kf6 Kd5 10.Bd3 Kd6 11.Bd4 Kd5 12.Bg1 Kc6 13.Ke6 Kc7 14.Be4 Kd8 15.Ba7 Kc7 16.Ke7 Kc8 17.Bb6 Kb8 18.Kd6 Kc8 19.Bd5 Kb8 20.Kc6 Kc8 21.Be6+ Kb8 22.Bg1 Ka8 23.Kb6 Kb8 24.Bh2+ Ka8 25.Bd5#  (3.28)
50 [M25]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Kc6 9.Bc4 Kd6 10.Kg6 Ke5 11.Kg5 Ke4 12.Kf6 Kf4 13.Bd5 Kg4 14.Be3 Kh3 15.Kf5 Kg3 16.Bc6 Kh3 17.Bf2 Kh2 18.Kf4 Kh3 19.Kf3 Kh2 20.Ba4 Kh1 21.Bd7 Kh2 22.Ba7 Kh1 23.Kf2 Kh2 24.Bb8+ Kh1 25.Bc6#  (3.89)
53 [M25]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Bf7+ Ke5 9.Kg6 Ke4 10.Kf6 Kd3 11.Ke5 Kd2 12.Ke4 Kc3 13.Bc5 Kd2 14.Bd5 Ke2 15.Bc4+ Kd1 16.Bb4 Kc2 17.Ke3 Kc1 18.Kd3 Kd1 19.Bb3+ Kc1 20.Ba3+ Kb1 21.Bf7 Ka1 22.Kc3 Kb1 23.Kb3 Ka1 24.Bb2+ Kb1 25.Bg6#  (5.09)
56 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Bg6+ Ke6 7.Bxh7 Kd5 8.Bb2 Ke6 9.Be4 Kd6 10.Bd4 Ke6 11.Kg6 Ke7 12.Kf5 Kd6 13.Kf6 Kd7 14.Be5 Kc8 15.Ke6 Kd8 16.Bb7 Ke8 17.Bd4 Kf8 18.Bc6 Kg8 19.Kf6 Kh7 20.Be3 Kg8 21.Kg6 Kf8 22.Bc5+ Kg8 23.Bd5+ Kh8 24.Bd4#  (5.66)
59 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke5 9.Bc6 Kd6 10.Ba8 Ke5 11.Kf7 Kd6 12.Bd4 Kd7 13.Be5 Kd8 14.Ke6 Kc8 15.Bd5 Kd8 16.Bb7 Ke8 17.Bd4 Kf8 18.Bc6 Kg8 19.Kf6 Kh7 20.Be3 Kg8 21.Kg6 Kf8 22.Bc5+ Kg8 23.Bd5+ Kh8 24.Bd4#  (6.46)
61 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Bg6+ Ke6 7.Bxh7 Kd5 8.Bb2 Ke6 9.Be4 Kd6 10.Bd4 Ke6 11.Kg6 Ke7 12.Kf5 Kd6 13.Kf6 Kd7 14.Be5 Kc8 15.Ke6 Kd8 16.Bb7 Ke8 17.Bd4 Kf8 18.Bc6 Kg8 19.Kf6 Kh7 20.Be3 Kg8 21.Kg6 Kf8 22.Bc5+ Kg8 23.Bd5+ Kh8 24.Bd4#  (7.11)
62 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Kf5 8.Bc6 Kf4 9.Kg6 Ke5 10.Bg2 Kf4 11.Bd4 Kg3 12.Bd5 Kf4 13.Kf6 Kg4 14.Be5 Kh3 15.Kf5 Kh4 16.Bg2 Kh5 17.Bg3 Kh6 18.Kf6 Kh7 19.Bc6 Kh8 20.Bf4 Kg8 21.Kg6 Kh8 22.Kf7 Kh7 23.Be4+ Kh8 24.Be5#  (7.34)
63 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Bf7 Kf4 10.Kf6 Ke4 11.Bc4 Kf4 12.Bd5 Kg4 13.Be3 Kh3 14.Kf5 Kg3 15.Bc6 Kh3 16.Bf2 Kh2 17.Kf4 Kh3 18.Kf3 Kh2 19.Ba4 Kh1 20.Bd7 Kh2 21.Ba7 Kh1 22.Kf2 Kh2 23.Bb8+ Kh1 24.Bc6#  (7.49)
64 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Bg6+ Ke6 7.Bxh7 Kd5 8.Bb2 Kc4 9.Kf6 Kd5 10.Be5 Kc5 11.Ke6 Kc4 12.Kd6 Kb5 13.Bd3+ Kb4 14.Kd5 Kb3 15.Kc5 Ka3 16.Bc2 Ka2 17.Kc4 Ka3 18.Kc3 Ka2 19.Bg3 Ka1 20.Bd6 Ka2 21.Bf5 Ka1 22.Kc2 Ka2 23.Be6+ Ka1 24.Be5#  (7.72)
68 [M24]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Bd4 Ke7 13.Ke5 Kd7 14.Bd5 Kd8 15.Kd6 Ke8 16.Ke6 Kd8 17.Bb6+ Kc8 18.Kd6 Kb8 19.Kc6 Kc8 20.Be6+ Kb8 21.Bg1 Ka8 22.Kb6 Kb8 23.Bh2+ Ka8 24.Bd5#  (9.17)
70 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Be3 Kd7 13.Ke5 Kc6 14.Ke6 Kc7 15.Bb5 Kc8 16.Kd6 Kd8 17.Bg5+ Kc8 18.Ba6+ Kb8 19.Be3 Ka8 20.Kc6 Kb8 21.Kb6 Ka8 22.Bb7+ Kb8 23.Bf4#  (10.04)
76 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (13.00)
82 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Be3 Kd7 13.Ke5 Kc6 14.Ke6 Kc7 15.Bb5 Kc8 16.Kd6 Kd8 17.Bg5+ Kc8 18.Ba6+ Kb8 19.Be3 Ka8 20.Kc6 Kb8 21.Kb6 Ka8 22.Bb7+ Kb8 23.Bf4#  (14.72)
83 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (16.43)
84 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Be3 Kd7 13.Ke5 Kc6 14.Ke6 Kc7 15.Bb5 Kc8 16.Kd6 Kd8 17.Bg5+ Kc8 18.Ba6+ Kb8 19.Be3 Ka8 20.Kc6 Kb8 21.Kb6 Ka8 22.Bb7+ Kb8 23.Bf4#  (16.75)
89 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (26.65)
90 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Be3 Kd7 13.Ke5 Kc6 14.Ke6 Kc7 15.Bb5 Kc8 16.Kd6 Kd8 17.Bg5+ Kc8 18.Ba6+ Kb8 19.Be3 Ka8 20.Kc6 Kb8 21.Kb6 Ka8 22.Bb7+ Kb8 23.Bf4#  (26.86)
93 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (36.70)
94 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Ba7 Ke5 8.Kg6 Kd5 9.Kf5 Kd6 10.Bf7 Ke7 11.Bc4 Kd6 12.Be3 Kd7 13.Ke5 Kc6 14.Ke6 Kc7 15.Bb5 Kc8 16.Kd6 Kd8 17.Bg5+ Kc8 18.Ba6+ Kb8 19.Be3 Ka8 20.Kc6 Kb8 21.Kb6 Ka8 22.Bb7+ Kb8 23.Bf4#  (37.16)
95 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (37.91)
101 [M23]  1.Be5+ Kh6 2.Bd4 Nf8 3.Kf6 Nh7+ 4.Kf7 Kg5 5.Kg7 Kf5 6.Kxh7 Ke4 7.Bg1 Kd5 8.Kg6 Ke4 9.Kf6 Kd5 10.Bf7+ Ke4 11.Bc5 Kf3 12.Kf5 Ke2 13.Ke4 Kd2 14.Bb4+ Ke2 15.Bh5+ Kf2 16.Kf4 Kg2 17.Bg4 Kf2 18.Bf3 Kf1 19.Kg3 Kg1 20.Bb7 Kf1 21.Ba6+ Kg1 22.Bc5+ Kh1 23.Bb7#  (69.18)
This ran for 69 seconds. It found a mate in less than a second. So clearly, the 50-move-rule DOES have a HUGE negative effect on the engines ability to properly analyze a position. I'm pretty sure this will have a negative effect on engine ELO. Therefore there is good reason to address this issue.

I'm not sure what the final solution will be but I have a few ideas that could be tried.

P.S. to see the move clocks, quote this to see the PGN header. Not showing the header for a PGN is a bit of a pain. Is there an easy fix for this when displaying PGNs in posts?

Regards,

Zenmastur
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

jp
Posts: 1345
Joined: Mon Apr 23, 2018 5:54 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by jp » Tue Mar 17, 2020 9:37 pm

Zenmastur wrote:
Tue Mar 17, 2020 9:24 pm
Here is the original test position along with one solutions.

The first capture takes place on ply 81 or black can select an alternate route and gets mated on ply 91.
This makes for an extremely long test because the action doesn't take place until the engine is deep in the tree.
Hang on. Let me see what you mean at the start.

What do you mean by "one solution"? DTZ is greater than 81, so I assumed this is not the tablebase solution. What is it, then? Unless tablebase DTZ and DTM moves diverged at some point and you followed the DTM moves...

Okay, playing through it moves are tablebase (equal) best moves for both DTZ and DTM until 33. ...

(See my post at the top of this page too.)

jp
Posts: 1345
Joined: Mon Apr 23, 2018 5:54 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by jp » Tue Mar 17, 2020 10:09 pm

[continued]

Okay, its moves are tablebase (equal) best moves for both DTZ and DTM until 33. Be8 (DTZ 26, DTM 48) instead of 33. Be7 (DTZ 24, DTM 48). Then 34. Be7 (DTZ 26, DTM 46) instead of 34. Bb6 (DTZ 24, DTM 48), etc.

So I guess you were following Nalimov or Gaviota tablebase DTM?

Zenmastur
Posts: 850
Joined: Sat May 31, 2014 6:28 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Zenmastur » Tue Mar 17, 2020 11:23 pm

jp wrote:
Tue Mar 17, 2020 10:09 pm
[continued]

Okay, its moves are tablebase (equal) best moves for both DTZ and DTM until 33. Be8 (DTZ 26, DTM 48) instead of 33. Be7 (DTZ 24, DTM 48). Then 34. Be7 (DTZ 26, DTM 46) instead of 34. Bb6 (DTZ 24, DTM 48), etc.

So I guess you were following Nalimov or Gaviota tablebase DTM?
Those moves came from Nalimov TB's. So they are DTM up to the night capture. There are many other "correct" solutions as you will find if you check Namilov TB's. This is just one example of one that gets to the night capture in the minimum number of moves.
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

User avatar
Ovyron
Posts: 4245
Joined: Tue Jul 03, 2007 2:30 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Ovyron » Wed Mar 18, 2020 3:19 am

Really? So you're reinventing the wheel for a position where the best moves are already known and shortest mates can be trivially checked because the position has been already solved?

Please try a relevant position where the engine can access tablebases and turning 50-move draws off somehow helps it. If it exists.

Zenmastur
Posts: 850
Joined: Sat May 31, 2014 6:28 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Zenmastur » Wed Mar 18, 2020 3:23 am

Ovyron wrote:
Wed Mar 18, 2020 3:19 am
Really? So you're reinventing the wheel for a position where the best moves are already known and shortest mates can be trivially checked because the position has been already solved?

Please try a relevant position where the engine can access tablebases and turning 50-move draws off somehow helps it. If it exists.
Do you have a reading comprehension problem? If not, you should read the post again.

If you don't understand the post, why don't you just say so and I'll explain any part you have a problem with.
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

User avatar
Ovyron
Posts: 4245
Joined: Tue Jul 03, 2007 2:30 am

Re: Turning off 50-move draw rule in Stockfish & other engines

Post by Ovyron » Wed Mar 18, 2020 3:33 am

Zenmastur wrote:
Wed Mar 18, 2020 3:23 am
If you don't understand the post, why don't you just say so and I'll explain any part you have a problem with.
I don't understand.

Can you explain why are you modifying an engine's source code so that it finds a mate faster in a 5-men position instead of just installing 5-men TBs so it finds the mate instantly?

What's the goal, and what's the problem?

Post Reply