Futility prunning

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Daniel Anulliero
Posts: 656
Joined: Fri Jan 04, 2013 3:55 pm
Location: Nice

Futility prunning

Post by Daniel Anulliero » Thu Aug 11, 2016 5:45 am

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: 5496
Joined: Mon May 27, 2013 8:31 am

Re: Futility prunning

Post by Henk » Thu Aug 11, 2016 8:46 am

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: 5496
Joined: Mon May 27, 2013 8:31 am

Re: Futility prunning

Post by Henk » Thu Aug 11, 2016 10:37 am

O wait you are calling QSearch to get an estimate.

User avatar
Fabio Gobbato
Posts: 123
Joined: Fri Apr 11, 2014 8:45 am
Contact:

Re: Futility prunning

Post by Fabio Gobbato » Thu Aug 11, 2016 1:37 pm

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: 2101
Joined: Sat Jan 18, 2014 9:24 am
Location: Andorra
Contact:

Re: Futility prunning

Post by cdani » Thu Aug 11, 2016 10:15 pm

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: 656
Joined: Fri Jan 04, 2013 3:55 pm
Location: Nice

Re: Futility prunning

Post by Daniel Anulliero » Fri Aug 12, 2016 12:37 pm

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

Post Reply