Move ordering

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

ed

Re: Move ordering

Post by ed »

hgm wrote:I prefer the null move even at d=1 because it saves you generating moves, and in Joker the result goes into the hash table as a d=3 search if it works (and consequently d=2 parents in which the side that is behind can make no threat go into the hash as d=4, and their parents as d=5), which saves a lot of work on the next iteration.
There is no sense in doing nullmove at d=1 when using futily pruning, most of us do.

Ed
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Move ordering

Post by hgm »

I don't get that. If CurEval > Beta > Alpha, then a null move is not futile.

Or are you talking now about futility pruning at d=2 and d=3? That you would prune moves that would be refuted by the null move at d=1 already there? But that pruning is done based on an estimate of the evaluation, with a large positional margin. So if you don't satisfy the conditions for pruning, and play the move, in practice it could still be refuted by stand-pat or null move if the move was positionally bad, rather than close to the best possible.
ed

Re: Move ordering

Post by ed »

ed wrote:
hgm wrote:I prefer the null move even at d=1 because it saves you generating moves, and in Joker the result goes into the hash table as a d=3 search if it works (and consequently d=2 parents in which the side that is behind can make no threat go into the hash as d=4, and their parents as d=5), which saves a lot of work on the next iteration.
There is no sense in doing nullmove at d=1 when using futily pruning, most of us do.

Ed
Too hasty, forget about it... :lol:

Ed