From: Lucas Braesch Date: Wed, 30 Oct 2013 03:22:42 +0000 (+0800) Subject: Retire eval margin and gains X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=ecd07e51d0f03ccd3e41e5634518b299989254dd;hp=ecd07e51d0f03ccd3e41e5634518b299989254dd;ds=sidebyside Retire eval margin and gains 1/ eval margin and gains removed: - gains removed by Value(128): search() and qsearch() now behave consistently! 2/ futility_margin() - testing showed that there is no added value in this weird (log(depth), movecount) formula, and a much simpler linear formula is just as good. In fact, it is most likely better, as it is not yet optimally tuned. - the new simplified formula also means we get rid of FutilityMargins[], its initialization code, and more importantly ss->futilityMoveCount, and the hacky code that updates it throughout the search(). - the current formula gives negative futility margins, and there is a hidden interaction between the move coutn pruning formula and the futility margin one: what happens is that MCP is supposed to be triggered before we use the non-sensical negative futility margins. 3/ unify pre & post futility pruning - pre futility pruning (what SF calls value based pruning) used depth < 7 plies, while post futility pruning (what SF calls static null move pruning) used depth < 4 plies. - also the condition depth < 7 in pre futility pruning was not obvious, and it seemd to be depth < 16 (futility_margin() returns an infinite value when depth >= 7). Tested with fixed number of games both at short TC: ELO: 0.82 +-2.1 (95%) LOS: 77.3% Total: 40000 W: 7939 L: 7845 D: 24216 And long TC ELO: 0.59 +-2.0 (95%) LOS: 71.9% Total: 40000 W: 6876 L: 6808 D: 26316 bench: 10206576 ---