# Computer Chess Club Archives

## Messages

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

Author: Sune Fischer

Date: 13:26:37 04/28/04

Go up one level in this thread

```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;
>     }
>  }

I understand it differently, like this:

if (!inCheck)
{
if ( nullmoves<2) (
nullmoves++;
val = -doNullMoveSearch(depth-1-R,...);
nullmoves--;
if ( val >= beta ) return val; // return beta;
}
}

So you may have:

e2-e4
e7-e5
**-**     // nullmove
**-**     // another nullmove to quickly test if parant nullmove fails-low!
Nf3       // nullmove NOT allowed here, max 2 nullmoves along each line

-S.

```