I recently tried adding futility pruning to my engine, but my attempts are not working so far.
I tried a variant of futility pruning where I don't attempt to refute a move in the moves loop (because I have no information on the positional evaluation there), but rather go on into the next level of negamax, get an evaluation, and then do:
Code: Select all
if (depth < FUTILITY_DEPTH &&
!ispv &&
!ischeck &&
staticeval > beta + FUTILITY_MARGIN_0 + FUTILITY_MARGIN_PLY*depth)
I tried some settings in the vicinity of FUTILITY_MARGIN_0 100-200 centipawns and FUTILITY_MARGIN_PLY 50-100 centipawns, and did this on the last 4 plies of the search (FUTILITY_DEPTH 5) but none of this really worked, whether in test positions nor in gauntlet matches. Can anyone suggest an improvement on my code or settings?
cheers
Martin