Stockfish: Syzygy for Antichess, Atomic

Created on 30 Mar 2018  路  10Comments  路  Source: ddugovic/Stockfish

https://github.com/ddugovic/Stockfish/tree/tbprobe_revert and master should produce the same results (debug=yes) for:

setoption name SyzygyPath value [PATH]
bench 128 1 22

Most helpful comment

Thanks, and no worries, I made liberal use of the fast forward function. Assigning myself to this issue so I don't forget.

All 10 comments

$ ls ../tb/
KBBBvK.rtbw  KBNvKQ.rtbz  KBvK.rtbw    KNPvKR.rtbz  KPvKB.rtbw   KQBvK.rtbz   KQPvK.rtbw   KQRPvK.rtbz  KRBNvK.rtbw  KRNvKR.rtbz  KRRvKP.rtbw
KBBBvK.rtbz  KBNvKR.rtbw  KBvK.rtbz    KNPvK.rtbw   KPvKB.rtbz   KQNNvK.rtbw  KQPvK.rtbz   KQRRvK.rtbw  KRBNvK.rtbz  KRNvK.rtbw   KRRvKP.rtbz
KBBNvK.rtbw  KBNvKR.rtbz  KNNNvK.rtbw  KNPvK.rtbz   KPvKN.rtbw   KQNNvK.rtbz  KQQBvK.rtbw  KQRRvK.rtbz  KRBPvK.rtbw  KRNvK.rtbz   KRRvKQ.rtbw
KBBNvK.rtbz  KBNvK.rtbw   KNNNvK.rtbz  KNvKB.rtbw   KPvKN.rtbz   KQNPvK.rtbw  KQQBvK.rtbz  KQRvKB.rtbw  KRBPvK.rtbz  KRPPvK.rtbw  KRRvKQ.rtbz
KBBPvK.rtbw  KBNvK.rtbz   KNNPvK.rtbw  KNvKB.rtbz   KPvKP.rtbw   KQNPvK.rtbz  KQQNvK.rtbw  KQRvKB.rtbz  KRBvKB.rtbw  KRPPvK.rtbz  KRRvKR.rtbw
KBBPvK.rtbz  KBPPvK.rtbw  KNNPvK.rtbz  KNvKN.rtbw   KPvKP.rtbz   KQNvKB.rtbw  KQQNvK.rtbz  KQRvKN.rtbw  KRBvKB.rtbz  KRPvKB.rtbw  KRRvKR.rtbz
KBBvKB.rtbw  KBPPvK.rtbz  KNNvKB.rtbw  KNvKN.rtbz   KPvKQ.rtbw   KQNvKB.rtbz  KQQPvK.rtbw  KQRvKN.rtbz  KRBvKN.rtbw  KRPvKB.rtbz  KRRvK.rtbw
KBBvKB.rtbz  KBPvKB.rtbw  KNNvKB.rtbz  KNvKP.rtbw   KPvKQ.rtbz   KQNvKN.rtbw  KQQPvK.rtbz  KQRvKP.rtbw  KRBvKN.rtbz  KRPvKN.rtbw  KRRvK.rtbz
KBBvKN.rtbw  KBPvKB.rtbz  KNNvKN.rtbw  KNvKP.rtbz   KPvKR.rtbw   KQNvKN.rtbz  KQQQvK.rtbw  KQRvKP.rtbz  KRBvKP.rtbw  KRPvKN.rtbz  KRvKB.rtbw
KBBvKN.rtbz  KBPvKN.rtbw  KNNvKN.rtbz  KNvKQ.rtbw   KPvKR.rtbz   KQNvKP.rtbw  KQQQvK.rtbz  KQRvKQ.rtbw  KRBvKP.rtbz  KRPvKP.rtbw  KRvKB.rtbz
KBBvKP.rtbw  KBPvKN.rtbz  KNNvKP.rtbw  KNvKQ.rtbz   KPvK.rtbw    KQNvKP.rtbz  KQQRvK.rtbw  KQRvKQ.rtbz  KRBvKQ.rtbw  KRPvKP.rtbz  KRvKN.rtbw
KBBvKP.rtbz  KBPvKP.rtbw  KNNvKP.rtbz  KNvKR.rtbw   KPvK.rtbz    KQNvKQ.rtbw  KQQRvK.rtbz  KQRvKR.rtbw  KRBvKQ.rtbz  KRPvKQ.rtbw  KRvKN.rtbz
KBBvKQ.rtbw  KBPvKP.rtbz  KNNvKQ.rtbw  KNvKR.rtbz   KQBBvK.rtbw  KQNvKQ.rtbz  KQQvKB.rtbw  KQRvKR.rtbz  KRBvKR.rtbw  KRPvKQ.rtbz  KRvKP.rtbw
KBBvKQ.rtbz  KBPvKQ.rtbw  KNNvKQ.rtbz  KNvK.rtbw    KQBBvK.rtbz  KQNvKR.rtbw  KQQvKB.rtbz  KQRvK.rtbw   KRBvKR.rtbz  KRPvKR.rtbw  KRvKP.rtbz
KBBvKR.rtbw  KBPvKQ.rtbz  KNNvKR.rtbw  KNvK.rtbz    KQBNvK.rtbw  KQNvKR.rtbz  KQQvKN.rtbw  KQRvK.rtbz   KRBvK.rtbw   KRPvKR.rtbz  KRvKQ.rtbw
KBBvKR.rtbz  KBPvKR.rtbw  KNNvKR.rtbz  KPPPvK.rtbw  KQBNvK.rtbz  KQNvK.rtbw   KQQvKN.rtbz  KQvKB.rtbw   KRBvK.rtbz   KRPvK.rtbw   KRvKQ.rtbz
KBBvK.rtbw   KBPvKR.rtbz  KNNvK.rtbw   KPPPvK.rtbz  KQBPvK.rtbw  KQNvK.rtbz   KQQvKP.rtbw  KQvKB.rtbz   KRNNvK.rtbw  KRPvK.rtbz   KRvKR.rtbw
KBBvK.rtbz   KBPvK.rtbw   KNNvK.rtbz   KPPvKB.rtbw  KQBPvK.rtbz  KQPPvK.rtbw  KQQvKP.rtbz  KQvKN.rtbw   KRNNvK.rtbz  KRRBvK.rtbw  KRvKR.rtbz
KBNNvK.rtbw  KBPvK.rtbz   KNPPvK.rtbw  KPPvKB.rtbz  KQBvKB.rtbw  KQPPvK.rtbz  KQQvKQ.rtbw  KQvKN.rtbz   KRNPvK.rtbw  KRRBvK.rtbz  KRvK.rtbw
KBNNvK.rtbz  KBvKB.rtbw   KNPPvK.rtbz  KPPvKN.rtbw  KQBvKB.rtbz  KQPvKB.rtbw  KQQvKQ.rtbz  KQvKP.rtbw   KRNPvK.rtbz  KRRNvK.rtbw  KRvK.rtbz
KBNPvK.rtbw  KBvKB.rtbz   KNPvKB.rtbw  KPPvKN.rtbz  KQBvKN.rtbw  KQPvKB.rtbz  KQQvKR.rtbw  KQvKP.rtbz   KRNvKB.rtbw  KRRNvK.rtbz
KBNPvK.rtbz  KBvKN.rtbw   KNPvKB.rtbz  KPPvKP.rtbw  KQBvKN.rtbz  KQPvKN.rtbw  KQQvKR.rtbz  KQvKQ.rtbw   KRNvKB.rtbz  KRRPvK.rtbw
KBNvKB.rtbw  KBvKN.rtbz   KNPvKN.rtbw  KPPvKP.rtbz  KQBvKP.rtbw  KQPvKN.rtbz  KQQvK.rtbw   KQvKQ.rtbz   KRNvKN.rtbw  KRRPvK.rtbz
KBNvKB.rtbz  KBvKP.rtbw   KNPvKN.rtbz  KPPvKQ.rtbw  KQBvKP.rtbz  KQPvKP.rtbw  KQQvK.rtbz   KQvKR.rtbw   KRNvKN.rtbz  KRRRvK.rtbw
KBNvKN.rtbw  KBvKP.rtbz   KNPvKP.rtbw  KPPvKQ.rtbz  KQBvKQ.rtbw  KQPvKP.rtbz  KQRBvK.rtbw  KQvKR.rtbz   KRNvKP.rtbw  KRRRvK.rtbz
KBNvKN.rtbz  KBvKQ.rtbw   KNPvKP.rtbz  KPPvKR.rtbw  KQBvKQ.rtbz  KQPvKQ.rtbw  KQRBvK.rtbz  KQvK.rtbw    KRNvKP.rtbz  KRRvKB.rtbw
KBNvKP.rtbw  KBvKQ.rtbz   KNPvKQ.rtbw  KPPvKR.rtbz  KQBvKR.rtbw  KQPvKQ.rtbz  KQRNvK.rtbw  KQvK.rtbz    KRNvKQ.rtbw  KRRvKB.rtbz
KBNvKP.rtbz  KBvKR.rtbw   KNPvKQ.rtbz  KPPvK.rtbw   KQBvKR.rtbz  KQPvKR.rtbw  KQRNvK.rtbz  KRBBvK.rtbw  KRNvKQ.rtbz  KRRvKN.rtbw
KBNvKQ.rtbw  KBvKR.rtbz   KNPvKR.rtbw  KPPvK.rtbz   KQBvK.rtbw   KQPvKR.rtbz  KQRPvK.rtbw  KRBBvK.rtbz  KRNvKR.rtbw  KRRvKN.rtbz
$ cat test4.txt 
setoption name SyzygyPath value /home/lila/Stockfish/tb
bench 128 1 1
$ cat test4.txt | ./stockfish

...
Position: 33/42
Segmentation fault (core dumped)

There's still more work to do on this one, although now I think(?) everything merged properly.

These commits are focused on:

  1. restoring chess functionality lost during the upstream merge
  2. future-proofing using #ifdef so future bugs can be fixed by disabling variant code
  3. reintroducing variant functionality lost during the upstream merge

Progress on 1 is slow; progress on 2 is proceeding much more quickly and hopefully soon I'll be able to add (temporary) debugging code both to a copy of upstream/master and to master to understand where the differences lie. Progress on 3 is difficult to measure before 1 and 2 are done.

Workaround: set SyzygyProbeLimitto 4 for a maximum search depth of 5(?). So now the SSCCE of the problem is:

setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 5
bench 128 1 1

Alternatively, comment out the first 25-ish FENs in benchmark.cpp (but not 8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1 and those following it) and do the following:

setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 4
bench 128 1 6

24071511266d984c50a9677551bf45ef8e09060d (revert) is the only known fix but there must be a simpler solution...

SSCCE (5-man syzygybases installed, Makefile has all variants disabled, expected functionality "do not segfault"):

  "8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1",
  "8/3k4/8/8/8/4B3/4KB2/2B5 w - - 0 1",    // draw
setoption name SyzygyPath value /home/lila/Stockfish/tb
setoption name SyzygyProbeLimit value 4
bench 128 1 6

just saw your debugging session on youtube. i wouldn't mind temporarily removing variant support for syzygy. i'll probably be able to reimplement it next week (after my final exams :smile:).

personally i am mostly intrested in keeping this alive because very similar code is used to serve tablebases on lichess.org.

Cool, and sorry to have made you endure that entire video! 馃槅 I've added a comment that the interesting part starts just before the 2-hour mark.

Best of luck with your final exams! I will gladly accept a PR reintroducing variant support for syzygy.

Thanks, and no worries, I made liberal use of the fast forward function. Assigning myself to this issue so I don't forget.

Shall we close #471 as it can be duplicate?

471 is a different issue. Here we temporarily removed support for all variants (except standard), even those that were previously supported.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Truthdoc picture Truthdoc  路  12Comments

ianfab picture ianfab  路  9Comments

niklasf picture niklasf  路  5Comments

ddugovic picture ddugovic  路  10Comments

ddugovic picture ddugovic  路  4Comments