mate distance pruning problems and static null move pruning

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Pierre Bokma
Posts: 31
Joined: Tue Dec 07, 2010 11:19 pm
Location: Holland

mate distance pruning problems and static null move pruning

Post by Pierre Bokma »

Hi friends,

Today i expirimented with mate distance pruning and static null move pruning like explained on computer chess wiki and the stockfish source. Both techniques did not have the desired effect: node count got worst and the number of positions solved also decreased. Especially concerning mate distance pruning this result surprised me.

Does anybody of you have any ideas what might cause this behaviour? Can it have something to do with my evaluationfunction?

Any help appreciated

Pierre
ZirconiumX
Posts: 1334
Joined: Sun Jul 17, 2011 11:14 am

Re: mate distance pruning problems and static null move prun

Post by ZirconiumX »

MDP only really works when you get a mate score. You could set a bool outside the search so when a mate is found then MDP is activated.

Static Nullmove should, in theory, be used with the same sort of restrictions as normal Nullmove. It is, after all, a forward pruning technique.

See my thread called 'Reverse Futility Pruning' for some source code of Static Nullmove.

Matthew:out
Some believe in the almighty dollar.

I believe in the almighty printf statement.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: mate distance pruning problems and static null move prun

Post by Don »

Pierre Bokma wrote:Hi friends,

Today i expirimented with mate distance pruning and static null move pruning like explained on computer chess wiki and the stockfish source. Both techniques did not have the desired effect: node count got worst and the number of positions solved also decreased. Especially concerning mate distance pruning this result surprised me.

Does anybody of you have any ideas what might cause this behaviour? Can it have something to do with my evaluationfunction?

Any help appreciated

Pierre
My working theory is that static null move interferes with lazy evaluation.

Do you do lazy evaluation?

One consequence of lazy evaluation is that it will increase your node codes, but presumably the number of positions you have to actually evaluate decreases or else it would not work.

However with static null move you you are taking cutoffs when the evaluation is well above beta, which means you will be depriving lazy evaluation from getting much of that same benefit on the next node. I think that is probably a big part of the reason why lazy evaluation does not work so well with Komodo.

It's not uncommon that you can take some idea from any good chess program, plug it into your own, and find that it doesn't work the same. It might not work at all, or it might work better, or it might work as well.
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: mate distance pruning problems and static null move prun

Post by Steve Maughan »

MDP should *always* reduce the number of nodes (I think :? ). By MDP I assume you mean if you already have a mate in Q moves there is no point searching past a 2 x Q ply.

Steve