## Stockfish 7 and partial 6 piece syzygy problem?

**Moderators:** bob, hgm, Harvey Williamson

**Forum rules**

This textbox is used to restore diagrams posted with the [d] tag before the upgrade.

### Stockfish 7 and partial 6 piece syzygy problem?

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?

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?

Jouni

### 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.

### 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;
}
```

### Re: Stockfish 7 and partial 6 piece syzygy problem?

Thanks Peter. Hopefully somebody sends fix to Github also.

Jouni

### 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.

### 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

### 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).

### 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

### 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

### 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.