I'm trying to learn more about pruning methods to improve my engine.
Looking at CPW code (https://github.com/nescitus/cpw-engine/ ... search.cpp), I came across static null move pruning (line 277).
I have some questions:
1- Is this a standard pruning method, ie, does most engine use it?
2 - In line 289 they return static_eval - eval_margin. Can I just return beta? I'm not using fail-soft I guess.
3 - What can go wrong with this technique?
Thanks!
Static null move pruning
Moderators: hgm, Rebel, chrisw
-
- Posts: 33
- Joined: Wed Nov 23, 2016 1:30 am
- Location: Brazil
Static null move pruning
The truth comes from inside.
https://github.com/fernandotenorio/Tunguska
https://github.com/fernandotenorio/Tunguska
-
- Posts: 1334
- Joined: Sun Jul 17, 2011 11:14 am
Re: Static null move pruning
Well, I call it "reverse futility pruning", because it's essentially futility pruning inverted. It's reasonably common, since it's cheaper than doing a full nullmove search at the leaves (or that's how it seems to be for me, anyway).Necromancer wrote:I'm trying to learn more about pruning methods to improve my engine.
Looking at CPW code (https://github.com/nescitus/cpw-engine/ ... search.cpp), I came across static null move pruning (line 277).
I have some questions:
1- Is this a standard pruning method, ie, does most engine use it?
For fail-hard, returning beta is fine.2 - In line 289 they return static_eval - eval_margin. Can I just return beta? I'm not using fail-soft I guess.
I would say setting a suitable margin is a fine art that needs to be mastered. It should hopefully also go without saying that it shouldn't be used in check, too.3 - What can go wrong with this technique?
Thanks!
Some believe in the almighty dollar.
I believe in the almighty printf statement.
I believe in the almighty printf statement.