increasing futility prunning depth

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
brtzsnr
Posts: 433
Joined: Fri Jan 16, 2015 3:02 pm
Contact:

increasing futility prunning depth

Post by brtzsnr » Fri Apr 28, 2017 2:31 pm

Hi!

So right now I'm doing LMR for depths >=4 and FP for depths <= 3. I do futility outside the move testing loop.

I wanted to increase the maximum futility depth to 4. Simply increasing the depth failed, but what seems to work is testing that at the last depth (4) there was no hash hit. IOW: for depths 1, 2, 3 no change; for depth 4 enable futility when there is no hash hit.

Why does this work? I expected the reverse to be true. A hash hit means we already have a good move so weak moves can be prunned.

Code: Select all

        const futilityDepthLimit = 4
 	if depth <= futilityDepthLimit && // enable when close to the frontier
 		&#40;depth < futilityDepthLimit || hash == NullMove&#41; &&
 		!sideIsChecked && // disable in check
 		!pvNode && // disable in pv nodes
 		KnownLossScore < &#945; && &#946; < KnownWinScore &#123; // disable when searching for a mate 

User avatar
cdani
Posts: 2104
Joined: Sat Jan 18, 2014 9:24 am
Location: Andorra
Contact:

Re: increasing futility prunning depth

Post by cdani » Fri Apr 28, 2017 5:09 pm

brtzsnr wrote: Why does this work? I expected the reverse to be true. A hash hit means we already have a good move so weak moves can be prunned.
Maybe is related to that not having a hash move means more probabilities to be the first time you arrive to the node, and following searches will take care of the node if is really more important. So first time nodes are less probable to be good because there are a lot of them. This gives me a lot of ideas to test :-)

User avatar
cdani
Posts: 2104
Joined: Sat Jan 18, 2014 9:24 am
Location: Andorra
Contact:

Re: increasing futility prunning depth

Post by cdani » Sun Apr 30, 2017 9:21 am

As sure yo know the increasing of this type of parameters tend to become possible when the engine gets stronger, and as a consequence orders better the moves and allows more pruning.

I tried your approach in Andscacs and it didn't work, but I have such pruning at depth 6. Also I tried some derived ideas without luck.

brtzsnr
Posts: 433
Joined: Fri Jan 16, 2015 3:02 pm
Contact:

Re: increasing futility prunning depth

Post by brtzsnr » Sun Apr 30, 2017 2:17 pm

Thanks for investigating.

I'll put this on my list of things to simplify later on. Razoring seems to work better when there is no hash move, too, but the test is incomplete.

Post Reply