X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=Readme.md;h=319bca8cc8da1f1829df8b7d2dacd52f023e110d;hp=ce6f2653b4dede3d0a5151726c410146697a94b2;hb=9b4e123fbee44b0dc5d6aba497e5e70d165f576c;hpb=ccf59b02281a0f498faa90647c66666ca3eac445 diff --git a/Readme.md b/Readme.md index ce6f2653..319bca8c 100644 --- a/Readme.md +++ b/Readme.md @@ -7,11 +7,13 @@ Partner or Fritz) in order to be used comfortably. Read the documentation for your GUI of choice for information about how to use Stockfish with it. -This version of Stockfish supports up to 128 CPUs. The engine defaults +This version of Stockfish supports up to 128 cores. The engine defaults to one search thread, so it is therefore recommended to inspect the value of the *Threads* UCI parameter, and to make sure it equals the number of CPU cores on your computer. +This version of Stockfish has support for Syzygybases. + ### Files @@ -22,19 +24,59 @@ This distribution of Stockfish consists of the following files: * Copying.txt, a text file containing the GNU General Public License. * src, a subdirectory containing the full source code, including a Makefile - that can be used to compile Stockfish on Unix-like systems. For further - information about how to compile Stockfish yourself read section below. + that can be used to compile Stockfish on Unix-like systems. + + +### Syzygybases + +**Configuration** + +Syzygybases are configured using the UCI options "SyzygyPath", +"SyzygyProbeDepth", "Syzygy50MoveRule" and "SyzygyProbeLimit". + +The option "SyzygyPath" should be set to the directory or directories that +contain the .rtbw and .rtbz files. Multiple directories should be +separated by ";" on Windows and by ":" on Unix-based operating systems. +**Do not use spaces around the ";" or ":".** + +Example: `C:\tablebases\wdl345;C:\tablebases\wdl6;D:\tablebases\dtz345;D:\tablebases\dtz6` + +It is recommended to store .rtbw files on an SSD. There is no loss in +storing the .rtbz files on a regular HD. + +Increasing the "SyzygyProbeDepth" option lets the engine probe less +aggressively. Set this option to a higher value if you experience too much +slowdown (in terms of nps) due to TB probing. + +Set the "Syzygy50MoveRule" option to false if you want tablebase positions +that are drawn by the 50-move rule to count as win or loss. This may be useful +for correspondence games (because of tablebase adjudication). - * polyglot.ini, for using Stockfish with Fabien Letouzey's PolyGlot - adapter. +The "SyzygyProbeLimit" option should normally be left at its default value. +**What to expect** +If the engine is searching a position that is not in the tablebases (e.g. +a position with 7 pieces), it will access the tablebases during the search. +If the engine reports a very large score (typically 123.xx), this means +that it has found a winning line into a tablebase position. -### Opening books +If the engine is given a position to search that is in the tablebases, it +will use the tablebases at the beginning of the search to preselect all +good moves, i.e. all moves that preserve the win or preserve the draw while +taking into account the 50-move rule. +It will then perform a search only on those moves. **The engine will not move +immediately**, unless there is only a single good move. **The engine likely +will not report a mate score even if the position is known to be won.** -This version of Stockfish has support for PolyGlot opening books. For -information about how to create such books, consult the PolyGlot -documentation. The book file can be selected by setting the *Book File* -UCI parameter. +It is therefore clear that behaviour is not identical to what one might +be used to with Nalimov tablebases. There are technical reasons for this +difference, the main technical reason being that Nalimov tablebases use the +DTM metric (distance-to-mate), while Syzygybases use a variation of the +DTZ metric (distance-to-zero, zero meaning any move that resets the 50-move +counter). This special metric is one of the reasons that Syzygybases are +more compact than Nalimov tablebases, while still storing all information +needed for optimal play and in addition being able to take into account +the 50-move rule. ### Compiling it yourself