Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null move R=3

Author: Dieter Buerssner

Date: 13:09:31 08/09/01

Go up one level in this thread


On August 09, 2001 at 12:46:36, Bruce Moreland wrote:

>On August 09, 2001 at 10:33:51, Dieter Buerssner wrote:
>
>>I am using a null move algorithim, that is functionally similar to the "double
>>null move" Vincent has explained here some times.
>
>I don't recall what that was, and I am interested enough that I'm embarass
>myself by asking:  What was that?

I think, Vincent's formulation is more or less. If in the search tree, the last
move was a null move, and the move before this was no null move, do a null move
again. So, Instead of one null move, you allways do something like

1. move null 2. null move

first.

So, when the 2...move does not fail high, the first null move will be
automatically refuted. This will avoid Zugzwang problem (at higher depth).

My formulation is a bit different.

Before doing the null move, do a search at even more reduced depth as
depth-(R+1) for the side to move. Only when this search fails high (in zero
window at beta), try the null move. If this does not fail high, skip the
nullmove.

Something like:

   if (all conditions for null move met)
   {
     /* The next 2 lines are additional to a "normal" null move search */
     score = absearch(beta-1, beta, depth-((R1+1)+(R2+1)), ply, side);
     if (score >= beta)
     {
       /* do a null move */
       score = -absearch(-beta, -beta+1, depth-(R1+1), ply+1, otherside);
       /* check for null move cutoff, etc. */
     }
   }

Note, that when the first (very shallow) search fails high, but the normal
nullmove search doesn't, you can still use some info for move ordering. The
move, with which the first absearch failed high, will be a good candidate to try
early later in the search.

As you can easily see, this will yield in less nullmove cutoffs. But it should
avoid exactly those cutoffs, that are possibly incorrect. I actually only
experimented a little bit without this additional search (I implemented this,
before I had known about recursive null move). In middle game positions it costs
some nodes. In one single match test I have done, it even performed slightly
worse, than a "normal" nullmove algorithm, but not really statistically
significant. However, I prefer, that with this idea, you can never really fail
to find some mate in 2 in some obscure Zugzwang position (and thereby looking
really stupid). Of course, you may need more depth than expected, to see it.

Regards,
Dieter




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.