increasing futility prunning depth

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

increasing futility prunning depth

Post by brtzsnr »

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: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: increasing futility prunning depth

Post by cdani »

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: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: increasing futility prunning depth

Post by cdani »

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 4:02 pm

Re: increasing futility prunning depth

Post by brtzsnr »

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.