Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: null move efficiency

Author: Tony Werten

Date: 03:40:34 04/20/04

Go up one level in this thread


On April 20, 2004 at 06:36:35, Tony Werten wrote:

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

In addition, throw out the 2nd half of 1 as well. If my opponent is going to
checkmate me, I want to know so I can extend.

So basicly, don't nullmove when in check. (period)

Tony

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