# Computer Chess Club Archives

## Messages

### Subject: Re: When to do a null move search - an experiment

Author: Gerd Isenberg

Date: 14:06:29 04/29/04

Go up one level in this thread

```On April 29, 2004 at 16:03:08, Robert Hyatt wrote:

>On April 29, 2004 at 02:08:40, Tony Werten wrote:
>
>>On April 28, 2004 at 16:14:39, Gerd Isenberg wrote:
>>
>>>On April 28, 2004 at 13:45:05, Ed Schröder wrote:
>>>
>>><snip>
>>>
>>>>What is double nullmove? I only know recursive nullmove allowing multiple
>>>>nullmoves. I also read about "allowing 2 nullmoves in a row". What are the
>>>>differences?
>>>>
>>>>I use recursive nullmove, not allowing the next ply after the nullmove to
>>>>nullmove. So:
>>>>
>>>>  e2-e4
>>>>  e7-e5
>>>>  **-**     // nullmove
>>>>  d7-d5     // do no allow nullmove
>>>>
>>>>When I remove that check I get a few percent speedup, results look okay.
>>>>
>>>>Ed
>>>
>>>
>>>Hi Ed,
>>>
>>>yes Double Nullmove, suggested and invented by Vincent, allows to play two
>>>nullmoves in a row, to efficiently get rid of zugzwang problems. It is recursive
>>>too, and if i understand correctly, it works fine without any nullmove
>>>precondition:
>>>
>>>  if (!inCheck)
>>>  {
>>>     if ( move2thisNode != null || move2ParentNode != null ) (
>>>        val = -doNullMoveSearch(depth-1-R,...);
>>>        if ( val >= beta ) return val; // return beta;
>>>     }
>>>  }
>>>
>>>May be Vincent may correct me.
>>>It seems that there is an implicit kind of IID with 2R-2 too.
>>
>>Correct. Chech your hashtable again after the nullmove, if you didn't have a
>>best move before.
>>
>>Then throw out IID.
>>
>>Tony
>
>I don't see how/why one would throw out IID.
>

Yes but with double nullmove you may search a line like that, eg. for a 12ply
search:

null null e4 e5 Nf3  Nc6  Bb5  a6 ....

which is IMHO a kind of IID with depth-6, so if you store hash after null null
with best found e4, and probe after after nullmove, it is likely to get a hit.
Or?

>NULL can collapse search to q-search, which means the best you can hope for is a
>capture should you search this position later.  That's not the same as a "good"
>move when depth>0.  If you mean after the second null, you are now 8 plies short
>of a full search, which in most middlegame positions is going to be into the
>capture only search...
>

```