Static Null Move?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Ratta

Static Null Move?

Post by Ratta »

Hi, in some (few) places i have read about "Static Null Move", what is it?
Another (maybe) related question, mainly for Tord: in Glaurung 1 i have found some code that performed a global SEE, to try the equivalent of null moves in low depth nodes. Wasn't it worth including in Glaurung 2 too?
Regards!
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Static Null Move?

Post by Tord Romstad »

Ratta wrote:Hi, in some (few) places i have read about "Static Null Move", what is it?
Another (maybe) related question, mainly for Tord: in Glaurung 1 i have found some code that performed a global SEE, to try the equivalent of null moves in low depth nodes.
You just answered your own question: Static null move pruning is null move pruning without a search. If the static evaluation is high above beta, the remaining depth is low, and perhaps some additional conditions are satisfied, a static analysis of hanging pieces (and possibly other threats) is done, and if no sufficiently serious threat is found, beta is returned.

The technique was very popular in the 1980s and 1990s, but it seems to be out of fashion at the moment. I am not sure why so few people are using it. In my experience, it performs at least as well as dynamic null move pruning in the last two or three plies of search (static null move pruning is obviously less accurate, but this is compensated by the smaller tree size).
Wasn't it worth including in Glaurung 2 too?
Absolutely. I will try it some day, but there are such a lot of things waiting to be tested...

Tord
Ratta

Re: Static Null Move?

Post by Ratta »

Ok, thanks for the answers!
When i have some time and my SMP search function stops crashing i will be happy to try something like this too... :)
User avatar
Thomas Mayer
Posts: 385
Joined: Thu Mar 09, 2006 6:45 pm
Location: Nellmersbach, Germany

Re: Static Null Move?

Post by Thomas Mayer »

Tord Romstad wrote:
Ratta wrote:Hi, in some (few) places i have read about "Static Null Move", what is it?
Another (maybe) related question, mainly for Tord: in Glaurung 1 i have found some code that performed a global SEE, to try the equivalent of null moves in low depth nodes.
You just answered your own question: Static null move pruning is null move pruning without a search. If the static evaluation is high above beta, the remaining depth is low, and perhaps some additional conditions are satisfied, a static analysis of hanging pieces (and possibly other threats) is done, and if no sufficiently serious threat is found, beta is returned.

The technique was very popular in the 1980s and 1990s, but it seems to be out of fashion at the moment. I am not sure why so few people are using it. In my experience, it performs at least as well as dynamic null move pruning in the last two or three plies of search (static null move pruning is obviously less accurate, but this is compensated by the smaller tree size).
Wasn't it worth including in Glaurung 2 too?
Absolutely. I will try it some day, but there are such a lot of things waiting to be tested...

Tord
Ah Tord,

now I know how it is called what I was doing for a long time in Quark... I just stopped it lately after implementing kind of LMR... Together it doesn't seem to work well... (But you achieve amazing depth... ;)

Greets, Thomas
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Static Null Move?

Post by Uri Blass »

Tord Romstad wrote:
Ratta wrote:Hi, in some (few) places i have read about "Static Null Move", what is it?
Another (maybe) related question, mainly for Tord: in Glaurung 1 i have found some code that performed a global SEE, to try the equivalent of null moves in low depth nodes.
You just answered your own question: Static null move pruning is null move pruning without a search. If the static evaluation is high above beta, the remaining depth is low, and perhaps some additional conditions are satisfied, a static analysis of hanging pieces (and possibly other threats) is done, and if no sufficiently serious threat is found, beta is returned.

The technique was very popular in the 1980s and 1990s, but it seems to be out of fashion at the moment. I am not sure why so few people are using it. In my experience, it performs at least as well as dynamic null move pruning in the last two or three plies of search (static null move pruning is obviously less accurate, but this is compensated by the smaller tree size).
Wasn't it worth including in Glaurung 2 too?
Absolutely. I will try it some day, but there are such a lot of things waiting to be tested...

Tord
I doubt if you know what is popular today
Most of the programs are not open source.

Uri