mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-21 09:37:16 +08:00
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
This commit is contained in:
committed by
Marco Costalba
parent
52ae0efccf
commit
ecd07e51d0
@@ -27,7 +27,7 @@ class Position;
|
||||
namespace Eval {
|
||||
|
||||
extern void init();
|
||||
extern Value evaluate(const Position& pos, Value& margin);
|
||||
extern Value evaluate(const Position& pos);
|
||||
extern std::string trace(const Position& pos);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user