Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: null move efficiency

Author: Tony Werten

Date: 03:36:35 04/20/04

Go up one level in this thread


On April 20, 2004 at 04:50:19, Tord Romstad wrote:

>On April 19, 2004 at 20:38:47, Mike Siler wrote:
>
>>My program tries a null move search if
>>
>>1. it's not the endgame
>
>This is far too restrictive.  Be careful about allowing null move pruning in
>pawn endgames and endgames where one side has only the king left, but in more
>complicated endgames the speed gain more than outweighs the risk of
>occasionally overlooking a zugzwang.
>
>>2. it's not a PV node
>
>Have you tried removing this condition?
>
>>3. it didn't just make a null move
>
>This just complicates the search for no good reason, I think.  Many people
>avoid more than one null move in a row, but I don't unerstand why.  I've
>never seen any bad effect of allowing successive null moves.
>
>>4. it's not in check and wasn't in check on the previous ply
>
>The "check on the previous ply" condition should almost certainly be
>dropped.
>
>>5. the remaining depth isn't so small that the reduced depth would take it into
>>the qsearch
>
>This is also a bad idea, I'm afraid.  It would render you null move search
>much less effective.  I know that some people (Bob, for instance) uses a
>lower null move reduction factor when the remaining depth is small, but
>I don't know any nullmovers who disable null moves entirely in this case.
>
>But you do not mention the most important condition of all:  Only do null
>move in nodes where you have a good reason to believe that you will fail
>high!  If the static eval is far below beta, doing a null move search is
>almost certainly a waste of time.
>
>As a start, I think the following two conditions should be sufficient:
>
>1. Don't make a null move if the side to move is in check (or is threatened
>   by a mate in 1, if you have an easy way to detect this).
>
>2. Don't make a null move if the static eval is far below beta.

Actually, you can drop 2 as well :)

Move ordering is much better if you just nullmove everywhere. That way, you can
also throw out IID.

Tony

>
>Tord



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.