# Computer Chess Club Archives

## Messages

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

Author: Robert Hyatt

Date: 20:19:54 04/29/04

Go up one level in this thread

```On April 29, 2004 at 17:06:29, Gerd Isenberg wrote:

>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?
>

Several problems.

1.  Suppose the best move is a repetition.  If you do a repetition check after a
double null move, you get an instant draw score very time.  Useless.  So you
have to turn it off.  Now you don't realize that the move draws, so it won't be
best.  Etc.

2.  double null rips 8 plies from the depth.  That will often collapse you into
the q-search where all you can play are captures.  Captures are not the best
move far more often than they are.

>
>>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...
>>

```