X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=polyglot.man;h=9d456f66326438badfacb360c2a41d0f28ace7e3;hb=cb9522491af43508c47cb927247e3b5769b9259b;hp=e6d0ca80f9abab0cc05a51b1b95b8e7f1651c1b1;hpb=6442b61046f46f65bfc4bf0b3727abe2dc27acb8;p=polyglot.git diff --git a/polyglot.man b/polyglot.man index e6d0ca8..9d456f6 100644 --- a/polyglot.man +++ b/polyglot.man @@ -129,24 +129,26 @@ .\" ======================================================================== .\" .IX Title "POLYGLOT 6" -.TH POLYGLOT 6 "2009-01-14" "" "" +.TH POLYGLOT 6 "2009-09-01" "" "" .SH "NAME" PolyGlot \- Winboard protocol to UCI protocol adapter \- book engine for Polyglot books - \- a collection of utilities for creating opening books + \- a collection of utilities for creating and analyzing opening books \- a utility for analyzing epd files \- a perft counter .SH "SYNOPSIS" .IX Header "SYNOPSIS" -polyglot [configfile] -.PP -polyglot \-ec engine +polyglot [configfile] [\-noini] [\-ec engine] [\-ed enginedirectory] [\-en enginename] [\-log] [\-lf logfile] [\-hash value] [\-bk book] [\-pg =]* [\-uci =]* .PP polyglot make-book [\-pgn inputfile] [\-bin outputfile] [\-max\-ply ply] [\-min\-game games] [\-min\-score score] [\-only\-white] [\-only\-black] [\-uniform] .PP polyglot merge-book \-in1 inputfile1 \-in2 inputfile2 [\-out outputfile] .PP -polyglot [configfile] epd-test [\-epd inputfile] [\-min\-depth depth] [\-max\-depth depth] [\-max\-time time] [\-depth\-delta delta] +polyglot info-book [\-bin inputfile] [\-exact] +.PP +polyglot dump-book [\-bin inputfile] \-color color [\-out outputfile] +.PP +polyglot [configfile] epd-test [engineoptions] [\-epd inputfile] [\-min\-depth depth] [\-max\-depth depth] [\-max\-time time] [\-depth\-delta delta] .PP polyglot perft [\-fen fen] [\-max\-depth depth] .SH "DESCRIPTION" @@ -200,7 +202,33 @@ Other opening book formats such as ChessBase's .ctg format and Arena's by their own GUIs. .PP PolyGlot can compile a pgn file into a binary PolyGlot book and furthermore -it can merge two such binary books into a third one. +it can merge two such binary books into a third one. +.PP +PolyGlot can also extract some useful information from PolyGlot books. The utility +\&\*(L"dump\-book\*(R" dumps the \*(L"lines\*(R" in a book for a given color. By definition +a line is a sequence of moves (from the starting position) in which +the given color makes only book moves and the other color makes +arbitrary moves (i.e. not necessarily book moves). +.PP +Since a PolyGlot book is built up from positions and not lines there +may be (and there usually are) many positions in the book that are not +on a \*(L"line\*(R" as defined in the previous paragraph. It is convenient +to call such positions \*(L"isolated\*(R" positions. The utility \*(L"info\-book\*(R" +counts such isolated positions. +.PP +Some of the isolated positions are provably unreachable and they +could in principle be deleted from the book. For example if a book +contains only the move \*(L"e4\*(R" in the starting position but also the +position after \*(L"d4 d5\*(R" then this last position is provably unreachable +since it requires white to make a non-book move when a book move is +available. Such situations arise frequently from the priority rules +in merging books. +.PP +Unfortunately not all isolated positions are provably unreachable and +it is difficult to identify the latter. If invoked with \*(L"\-exact\*(R" the +utility info-book will attempt to count the isolated positions which +require a player to make a non-book move when a book move is available. +Due to the possibility of transpositions this is not a fool proof method. .Sh "Epd test mode" .IX Subsection "Epd test mode" In epd test mode, PolyGlot will search positions in an epd file and @@ -213,16 +241,46 @@ up to a given depth. PolyGlot can perform such perft counts. It is however much slower than other more dedicated programs. .SH "OPTIONS" .IX Header "OPTIONS" -When invoked without options or with a config file as argument PolyGlot -acts as an adapter. The config file format is documented below. The -default config file is \*(L"polyglot.ini\*(R". -.PP -When invoked as -.Sh "polyglot \-ec engine" -.IX Subsection "polyglot -ec engine" -PolyGlot simply starts \*(L"engine\*(R" and acts as an adapter. No config file -is used and thus it is expected that all properties will be set by the -\&\s-1GUI\s0. +When PolyGlot is invoked as an adapter of in epd-test mode it gets its +options from a config file and then from the command line. The +default config file is \*(L"polyglot.ini\*(R" but an alternative one may be +optionally included as first argument. The config file format is +described below. +.PP +The following engine options may be specified on the command line. +.IP "\fB\-noini\fR" 4 +.IX Item "-noini" +Do not use a config file, even if one was specified on the command line. +.IP "\fB\-pg\fR" 4 +.IX Item "-pg" +The argument is a string of the form =. This option will +set the Polyglot option to . +.IP "\fB\-uci\fR" 4 +.IX Item "-uci" +The argument is a string of the form =. This option will +set the engine option to . +.IP "\fB\-ec\fR" 4 +.IX Item "-ec" +This is an alias for \-pg \*(L"EngineCommand=\*(R". +.IP "\fB\-ed\fR" 4 +.IX Item "-ed" +This is an alias for \-pg \*(L"EngineDir=\*(R". +.IP "\fB\-en\fR" 4 +.IX Item "-en" +This is an alias for \-pg \*(L"EngineName=\*(R" +.IP "\fB\-hash\fR" 4 +.IX Item "-hash" +This is an alias for \-uci \*(L"Hash=\*(R". +.IP "\fB\-log\fR" 4 +.IX Item "-log" +This is an alias for \-pg \*(L"Log=true\*(R". +.ie n .IP "\fB\-lf\fR (default: ""polyglot.log"")" 4 +.el .IP "\fB\-lf\fR (default: ``polyglot.log'')" 4 +.IX Item "-lf (default: polyglot.log)" +This is an alias for \-pg \*(L"LogFile=\*(R". +.IP "\fB\-bk\fR" 4 +.IX Item "-bk" +This is an alias for \-pg \*(L"Book=true\*(R" \-pg \*(L"BookFile=\*(R". .PP When invoked as .Sh "polyglot make-book" @@ -277,11 +335,40 @@ Input files are not symmetrical, \*(L"in1\*(R" has priority over \*(L"in2\*(R". words when a position occurs both in \*(L"in1\*(R" and \*(L"in2\*(R" only the moves and weights from \*(L"in1\*(R" will be retained in \*(L"out\*(R". .PP +When invoked +as +.Sh "polyglot dump-book" +.IX Subsection "polyglot dump-book" +PolyGlot supports the following options +.IP "\fB\-bin\fR (default: book.bin)" 4 +.IX Item "-bin (default: book.bin)" +Input file in PolyGlot book format. +.IP "\fB\-color\fR" 4 +.IX Item "-color" +The color for whom to generate the lines. +.IP "\fB\-out\fR (default: book_.txt)" 4 +.IX Item "-out (default: book_.txt)" +The name of the output file. +.PP +When invoked +as +.Sh "polyglot info-book" +.IX Subsection "polyglot info-book" +PolyGlot supports the following options +.IP "\fB\-bin\fR (default: book.bin)" 4 +.IX Item "-bin (default: book.bin)" +Input file in PolyGlot book format. +.IP "\fB\-exact\fR" 4 +.IX Item "-exact" +Attempt to count the provably unreachable positions among the isolated ones. +Note that this takes a very long time. +.PP When invoked as .Sh "polyglot epd-test" .IX Subsection "polyglot epd-test" -(possibly with a config file as first argument) PolyGlot supports the following -options +(possibly with a config file as first argument) PolyGlot supports +besides the generic options described above the following additional +options. .IP "\fB\-max\-depth\fR (default: 63)" 4 .IX Item "-max-depth (default: 63)" Unconditionally stop the search when this depth has @@ -291,8 +378,9 @@ been reached. Unconditionally stop the seach after this amount of time. .IP "\fB\-depth\-delta\fR (default: 3)" 4 .IX Item "-depth-delta (default: 3)" -Stop the search if the best move has been constant for this many depths, -on condition that the mininal depth and minimal time have been reached. +Stop the search if the solution as been found and the best move has +been constant for this many depths, on condition that the mininal +depth and minimal time have been reached. .IP "\fB\-min\-depth\fR (default: 8)" 4 .IX Item "-min-depth (default: 8)" Minimal search depth when the search is stopped using \*(L"\-depth\-delta\*(R". @@ -326,10 +414,12 @@ The config file is in the traditional \s-1INI\s0 format. \& ... .Ve .PP -Lines starting with \*(L"#\*(R" are ignored. +The characters \*(L"#\*(R" and \*(L";\*(R" serve as comment characters. .PP -\&\s-1NOTE:\s0 There can be spaces in option names or values. Do not use -quotes. Boolean values are written as \*(L"true\*(R" or \*(L"false\*(R". +By default initial and final white space is stripped from option +values. If you want to avoid this, or if you want use one of +the comment characters # or ; in option values (such as for NalimovPath), +enclose the value in quotes. .Sh "[PolyGlot] section" .IX Subsection "[PolyGlot] section" This section is used by PolyGlot only. The engine is unaware of these @@ -382,6 +472,9 @@ This is the score in centipawns that will trigger resign \*(L"counting\*(R". .IX Item "ShowPonder (default: true)" Show search information during engine pondering. Turning this off might be better for interactive use in some interfaces. +.IP "\fBScoreWhite\fR (default: true)" 4 +.IX Item "ScoreWhite (default: true)" +Report score from white's point of view in xboard mode. .IP "\fBKibitzMove\fR (default: false)" 4 .IX Item "KibitzMove (default: false)" Whether to kibitz when playing a move. @@ -398,15 +491,16 @@ or \*(L"tellothers\*(R" for whispering. How many seconds to wait before starting kibitzing. This has an effect only if \*(L"KibitzPV\*(R" is selected, move kibitzes are always sent regardless of the delay. +.IP "\fBKibitzInterval\fR (default: 0)" 4 +.IX Item "KibitzInterval (default: 0)" +This is another form of throttling. PolyGlot will usually wait this +many seconds before doing the next kibitz. .IP "\fB\s-1UCI\s0\fR (default: false)" 4 .IX Item "UCI (default: false)" If true PolyGlot will not understand xboard commands. -.IP "\fBChess960\fR (default: false)" 4 -.IX Item "Chess960 (default: false)" -Play Chess960 (also called Fischer Random Chess or \s-1FRC\s0), .IP "\fBMateScore\fR (default: 10000)" 4 .IX Item "MateScore (default: 10000)" -Mate score reported to \s-1GUI\s0 when in xboard mode. +Mate score reported to \s-1GUI\s0 when in xboard mode. .IP "\fBBook\fR (default: false)" 4 .IX Item "Book (default: false)" Indicates whether a PolyGlot book should be used. This has no effect @@ -426,10 +520,16 @@ does not matter. .IX Item "BookRandom (default: true)" Select moves according to their weights in the book. If false the move with the highest weight is selected. -.IP "\fBBookLearn\fR (default: false)" 4 -.IX Item "BookLearn (default: false)" -Record learning information in the opening book. Naturally this requires -the opening book to be writable. +.IP "\fBBookRandom\fR (default: true)" 4 +.IX Item "BookRandom (default: true)" +Select moves according to their weights in the book. If false the move +with the highest weight is selected. +.IP "\fBBookDepth\fR (default: 256)" 4 +.IX Item "BookDepth (default: 256)" +Stop using the book after this number of moves. +.IP "\fBBookTreshold\fR (default: 5)" 4 +.IX Item "BookTreshold (default: 5)" +Do not play moves with a weight (probability) lower than this (in per mil). .IP "\fBUseNice\fR (default: false)" 4 .IX Item "UseNice (default: false)" Run the engine at nice level 5, or \*(L"NiceValue\*(R" if it set. On some @@ -445,12 +545,22 @@ Win32 priority levels are mapped in a sensible way to Unix nice levels. .IX Item "Affinity (default: -1)" This a bit vector in which each bit represents the processors that a process is allowed to run on. This option works only on Windows. +.IP "\fBPersist\fR (default: true)" 4 +.IX Item "Persist (default: true)" +If true then PolyGlot will implement persistence by loading +options from an additional \s-1INI\s0 file which is specified by the option +\&\*(L"PersistFile\*(R". At exit PolyGlot will also save its options to this \s-1INI\s0 +file. +.IP "\fBPersistFile\fR (default: PG_.ini)" 4 +.IX Item "PersistFile (default: PG_.ini)" +The name of the file from which to take the additional options. +You can safely edit this file, or delete it to restore the default +options. .Sh "Work arounds" .IX Subsection "Work arounds" Work arounds are identical to options except that they should be used only when necessary. Their purpose is to try to hide problems with -various software (not just engines). The default value is always -correct for bug-free software. +various software (not just engines). .PP \&\s-1IMPORTANT:\s0 Any of these work arounds might be removed in future versions of PolyGlot. You are strongly recommended to contact the @@ -483,9 +593,24 @@ incorrect form (and of course promotes into a queen). .IX Item "RepeatPV (default: true)" When true, PolyGlot repeats the last pv string (which also contains score,depth and time usage) it got from the engine. Some engines -however do not send a new pv string just before sending the move and -the now old pv string might confuse debugtools that parse the winboard -debug files. +however do not send a new pv string just before sending the move. +In that case the output of PolyGlot would be inconsistent. +When RepeatPV is false PolyGlot does not repeat the last pv string. +Due to the way kibitzing is implemented, KibitzMove is disabled in that case. +.IP "\fBWbWorkArounds\fR (default: true)" 4 +.IX Item "WbWorkArounds (default: true)" +The intention of these options is to provide work arounds for +xboard/winboard bugs should they arise. This one decapitalizes +the word Draw in options that contain this word. Some versions of +xboard/winboard contain a bug which causes such options to be +interpreted as draw claims by the engine. +.Sp +Engines that send options with \*(L"Draw\*(R" in their name are Rybka and \s-1HIARCS\s0. +.IP "\fBWbWorkArounds2\fR (default: false)" 4 +.IX Item "WbWorkArounds2 (default: false)" +Old version of Winboard clear the engine output window at depth 1. With this +work around \s-1PG\s0 will send info lines at depth >=2. This may or may not improve +the display. .Sh "[Engine] section" .IX Subsection "[Engine] section" This section contains engine \s-1UCI\s0 options. PolyGlot does not @@ -521,25 +646,38 @@ most 30 plies. \& polyglot make\-book \-pgn games.pgn \-bin book.bin \-max\-ply 30 .Ve .PP -Merge books \*(L"in1.bin\*(R" and \*(L"in2.bin\*(R" into a book \*(L"out.bin\*(R". +Merge books \*(L"w1.bin\*(R" and \*(L"w2.bin\*(R" into a book \*(L"w.bin\*(R". .PP .Vb 1 \& polyglot merge\-book \-in1 w1.bin \-in2 w2.bin \-out w.bin .Ve .PP -The command line for using the \s-1UCI\s0 engine \*(L"fruit\*(R" in a \s-1GUI\s0 which uses the -xboard protocol. +Inspect lines for white in \*(L"w.bin\*(R" +.PP +.Vb 1 +\& polyglot dump\-book \-bin w.bin \-color white \-out w_white.txt +.Ve +.PP +Test epd file \*(L"test.epd\*(R" with a (maximum) search time of 7 minutes per position +.PP +.Vb 1 +\& polyglot epd\-test \-epd test.epd \-max\-time 420 +.Ve +.PP +The command line for using the \s-1UCI\s0 engine \*(L"fruit\*(R" with 128M hash in xboard with logging enabled. .PP .Vb 1 -\& polyglot \-ec fruit +\& xboard \-fcp "polyglot \-noini \-log \-ec fruit \-hash 128" .Ve .PP -The equivalent config file: +The equivalent config file would be: .PP -.Vb 3 +.Vb 5 \& [PolyGlot] \& EngineCommand = fruit +\& Log = true \& [Engine] +\& Hash=128 .Ve .SH "EXIT STATUS" .IX Header "EXIT STATUS"