How to get futility pruning to work?
Posted: Mon Mar 05, 2012 6:16 am
My (2600 Elo) engine distressingly fails to gain from futility pruning.
Numerous tests, with different values of FUTILITY_MARGIN, different meanings of move_is_quiet, and different implementations of EvalForPrune(), have gone nowhere.
I would be grateful for hints, tips or suggestions as to what may be wrong.
Robert P.
Code: Select all
ev = NOT_EVALUATED;
for_each_move {
if ( !pvNode && depth == 1 && !inCheck && move_is_not_the_first && move_is_quiet ) {
if ( ev == NOT_EVALUATED ) ev = EvalForPrune();
if ( ev + FUTILITY_MARGIN < alpha ) continue;
}
MakeMove();
Search();
...
}
I would be grateful for hints, tips or suggestions as to what may be wrong.
Robert P.