those implementing some endgame knowledge in their engines themselves and not relying on table bases only might be interested in this
To verify the special endgame evaluator modules in iCE I assembled an EPD collection of randomly created 4 and 5 man positions. The positions are classified into win, lost and drawn positions as seen from side to move and stored in 3 different EPDs.
http://www.fam-petzke.de/cp_download_en.shtml
(Endgame EPD collection - close to the bottom of the page)
I used table bases for the classification (the Gaviota ones). The positions are filtered to be fairly quiet so the side to move is not in check, it cannot capture a piece in 1 move and is not able to mate in 1.
They are useful to spot errors in the evaluator when the engine mirrors them horizontally or vertically or reverses the colors and compares the scores. It is also useful to check whether won positions get a positive score in eval, lost a negative one.
This is the current content of the 3 epds (WON : LOST : DRAW)
Code: Select all
KNNK (1.000) ==> 0 : 0 : 1.000
KBNK (1.000) ==> 540 : 460 : 0
KBBK (1.000) ==> 518 : 482 : 0
KRKN (1.000) ==> 376 : 156 : 468
KRKB (1.000) ==> 72 : 6 : 922
KRKR (1.000) ==> 19 : 0 : 981
KBKP (1.000) ==> 31 : 35 : 934
KNKP (1.000) ==> 166 : 154 : 680
KBPK (1.000) ==> 481 : 501 : 18
KNNKN (1.000) ==> 0 : 0 : 1.000
KNNKB (1.000) ==> 0 : 0 : 1.000
KBNKN (1.000) ==> 78 : 35 : 887
KBNKB (1.000) ==> 17 : 0 : 983
KBBKN (1.000) ==> 474 : 526 : 0
KBBKB (1.000) ==> 3 : 1 : 996
KNNKR (1.000) ==> 8 : 3 : 989
KBNKR (1.000) ==> 31 : 1 : 968
KBBKR (1.000) ==> 22 : 2 : 976
KRNKR (1.000) ==> 73 : 1 : 926
KRBKR (1.000) ==> 56 : 8 : 936
KRPKR (1.000) ==> 533 : 341 : 126
KBPPK (1.000) ==> 431 : 569 : 0
3.929 records written to wins.epd
3.281 records written to losses.epd
14.790 records written to draws.epd