I installed some interesting 6 piece bases (both files of course). After test runs I noticed a problem.
If there is 6 piece position on board, but no corresponding tablebase engine is not using any syzy at all! Komodo is more clever here.
Example 1:
[D]6B1/5P2/5Knk/8/7P/8/8/8 w - - 0 1
Analysis by Stockfish 7 64 BMI2:
1.h5 Nf8 2.Ke7 Kg7 3.Ke8 Ne6 4.h6+ Kh8 5.Kd7 Nf8+ 6.Kd8 Ng6 7.Kc7 Nf8 8.Kb6 Ne6 9.Kb5 Nf8 10.Kc5 Ng6 11.Kd6 Nf8 12.Ke7 Ng6+ 13.Kd8 Nf8 14.Kc7 Ne6+ 15.Kc8 Nf8 16.Kb7 Ne6 17.Kb8 Nf8 18.Ka7 Ne6 19.Kb6 Nf8 20.Kc6 Ne6 21.Kd5 Nf8 22.Ke5 Ng6+ 23.Kf5 Nf8 24.Kf6 Nd7+ 25.Kg5 Nf8 26.Kf4 Nd7 27.Ke4 Nf8
+- (2.82) Depth: 39/54 00:00:07 168mN
1.h5 Nf8 2.Ke7 Kg7 3.Ke8 Ne6 4.h6+ Kh8 5.Kd7 Nf8+ 6.Kd8 Ng6 7.Kc7 Nf8 8.Kb6 Ne6 9.Kb5 Nf8 10.Kc5 Ng6 11.Kd6 Nf8 12.Ke7 Ng6+ 13.Kd8 Nf8 14.Kc7 Ne6+ 15.Kc8 Nf8 16.Kb7 Ne6 17.Kb8 Nf8 18.Ka7 Ne6 19.Kb6 Nf8 20.Kc6 Ne6 21.Kd5 Nf8 22.Ke5 Ng6+ 23.Kf5 Nf8 24.Kf6 Nd7+ 25.Kg5 Nf8 26.Kf4 Nd7 27.Ke4 Nf8 28.Kd5 Ng6
+- (2.82) Depth: 40/56 00:00:10 224mN
Analysis by Komodo 9.2 64-bit:
1.Ke6 Kg7 2.h5 Nf4+ 3.Ke7 Nd5+ 4.Kd6 Nf6 5.h6+ Kf8 6.Ke6 Ne4 7.Kf5 Nf6 8.Kg6 Ng4 9.h7 Ne5+ 10.Kg5 Nf3+ 11.Kf6 Nd2 12.h8Q Ne4+ 13.Kg6 Nc3
+- (250.00) Depth: 26 00:00:00 3218kN, tb=469678
Example2:
[D]1k6/8/1B5p/1R6/6K1/8/8/7r w - - 0 1
Analysis by Stockfish 7 64 BMI2:
1.Kg3 Kb7 2.Be3+ Kc6 3.Ra5 h5 4.Kg2 Re1 5.Bf2 Rb1 6.Rc5+ Kd6 7.Rxh5 Rb3 8.Bg3+ Kc6 9.Bf4 Rb5 10.Rh6+ Kd5 11.Kf3 Rb3+ 12.Kg4 Rb7 13.Rh8 Rg7+ 14.Kf3 Ra7 15.Re8 Ra4 16.Rd8+ Ke6 17.Rd6+ Kf5 18.Rd5+ Ke6 19.Rb5 Ra3+ 20.Be3 Kd7 21.Ke4
+/= (0.68) Depth: 31/45 00:00:07 92907kN
1.Kg3 Kb7 2.Be3+ Kc6 3.Ra5 h5 4.Kg2 Re1 5.Bf2 Rb1 6.Rc5+ Kd6 7.Rxh5 Rb3 8.Bg3+ Kc6 9.Bf4 Rb5 10.Rh6+ Kd5 11.Kf3 Rb3+ 12.Kg4 Rb7 13.Rh8 Rg7+ 14.Kf3 Ra7 15.Re8 Ra4 16.Rd8+ Ke6 17.Rd6+ Kf5 18.Rd5+ Ke6 19.Rb5 Ra3+ 20.Be3 Kd7 21.Ke4 Ra4+ 22.Kd5
+/= (0.68) Depth: 32/45 00:00:09 115mN
Analysis by Komodo 9.2 64-bit:
1.Bg1+ Kc7 2.Rb1 Kd7 3.Re1 Kc6 4.Rd1 Kb5 5.Rc1 h5+ 6.Kg3 Ka4 7.Rb1 h4+ 8.Kg2 h3+
+- (250.00) Depth: 13 00:00:00 3080kN, tb=493450
With 5 piece syzygy SF solves positions correct. Maybe this is easily fixable so You can use 6 piece syzygy without full 150 GB set?
Stockfish 7 and partial 6 piece syzygy problem?
Moderators: hgm, Rebel, chrisw
-
- Posts: 3291
- Joined: Wed Mar 08, 2006 8:15 pm
-
- Posts: 5566
- Joined: Tue Feb 28, 2012 11:56 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
That is not true.Jouni wrote:If there is 6 piece position on board, but no corresponding tablebase engine is not using any syzy at all!
SF simply fails to find the win in these two positions.
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
Re: Stockfish 7 and partial 6 piece syzygy problem?
I can reproduce the problem in stockfish 7 in droidfish. Here is a fix:Jouni wrote:I installed some interesting 6 piece bases (both files of course). After test runs I noticed a problem.
If there is 6 piece position on board, but no corresponding tablebase engine is not using any syzy at all!
...
With 5 piece syzygy SF solves positions correct. Maybe this is easily fixable so You can use 6 piece syzygy without full 150 GB set?
Code: Select all
--- a/search.cpp
+++ b/search.cpp
@@ -271,7 +271,7 @@
TB::RootInTB = Tablebases::root_probe_wdl(rootPos, rootMoves, TB::Score);
// Only probe during search if winning
- if (TB::Score <= VALUE_DRAW)
+ if (TB::RootInTB && TB::Score <= VALUE_DRAW)
TB::Cardinality = 0;
}
-
- Posts: 3291
- Joined: Wed Mar 08, 2006 8:15 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
Thanks Peter. Hopefully somebody sends fix to Github also.
Jouni
-
- Posts: 5566
- Joined: Tue Feb 28, 2012 11:56 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
Yes, that is a good fix.petero2 wrote:Here is a fix:
It might indeed have caused what Jouni observed.
-
- Posts: 3291
- Joined: Wed Mar 08, 2006 8:15 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
Will there be a fix soon? Finding this bug took me just 1 minute, because first position was number 3 in AH_endgames.
Jouni
-
- Posts: 5566
- Joined: Tue Feb 28, 2012 11:56 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
Well, you're not really supposed to use incomplete setsJouni wrote:Will there be a fix soon? Finding this bug took me just 1 minute, because first position was number 3 in AH_endgames.
Whether it will be fixed soon depends on the SF maintainers (and whether someone submits a patch, I guess).
-
- Posts: 2041
- Joined: Wed Mar 08, 2006 8:30 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
Well, I certainly agree with that, especially for syzygy !!!syzygy wrote:Well, you're not really supposed to use incomplete sets
-
- Posts: 3291
- Joined: Wed Mar 08, 2006 8:15 pm
Re: Stockfish 7 and partial 6 piece syzygy problem?
I see there has been syzygy rewriting lately. May be this can be fixed at the same time?
Jouni
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Stockfish 7 and partial 6 piece syzygy problem?
This has been a general problem for so long... With nalimov if you are in a KRPKR ending and you do not have KRQKR, you will have a problem. You will avoid promoting since with the pawn on the board, you see a mate-in-N score, but after the promotion you would only see a queen advantage or so, so you don't promote.Jouni wrote:I see there has been syzygy rewriting lately. May be this can be fixed at the same time?
With the 6 piece syzygy's being so small, what would be the reason for having an incomplete set? You are introducing overhead. Why try to probe a table you don't have in the first place???
If I were Ronald, I would probably just fix the initialization code so that it would not try to use any 6 piece files unless ALL 6 piece files are available, then this kind of problem goes away.