I noticed some engines does the futility prunning inside the loop moves in alpha beta and some does it outside the loop moves .
In Isa It is outside the loop moves and after ( or before lol) the nulmove
Is there an expert who can explain the diference ?
What is the better way in your advice ?
Bests
Dany
Futility prunning
Moderators: hgm, Harvey Williamson, bob
Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Re: Futility prunning
Don't understand how it can do futility pruning outside the loop for it doesn't know if it can capture a hanging piece.
Re: Futility prunning
O wait you are calling QSearch to get an estimate.
- Fabio Gobbato
- Posts: 116
- Joined: Fri Apr 11, 2014 8:45 am
- Contact:
Re: Futility prunning
In my engine I use both.
Before the null move pruning and after the hash probe I have a similar condition:
And inside the moves loop I have a condition like this:
Before the null move pruning and after the hash probe I have a similar condition:
Code: Select all
if (node!=PVNODE && !InCheck && depth<FPDEPTH && (staticeval-margin[depth])>=beta && stm_has_pieces) return staticeval-margin[depth];Code: Select all
if (node!=PVNODE && !dangerousmove && depth<FPDEPTH && (staticeval+margin[depth])<alpha) continue;Re: Futility prunning
Also some simple or not much developed engines do it outside the moves loop because they don't have the information for example if the king is in check, so they need to start the next alpha_beta call where they calculate all the attacks and such, and they decide if they do the prune when they know the move is not a checking one.
Daniel José -
http://www.andscacs.com
-
Daniel Anulliero
- Posts: 624
- Joined: Fri Jan 04, 2013 3:55 pm
- Location: Nice
Re: Futility prunning
Thanks guys for yours explanations!
I'll continue to play with all the pruning schemes
I'll continue to play with all the pruning schemes
