Changes

Jump to: navigation, search

Syzygy Bases

1 byte added, 16:28, 19 April 2020
no edit summary
==At the Root==
At the [[Root|root]], since pure DTZ50-optimal play (i.e. minimaxing the number of moves to the next [[Captures|capture]] or [[Pawn Push|pawn move]] by either side) can be very unnatural, it might be desirable to let the engine search on the winning moves until it becomes clear that insufficient progress is being made and only then switch to DTZ-optimal play (e.g. by detecting [[Repetitions|repetitions]] and monitoring the [[Halfmove Clock|halfmove clock]]) <ref>[http://www.talkchess.com/forum/viewtopic.php?t=47681&start=8 Re: New 6-piece tablebases] by [[Ronald de Man]], [[CCC]], April 05, 2013</ref>.
 
 
=Quotes=
by [[Ronald de Man]] in a reply to [[Guy Haworth]], April 06, 2013 <ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=6971&start=6 Re: New 6-piece tablebase generator] by [[Ronald de Man|syzygy]], [[Computer Chess Forums|CCRL Discussion Board]], April 06, 2013</ref> :
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=
In his 2014 ''Chess Endgame News'' in [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]] <ref>[[Guy Haworth]] ('''2014'''). ''Chess Endgame News''. [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]]</ref> , [[Guy Haworth]] classified Syzygy Bases as '''new''' data in '''three''' ways:
# 5-valued scale for evaluating positions in the context of the [[FIDE]] [[Fifty-move Rule|50-move rule]] (50mr) which constrains the length of phases of play
## +2 ≡ unconditional win for the side to move
## +1 ≡ ‘win’ which can be frustrated by best play and a 50mr draw-claim
## <span style="color: #ffffff;">_</span>0 ≡ unconditional draw
## -1 ≡ ‘loss’ saved by a 50mr draw-claim
## -2 ≡ unconditional loss
# depths for ‘50mr draw’ positions with value ±1
# depths in symmetric, information-preserving ply ‘p’
 
and further gives some news about early software bugs and glitches concerning [[ChessBase]] products, and the importance of [https://en.wikipedia.org/wiki/MD5 MD5] to check the EGT integrity.
<span id="Fathom"></span>
[[Jon Dart]] has a fork of Fathom with some bug fixes and enhancements <ref>[https://github.com/jdart1/Fathom jdart1/Fathom · GitHub] by [[Jon Dart]]</ref>, also supporting 7-man <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=70568 7-man Syzygy support in Fathom] by [[Jon Dart]], [[CCC]], April 23, 2019</ref>.
.
 
 
=Quotes=
by [[Ronald de Man]] in a reply to [[Guy Haworth]], April 06, 2013 <ref>[http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?f=6&t=6971&start=6 Re: New 6-piece tablebase generator] by [[Ronald de Man|syzygy]], [[Computer Chess Forums|CCRL Discussion Board]], April 06, 2013</ref> :
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=
In his 2014 ''Chess Endgame News'' in [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]] <ref>[[Guy Haworth]] ('''2014'''). ''Chess Endgame News''. [[ICGA Journal#37_2|ICGA Journal, Vol. 37, No. 2]]</ref> , [[Guy Haworth]] classified Syzygy Bases as '''new''' data in '''three''' ways:
# 5-valued scale for evaluating positions in the context of the [[FIDE]] [[Fifty-move Rule|50-move rule]] (50mr) which constrains the length of phases of play
## +2 ≡ unconditional win for the side to move
## +1 ≡ ‘win’ which can be frustrated by best play and a 50mr draw-claim
## <span style="color: #ffffff;">_</span>0 ≡ unconditional draw
## -1 ≡ ‘loss’ saved by a 50mr draw-claim
## -2 ≡ unconditional loss
# depths for ‘50mr draw’ positions with value ±1
# depths in symmetric, information-preserving ply ‘p’
 
and further gives some news about early software bugs and glitches concerning [[ChessBase]] products, and the importance of [https://en.wikipedia.org/wiki/MD5 MD5] to check the EGT integrity.
<span id="Fathom"></span>
 
=See also=

Navigation menu