Poly 1.6

Simplified

Poly 1.6

This page is about POLY 1.6, a continuation on the 5 first versions. After intensive testing we concluded that from all the options available from version 1.2 and 1.5 the WLD (win|loss|draw) approach gives the best results. With version 1.6 we like to present a number of (reasonable well) tuned polyglot opening books included in the download.


For this purpose (from MillionBase 3.45) we created 5 regular polyglot books based on a minimum human elo of: elo2500, elo2600, elo2650, elo2700, elo2750 and 1 polyglot book from CCRL 40/15 games played by engines with a minimum elo of 3300. Six matches of each 5000 games with the new Stockfish 12 should give us insight which book scores best. For reference we use the last handcrafted ProDeo book from Jeroen Noomen.

Poly 1.6 book matches vs ProDeo book

Book

WDL factor

Games

Score

ELO

elo-2500

250

5000

53.6%

+26

elo-2600

250

5000

55.1%

+35

elo-2650

250

5000

56.1%

+42

elo-2700

250

5000

56.6%

+46

elo-2750

250

5000

55.5%

+38

elo-3300

250

5000

54.6%

+32

Best book between 2700+ elo rated human players.


The WDL factor - all 6 books are tuned with a (flexible) value between 1 and 500. In our current case we used an educated guess of 250 which already gives excellent results.


In a nutshell, a low value makes a book very random, a high value narrows the book.

The following example makes the effect visible and note what happens to the weights of the big-four 1. e4 | 1. d4 | 1. Nf3 | 1. c4


You can change the weights using the function key F10, select the book, type the new WDL factor (1-500) and a new book is created called NEW.BIN in the BOOKS folder and perhaps create an even stronger book.

_____________________________________________________________________________________________________


Programmer corner

adding Polyglot books to your engine in 15 minutes


PG.EXE is a simple util you call from your engine and it will return a book move within ~10 ms from any Polyglot book.


Code:


char w[1000],s[1000];

sprintf(w,"pg.exe %s",s);         // prepare polyglot book call
system(w);                            // call polyglot book


The string "s" should contain the EPD surrounded by quotation marks, example, the string "w" contains the start position -


pg.exe "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -"  PG will return one of available book moves, such as:


e2e4 52.42 16 20 83

Move

Weight

Stockfish score

Stockfish depth

Learn value

e2e4

52.42%

0.16

20

83

For scanning the (blue) output will be stored on the screen but also in the file move.txt and secondly all available book moves are stored in the file book.txt. Run the DEMO program and try a few EPD's. That's all there is.


The features

Analyzed books

Book

Positions

Status

ProDeo

677.454

First 10 moves analyzed with Lc0 384x30 net, remaining moves by Stockfish 12 at depth 20.

SF12

1.139.350

Book made from 48.713 SF12 games with scores, depths and learn results included.

Fruit

31.467

Analyzed with SF12 at depth 20.

The book.ini file

[Book File = ProDeo.bin]

Book that PG will search.

[Book Use = vary]

User priority preference, there are 3 options -


vary  - Play varied based on the weight, default setting.

score - Play the move with the highest Stockfish 12 score.

learn  - Play the move with the highest learn value.

[Blunder Margin = 50]

vary - In the case there are more than one book moves available avoid PG to return moves that score 0.50 less than the best move. In such a case the best move is returned instead.

PG

18.2 Mb

Polyglot source code included


___________________________________________________________________________________



Credits


Thanks to the Stockfish team for the use of

Stockfish 12

and

Fabien Letouzey

for Polyglot