Syzygy Bases

Home * Knowledge * Endgame Tablebases * Syzygy Bases



Syzygy Bases, a compact six piece endgame database developed by Ronald de Man, published April 01, 2013, but not as April Fool. Syzygy Bases consist of two sets of files, WDL files storing win/draw/loss information considering the fifty-move rule for access during search, and DTZ files with distance-to-zero information for access at the root. The generator is released under the GNU General Public License Version 2, the thread safe probing code is released without restrictions. As of February 2015, all 3-5 and most important 6-men Syzygy Bases are commercially available on 4 DVDs by ChessBase as Endgame Turbo 4 for their products Deep Fritz 14, Komodo Chess 8, Houdini 4 or ChessBase 12/13.

=File Sizes=

The additional use of Haswell's BMI2 Parallel Bits Deposit (PDEP) and Parallel Bits Extract (PEXT) instructions, or their slower serial implementations, allows further size reduction.

Generation of 7-men tablebases would require about 1 TB of RAM. Generation time will be about 64 x per table, which means around 175 x time total. Ronald de Man isn't interested in creation of 7-men Syzygy.

=During the Search= During the search, with the WDL tables stored on SSD, it is possible to probe the tables at all depths without much slowdown. They have been tested in Ronald de Man's engine Sjaak (playing on FICS as TrojanKnight(C)) a couple of months quite successfully, don't probing in quiescence search.

=At the Root= At the root, since pure DTZ50-optimal play (i.e. minimaxing the number of moves to the next capture or 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 and monitoring the halfmove clock).

=Quotes= by Ronald de Man in a reply to Guy Haworth, April 06, 2013 : 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 grandfather algorithm with 2 plies per iteration (I think 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). 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's master thesis.)

=Endgame News= In his 2014 Chess Endgame News in ICGA Journal, Vol. 37, No. 2, Guy Haworth classified Syzygy Bases as new data in three ways:
 * 1) 5-valued scale for evaluating positions in the context of the FIDE 50-move rule (50mr) which constrains the length of phases of play
 * 2) +2 ≡ unconditional win for the side to move
 * 3) +1 ≡ ‘win’ which can be frustrated by best play and a 50mr draw-claim
 * 4) _ 0 ≡ unconditional draw
 * 5) -1 ≡ ‘loss’ saved by a 50mr draw-claim
 * 6) -2 ≡ unconditional loss
 * 7) depths for ‘50mr draw’ positions with value ±1
 * 8) 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 MD5 to check the EGT integrity. =Fathom= Fathom is a stand-alone Syzygy based probing tool and API by Basil Falcinelli, introduced in November 2015 along with his Gull 3 release. Unlike the original tbprobe code, Fathom does not necessarily require the callee to provide move generation functionality. The new modifications and extensions to Ronald de Man's original code which can be "redistributed and/or modified without restrictions", are released under the permissive MIT License. The API consists of three functions :
 * tb_init initializes the tablebase
 * tb_probe_wdl probes the Win-Draw-Loss (WDL) table for a given position
 * tb_probe_root probes the Distance-To-Zero (DTZ) table for the given position.

Jon Dart has a fork of Fathom with some bug fixes and enhancements.

=See also=
 * Bitbases
 * Edwards' Tablebases
 * Gaviota Tablebases
 * Lomonosov Tablebases
 * Nalimov Tablebases
 * python-chess
 * Scorpio Bitbases
 * Thompson's Databases

=Publications=
 * Guy Haworth (2014). Chess Endgame News. ICGA Journal, Vol. 37, No. 1
 * Guy Haworth (2014). Chess Endgame News. ICGA Journal, Vol. 37, No. 2
 * Guy Haworth (2014). Chess Endgame News. ICGA Journal, Vol. 37, No. 3 » Fritz 14

=Forum Posts=

2013 ...
2014
 * New 6-piece tablebases by Ronald de Man, CCC, April 01, 2013
 * New 6-piece tablebase generator by syzygy, CCRL Discussion Board, April 01, 2013
 * Re: PEXT Bitboards by Ronald de Man, CCC, June 07, 2013 » BMI2 - PDEP, BMI2 - PEXT
 * Syzygy EGTB's via Torrent Thread by Joshua Shriver, CCC, September 11, 2013
 * Syzygy tablebases, work in Stockfish? by Jose Mº Velasco, CCC, September 23, 2013 » Stockfish
 * Building Syzygy bases by higgs, Rybka Forum, October 12, 2013
 * tablebase caching / mmap / page cache by Ronald de Man, CCC, October 13, 2013 » Memory
 * Syzygy endgame tables: Generation and first impressions by Mike Scheidl, CCC, October 15, 2013
 * deMan TB Path and Cache by Matthias Gemuh, CCC, October 19, 2013
 * syzygy TB (3-4-5 men only) download link ? by MarshallArts, Rybka Forum, October 21, 2013
 * rkiss and other dependencies in syzygy by Don Dailey, CCC, October 23, 2013
 * Syzygy / egbb discussion by Daniel Shawul, CCC, October 23, 2013 » Scorpio Bitbases
 * Manual: How to use Syzygy (or any other) 6-men without SSD by Milos Stanisavljevic, CCC, November 16, 2013
 * potential deadlock in syzygy reference implementation by Richard Vida, CCC, November 23, 2013
 * Re: A note for C programmers by Marcel van Kervinck, CCC, November 27, 2013
 * Stockfish Syzygy: how to interpret mates? by Jouni Uski, CCC, December 01, 2013 » Stockfish, Mate Scores
 * Problem with 6-piece syzygy-bases using wine by Bernhard Bauer, CCC, December 05, 2013
 * ChessGUI 0.245f is available by Matthias Gemuh, CCC, December 14, 2013 » ChessGUI
 * Syzygybases suitable for win32-systems? by Norbert Raimund Leisner, CCC, December 17, 2013
 * Syzygy Tablebases list of importance by chri$, OpenChess Forum, December 21, 2013
 * Syzygy options by Harm Geert Muller, CCC, December 27, 2013
 * Ideal Syzygy Probe Depth ? (using SSD) by Anil V Dharan, CCC, January 14, 2014
 * SYZYGY Base question by Ingo Bauer, CCC, January 19, 2014
 * problem with syzygy tablebases by Youri Matiounine, CCC, February 01, 2014
 * Performance of Syzygy and Scorpio by Kai Laskos, CCC, February 04, 2014 » Scorpio Bitbases
 * A question about syzygy by Enrico Tognoni, CCC, February 26, 2014
 * A question about syzygy 6 men and partial use by Enrico Tognoni, CCC, February 26, 2014
 * Syzygy on RAM Drive by Kai Laskos, CCC, May 23, 2014 » Stockfish, Komodo 7, Houdini 4
 * Re: Syzygy tb generator for windows by syzygy, CCRL Discussion Board, June 01, 2014
 * Question about syzygy bases by Gabor Szots, CCC, June 02, 2014
 * Re: 7-piece syzygy by syzygy, CCRL Discussion Board, July 03, 2014
 * Question on Stockfish and SyzygyCache UCI option by Erfuk Neuni, CCC, December 07, 2014
 * USB 3 Storage for Syzygy WDL files by Louis Zulli, CCC, December 13, 2014 » USB 3.0

2015 ...
2016
 * Komodo 8 - 5-men Syzygy tablebases by Andreas Strangmüller, CCC, January 10, 2015 » Komodo 8
 * Problem with SF6 and Syzygy TB by Forrest Hoch, CCC, April 01, 2015 » Stockfish
 * SD Syzygy by Ted Summers, CCC, April 26, 2015
 * 5 men Syzygy on USB 3.0 Flash Drive by Kai Laskos, CCC, May 09, 2015
 * Re: how to probe egtb from console? by Ronald de Man, CCC, May 15, 2015 » python-chess
 * Gull 3 Linux+Syzygy and Fathom released by Basil Falcinelli, CCC, November 20, 2015 » GullChess, Fathom
 * Syzygy probing code: DTZ in some cursed endgames off by one? by Niklas Fiekas, CCC, December 06, 2015
 * Re: Squash anyone? by Ronald de Man, CCC, February 07, 2016
 * My troubles with MultiPV and Syzygy in Stockfish 7 by Árpád Rusz, CCC, February 16, 2016
 * Stockfish 7 and partial 6 piece syzygy problem? by Jouni Uski, CCC, March 01, 2016 » Stockfish
 * Re: Stockfish 7 and partial 6 piece syzygy problem? by Marco Costalba, CCC, September 01, 2016

2017 2018
 * Arasan Syzygy support (working with Windows, too) by Jon Dart, CCC, March 10, 2016 » Arasan
 * Question to syzygy author by Marco Costalba, CCC, April 24, 2016
 * syzygy question by Robert Hyatt, CCC, May 04, 2016
 * question about syzygy probing by Marco Belli, CCC, May 21, 2016
 * Natural TB by Marco Costalba, CCC, May 29, 2016 » Stockfish
 * syzygy questions by Robert Hyatt, CCC, July 06, 2016
 * How texel probes endgame tablebases by Peter Österlund, CCC, July 16, 2016 » Gaviota Tablebases, Texel
 * Syzygy and draw by repetition by Jon Dart, CCC, July 22, 2016 » Draw, Repetitions
 * Syzygy question by J. Wesley Cleveland, CCC, September 03, 2016
 * Suicide chess tablebases (stalemated player wins) by Niklas Fiekas, CCC, October 25, 2016 » Losing Chess
 * Syzygy tablebases by Andy Leese, CCC, December 01, 2016
 * Help for Syzygy probe? by Ted Wong, CCC, December 04, 2016 » Fathom
 * 6-men Syzygy from HDD and USB 3.0 by Kai Laskos, CCC, April 04, 2017 » Komodo, Playing Strength, USB 3.0
 * Fathom memory usage by Álvaro Begué, CCC, June 22, 2017» Fathom
 * RuyDos with support for syzygy tablebases by Álvaro Begué, CCC, June 23, 2017 » RuyDos
 * Natural TB (take 2) by Marco Costalba, CCC, August 22, 2017 » Stockfish
 * Probing tablebases through USB 3.0 by Jon Fredrik Åsvang, CCC, September 25, 2017 » USB 3.0
 * understanding DTZ by Alexandru Mosoi, CCC, October 06, 2017 » DTZ, Fathom
 * Is there now coming changes to syzygy databases? by Jouni Uski, CCC, November 13, 2017 » DTM, CFish
 * How to Download Syzygy Endgame Tablebase Files by Daniel Johnson, CCC, December 23, 2017
 * The history of Syzygy tablebases by Isaac Haïk Dunn, CCC, March 06, 2018
 * 7-men Syzygy attempt by Bojun Guo, CCC, March 10, 2018
 * Syzygy implementations of top engines by Kai Laskos, CCC, March 14, 2018
 * Probing the Syzygy tablebase - beginners question by Andreas Matthies, CCC, April 16, 2018

=External Links=

Tablebase

 * syzygy1/tb · GitHub by Ronald de Man
 * jromang · GitHub by Jean-Francois Romang has a fork from syzygy1/tb
 * python-chess/syzygy.py at master · niklasf/python-chess · GitHub by Niklas Fiekas, Python implementation of probing code » python-chess
 * niklasf/syzygy-tables.info · GitHub by Niklas Fiekas, GUI and public API for Syzygy probing
 * Syzygy endgame tablebases Web Interface - Syzygy online lookup
 * OICS Chess and EGTB Tracker Statistics by Joshua Shriver
 * Endgame Tablebases Online by Kirill Kryukov
 * Index of /tablebases/syzygy (3,4,5) by kingliveson
 * tablebase.sesse.net by Sesse

Fathom

 * GitHub - basil00/Fathom: Syzygy TB probe tool by Basil Falcinelli
 * jdart1/Fathom · GitHub by Jon Dart (with some bug fixes and enhancements)

ChessBase

 * Syzygy Tablebases: newest, fastest, smallest by Albert Silver, ChessBase News, February 08, 2015
 * Syzygy tablebases: maximizing performance by Albert Silver, ChessBase News, February 10, 2015
 * Endgame Turbo 4 by ChessBase

Misc

 * syzygy - Wiktionary
 * Syzygy (disambiguation) from Wikipedia
 * Syzygy (astronomy) from Wikipedia
 * Syzygy (mathematics) from Wikipedia
 * Caledonian Antisyzygy from Wikipedia
 * Michael Brecker Band - Syzygy, August 16, 1987 at Newport Jazz Festival, YouTube Video
 * Michael Brecker, Mike Stern, Jeff Andrews, Adam Nussbaum, Joey Calderazzo

=References=

Up one level