nullmove verification vs avoid null

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.
mar
Posts: 1992
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

nullmove verification vs avoid null

Post by mar » Sat Sep 14, 2013 12:16 pm

Nullmove verification helps in some (not all) problematic positions, like these (taken from a testsuite - I believe these should be attributed to Gerd Isenberg):

8/8/1p1r1k2/p1pPN1p1/P3KnP1/1P6/8/3R4 b - -
4KBkr/7p/6PP/4P3/8/3P1p2/8/8 w - -

However verification costs some elo (in my case 3 +-5 so nothing dramatic)
I know that Bob doesn't use verification search but Crafty has no problem with the above positions.
To my suprise (always thought it's just an optimization), removing avoid null from Crafty made it blind in these positions
so it's obvious that null verification and avoid null flag actually accomplish the same.
So I wonder whether using a similar approach (avoid null flag in TT entry) would do better than verification search.
Any opinions?

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 2:27 pm

Re: nullmove verification vs avoid null

Post by Don » Sat Sep 14, 2013 4:49 pm

mar wrote:Nullmove verification helps in some (not all) problematic positions, like these (taken from a testsuite - I believe these should be attributed to Gerd Isenberg):

8/8/1p1r1k2/p1pPN1p1/P3KnP1/1P6/8/3R4 b - -
4KBkr/7p/6PP/4P3/8/3P1p2/8/8 w - -

However verification costs some elo (in my case 3 +-5 so nothing dramatic)
I know that Bob doesn't use verification search but Crafty has no problem with the above positions.
To my suprise (always thought it's just an optimization), removing avoid null from Crafty made it blind in these positions
so it's obvious that null verification and avoid null flag actually accomplish the same.
So I wonder whether using a similar approach (avoid null flag in TT entry) would do better than verification search.
Any opinions?
How is avoid null flag actually used? I have never heard of that one. Is it used when the hash table score is based on a null move search at this node?
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.

mar
Posts: 1992
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: nullmove verification vs avoid null

Post by mar » Sat Sep 14, 2013 5:06 pm

I think Bob is the right person to ask :)

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 2:27 pm

Re: nullmove verification vs avoid null

Post by Don » Sat Sep 14, 2013 5:11 pm

mar wrote:I think Bob is the right person to ask :)
You sounded as if you understood it, but the question was a general one for the forum and not to a specific individual.

I think what we do is just not store a history position and I'm wondering if this is ideas is based on storing the value but flagging it as a don't use value.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.

mar
Posts: 1992
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: nullmove verification vs avoid null

Post by mar » Sat Sep 14, 2013 5:19 pm

I meant that Bob knows better than me, not that I expect an answer from him and not from anyone else.
I was asking why it helps the same way null verification helps in certain positions because I thought it only helps to save a few nodes for an useless nullmove search.
I found this where Bob describes how the flag is set:
http://www.stmintz.com/ccc/index.php?id=364198
And here where he mentions that avoid-null-TT trick comes from Deep Thought team?
http://www.open-chess.org/viewtopic.php ... 0&start=10

bob
Posts: 20478
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: nullmove verification vs avoid null

Post by bob » Sat Sep 14, 2013 5:33 pm

Don wrote:
mar wrote:Nullmove verification helps in some (not all) problematic positions, like these (taken from a testsuite - I believe these should be attributed to Gerd Isenberg):

8/8/1p1r1k2/p1pPN1p1/P3KnP1/1P6/8/3R4 b - -
4KBkr/7p/6PP/4P3/8/3P1p2/8/8 w - -

However verification costs some elo (in my case 3 +-5 so nothing dramatic)
I know that Bob doesn't use verification search but Crafty has no problem with the above positions.
To my suprise (always thought it's just an optimization), removing avoid null from Crafty made it blind in these positions
so it's obvious that null verification and avoid null flag actually accomplish the same.
So I wonder whether using a similar approach (avoid null flag in TT entry) would do better than verification search.
Any opinions?
How is avoid null flag actually used? I have never heard of that one. Is it used when the hash table score is based on a null move search at this node?
No. If you get a hash signature match, but the draft of the entry is not enough to let you use the entry, you can still check to see what happened (for example, did the previous search fail low (store UPPER bound)? If so, is the draft comparable to the null-move remaining depth (depth - 1 - REDUCTION (3 for me). If the depth is enough, and we failed low on a real move, we are almost certainly going to fail low on a null-move, which is theoretically worse than any possible move unless we are in zugzwang, so there is no point in doing the null-search and wasting effort...

This is a well-known optimization, nothing more. Not related to verification or anything...

bob
Posts: 20478
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: nullmove verification vs avoid null

Post by bob » Sat Sep 14, 2013 5:36 pm

mar wrote:I meant that Bob knows better than me, not that I expect an answer from him and not from anyone else.
I was asking why it helps the same way null verification helps in certain positions because I thought it only helps to save a few nodes for an useless nullmove search.
I found this where Bob describes how the flag is set:
http://www.stmintz.com/ccc/index.php?id=364198
And here where he mentions that avoid-null-TT trick comes from Deep Thought team?
http://www.open-chess.org/viewtopic.php ... 0&start=10
Yes. I first saw it in the singular extension paper Campbell and Hsu wrote. But remember, it is not a "skill gain". It is a "node reduction". Avoiding null moves when you know you won't fail high saves the null-move search overhead, nothing more. Not intended as any sort of zugzwang avoidance or anything like that.. Think about this... If you are a queen down, do you see ANY way a null-move search (doing nothing) can fail high? As opposed to the "if you are a queen up, it is hard to imagine any way a null-move search would not fail high, since that would require losing the queen right back... You can play any move other than the null and most likely avoid the threat anyway...

mar
Posts: 1992
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: nullmove verification vs avoid null

Post by mar » Sat Sep 14, 2013 5:38 pm

bob wrote:This is a well-known optimization, nothing more. Not related to verification or anything...
Then why it helps to solve the above mentioned positions? Without it, Crafty is blind in these. So it must be more than just an optimization. A side effect perhaps?

syzygy
Posts: 4451
Joined: Tue Feb 28, 2012 10:56 pm

Re: nullmove verification vs avoid null

Post by syzygy » Sat Sep 14, 2013 6:54 pm

mar wrote:
bob wrote:This is a well-known optimization, nothing more. Not related to verification or anything...
Then why it helps to solve the above mentioned positions? Without it, Crafty is blind in these. So it must be more than just an optimization. A side effect perhaps?
It is known to help. See e.g. this post. That it helps is also implicit in Bob's explanation: we know doing the null move is wasted "unless we are in zugzwang". But if we are in zugzwang we certainly want to avoid doing null moves.

mar
Posts: 1992
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: nullmove verification vs avoid null

Post by mar » Sat Sep 14, 2013 7:10 pm

Thanks Ronald

Post Reply