Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: No Benefit From Null Move

Author: Robert Hyatt

Date: 17:15:49 01/08/06

Go up one level in this thread


On January 08, 2006 at 13:50:28, Stuart Cracraft wrote:

>On January 07, 2006 at 12:09:49, Robert Hyatt wrote:
>
>>On January 07, 2006 at 09:14:03, Michael Neish wrote:
>>
>>>
>>>I hope this doesn't come across as too much of a beginner's question.
>>>
>>>Is it beyond question that null move improves search?
>>>
>>>The reason I ask is that I recently dusted off my old program, and ran a few
>>>tests on it, and was dismayed to discover that I seem to be getting very little
>>>benefit from using it.  This is trying out different parameters (R-2, R-3, at
>>>depth >2, >3, etc.).
>>>
>>>I thought the whole idea of using null was that you could get a swifter cut-off
>>>and hence reduce the number of nodes searched to reach a given depth, but I'm
>>>getting little or no reduction at all, and in some cases even an increase.
>>>
>>>Depending on the position, and the parameters used, about 40-60% of null moves
>>>performed fail high and return immediately.  The remainder move on to a normal
>>>search.  So I thought that, in my program's case, perhaps the nodes wasted on
>>>null move searches that don't fail high is almost the same as those saved by
>>>null move searches that do fail high.  Does this make sense?
>>>
>>>Is a cut-off rate of about 40-60% to be expected, or should it be higher?
>>>
>>>For what it's worth, around 80% of nodes in the tree are in Quiesce().  Could
>>>this have something to do with it?
>>>
>>>So barring an error in my implementation, can anyone comment on why null move is
>>>giving me virtually null benefit?
>>>
>>>Thanks in advance to anyone who takes the time to reply.
>>>
>>>Regards,
>>>
>>>Mike.
>>
>>The obvious question is, "where is your bug?"  :)
>>
>>null-move should _greatly_ reduce the size of the tree.  And reduce it enough
>>that you get another 1-2 plies of search depth in the same time.  So, are you
>>sure you are doing the null-move test correctly?
>>
>>make a null move
>>search resulting position to depth-R-1
>>if result >= beta, just return beta here and don't search any real moves at all.
>>otherwise, do a normal search and pretend the null-move search was never done.
>
>What is the effect of returning the value of the null move search
>if result >= beta instead of returning beta in a PVS search?
>Deleterious?

Should not affect anything, since anything >= beta causes a cutoff...


>
>Also, do you store the null move in the hash table? If so, why?

yes.  Why not?  If a null-move fails high here, and I reach this position again,
why not do a hash probe and fail high, rather than doing a null-move search
(which takes time) to fail high?




>
>Thanks ahead,
>
>Stuart



This page took 0 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.