Futility prunning

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Daniel Anulliero
Posts: 759
Joined: Fri Jan 04, 2013 4:55 pm
Location: Nice

Futility prunning

Post by Daniel Anulliero »

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
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Futility prunning

Post by Henk »

Don't understand how it can do futility pruning outside the loop for it doesn't know if it can capture a hanging piece.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Futility prunning

Post by Henk »

O wait you are calling QSearch to get an estimate.
User avatar
Fabio Gobbato
Posts: 217
Joined: Fri Apr 11, 2014 10:45 am
Full name: Fabio Gobbato

Re: Futility prunning

Post by Fabio Gobbato »

In my engine I use both.

Before the null move pruning and after the hash probe I have a similar condition:

Code: Select all

 if &#40;node!=PVNODE && !InCheck && depth<FPDEPTH && &#40;staticeval-margin&#91;depth&#93;)>=beta && stm_has_pieces&#41; return staticeval-margin&#91;depth&#93;;
And inside the moves loop I have a condition like this:

Code: Select all

 if &#40;node!=PVNODE && !dangerousmove && depth<FPDEPTH && &#40;staticeval+margin&#91;depth&#93;)<alpha&#41; continue;
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Futility prunning

Post by cdani »

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 Anulliero
Posts: 759
Joined: Fri Jan 04, 2013 4:55 pm
Location: Nice

Re: Futility prunning

Post by Daniel Anulliero »

Thanks guys for yours explanations!
I'll continue to play with all the pruning schemes :wink: