Changes

Jump to: navigation, search

Syzygy Bases

40 bytes removed, 16:12, 19 April 2020
no edit summary
'''Syzygy Bases''', <ref>[http://www.talkchess.com/forum/viewtopic.php?t=47681&start=45 Re: New 6-piece tablebases] by [[Ronald de Man]], [[CCC]], April 10, 2013</ref><br/>
a compact six piece endgame database developed by [[Ronald de Man]], published on April 01, 2013. Since August 2018, '''seven piece''' Syzygy Bases are available after an effort by [[Bojun Guo]] started in March 2018 <ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=66797&start=472 Re: 7-men Syzygy attempt] by [[Bojun Guo]], [[CCC]], August 19, 2018 </ref>. Syzygy Bases consist of two sets of files, '''WDL''' files storing win/draw/loss information considering the [[Fifty-move Rule|fifty-move rule]] for access during [[Search|search]], and '''DTZ''' files with [[Endgame Tablebases#DTZ50|distance-to-zero]] information for access at the [[Root|root]]. The generator is released under the [[Free Software Foundation#GPL|GNU General Public License Version 2]], the [[Thread|thread safe]] probing code is released without restrictions <ref>[http://www.talkchess.com/forum/viewtopic.php?t=47681 New 6-piece tablebases] by [[Ronald de Man]], [[CCC]], April 01, 2013</ref> . As of February 2015, all 3-5 and most important 6-men Syzygy Bases are commercially available on 4 [https://en.wikipedia.org/wiki/DVD DVDs] by [[ChessBase]] as ''Endgame Turbo 4'' for their products [[Fritz|Deep Fritz 14]], [[Komodo#8|Komodo Chess 8]], [[Houdini|Houdini 4]] or [[ChessBase (Database)|ChessBase 12/13]] <ref>[http://shop.chessbase.com/en/products/endspiel_turbo_4 Endgame Turbo 4] by [[ChessBase]]</ref> <ref>[http://en.chessbase.com/post/syzygy-tablebases-newest-fastest-smallest Syzygy Tablebases: newest, fastest, smallest] by [[Albert Silver]], [[ChessBase|ChessBase News]], February 08, 2015</ref>.
=Data=
==File Types==
There are Syzygy Bases consist of two file types: sets of files, '''WDL ''' files (extension .rtbw) storing win/draw/loss information considering the [[Fifty-move Rule|fifty-move rule]] for access during [[Search|search]], and DTZ50 '''DTZ''' files (extension .rtbz)with [[Endgame Tablebases#DTZ50|distance-to-zero]] information for access at the [[Root|root]]. WDL has full data for two sides but DTZ50 omitted data of one side to save space. Each endgame has a pair of those types.
==File Sizes==
==Comparision==
Syzygy EGTB is significantly smaller than all [[DTM]] EGTBs. It is 7 times as small as Gaviota for 5 men, 8 times as small as Nalimov for 7 men, 8 times as small as Lomonosov for 7 men. However, when all DTM EGTBs have full data of two sides, Syzygy EGTB omits data of one side for DTZ data to save space. [[Ronald de Man]] estimated that if keep them all, the Syzygy's 6 men may increase 158 GB, become 307 GB in total, double on size, 4 times as small as Nalimov 5 men.
 
[[Ronald de Man]] in a reply to [[Pham Hong Nguyen|Nguyen Pham]], April 15, 2020 <ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=73598 Re: Almost perfect DTM tablebase] by [[Dann Corbit]], [[Computer Chess Forums|CCRL Discussion Board]], April 15, 2020</ref> :
Syzygy WDL is double sided, DTZ is single sided.
So to know whether a 7-piece position is winning, losing or drawn (or cursed), the engine needs to do only a single probe of a 7-piece WDL table. (It may in addition have to do some probes of 6-piece WDL tables if any direct captures are available.)
If the engine needs to know the DTZ value (which is only necessary when a TB root position has been reached), the probing code may have to do a 1-ply search to get to the "right" side of the DTZ table.
For 6-piece TBs, DTZ is 81.9GB when storing only the smaller side of each table. Storing both sides might require perhaps 240GB.
=Generation=
I create both WDL and DTZ in one go, so I don't use WDL in the creation of DTZ. The algorithm used is the [[Retrograde Analysis#Algorithm|grandfather algorithm]] with 2 plies per iteration (I think [[Harm Geert Muller|HGM]] calls this leapfrogging, but I might be wrong). I tried the outcounting method, but it didn't seem to be competitive (and it makes things more complicated). <ref>[http://www.open-chess.org/viewtopic.php?f=5&t=779 Retrograde tablebase methods] by [[Mark Watkins|BB+]], [[Computer Chess Forums|OpenChess Forum]], November 26, 2010</ref> <ref>[http://home.hccnet.nl/h.g.muller/EGT7/retro.html Leapfrog: Retrograde Analysis] from [http://home.hccnet.nl/h.g.muller/EGT7/7-men.html Leapfrog tablebase generator] by [[Harm Geert Muller]]</ref>
A pure WDL/DTZ pair is not of much use for creating WDL50+/DTZ50+. I create tables in RAM that have all the information necessary for WDL50+ and DTZ50+, then permute them to different indexing schemes and compress. I do test runs on subsets of the data to find good permutations. (The idea to try permutations is from [[Jesper Torp Kristensen|Jesper Torp Kristensen's]] master thesis.) <ref>[[Jesper Torp Kristensen]] ('''2005'''). ''[https://issuu.com/jespertk/docs/master_thesis Generation and compression of endgame tables in chess with fast random access using OBDDs]''. Master thesis, supervisor [[Mathematician#Miltersen|Peter Bro Miltersen]], [https://en.wikipedia.org/wiki/Aarhus_University Aarhus University]</ref> <ref>[https://en.wikipedia.org/wiki/Binary_decision_diagram OBDD - Ordered Binary Decision Diagram from Wikipedia]</ref>
 
[[Ronald de Man]] in a reply to [[Pham Hong Nguyen|Nguyen Pham]], April 15, 2020 <ref>[http://talkchess.com/forum3/viewtopic.php?f=7&t=73598 Re: Almost perfect DTM tablebase] by [[Dann Corbit]], [[Computer Chess Forums|CCRL Discussion Board]], April 15, 2020</ref> :
Syzygy WDL is double sided, DTZ is single sided.
So to know whether a 7-piece position is winning, losing or drawn (or cursed), the engine needs to do only a single probe of a 7-piece WDL table. (It may in addition have to do some probes of 6-piece WDL tables if any direct captures are available.)
If the engine needs to know the DTZ value (which is only necessary when a TB root position has been reached), the probing code may have to do a 1-ply search to get to the "right" side of the DTZ table.
For 6-piece TBs, DTZ is 81.9GB when storing only the smaller side of each table. Storing both sides might require perhaps 240GB.
 
=Endgame News=

Navigation menu