Endgame recognition and ELO

Code, algorithms, languages, construction...
lucasart
Posts: 201
Joined: Mon Dec 17, 2012 1:09 pm
Contact:

Re: Endgame recognition and ELO

Post by lucasart » Mon Mar 14, 2016 4:36 am

geko wrote:I launched 8500 game between stockfish 6 and stockfish 6 without endgame
in file endgame.cpp I removed the contents of the constructor

Code: Select all

Endgames::Endgames() {
//add<KPK>("KPK");
//add<KNNK>("KNNK");
etc.
}
and the result is very strange because wins the version without endgame:

Code: Select all

Rank Name                          Elo    +    - games score oppo. draws 
   1 stockfish_NOendgame             5    4    5  8500   52%    -5   41% 
   2 stockfish_original             -5    5    4  8500   48%     5   41% 
Make sure you do not use any adjudication rules. Games must be played until decided by chess rules. If there is any value in endgame knowledge, it will magnify it. Better test at fixed depth (for which you jeed to disable pruning at PV nodes): allows fast testing with reduced noise.

I've tested this extensively, and can confirm that *almost* all of SF endgame knowledge is useless. Only general scaling rules have some elo value, and a few specific endgames (like KPK and KRPKR, but you need to bunch them together, elo gain is too small to measure individually).

Endgames that are useless, and can be safely removed: KNPK, KNPKB, KRPKB, KBPKB, KBPKN, KQKR, KBPPKB, and probably many more that I have not tested. Even if you remove all these together, you will not be able to neasure a refression, even with adjudication switched off.
"Talk is cheap. Show me the code." -- Linus Torvalds.

Post Reply