null move and hash table

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: null move and hash table

Post by lucasart »

tpetzke wrote:I was referring to the case where you store just a flag that the null move in that node will likely fail low (because of threats present) along with the usual information of that node in the TT.
I dont think a flag makes a lot of sense either. It tries to resolve a non existant problem (tt pruning in child is cheap) in a somewhat clumsy way.

What I do to avoid useless null searches is use the TT to predict a fail low. If the TT entry is at least as deep as th3 depth of a null search, and gives a fail low score (exact or upper bound score <= alpha) then you can safely skip the null search. If no move could beat alpha, then, a fortiori, a null move wont. AFAIK this trick is from Crafty.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: null move and hash table

Post by tpetzke »

If the TT entry is at least as deep as th3 depth of a null search, and gives a fail low score (exact or upper bound score <= alpha) then you can safely skip the null search.
I'm aware of that trick and in previous versions I used it. Currently I don't. I rather do the null move and get a threat move if it fails low. But unlike crafty (might be different now, it is been a while since I looked) I restrict when to do the null move to cases where the static eval is within a certain limit of beta.

If the position is already bad doing nothing probably won't make it better.
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine