Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: double nullmove??

Author: Vincent Diepeveen

Date: 17:05:26 08/06/00

Go up one level in this thread


On August 06, 2000 at 17:35:50, Inmann Werner wrote:

>Hello.
>
>Where is the benefit in this doing nullmoves only, if the last 2 moves where no
>nullmoves? (I do it, if the last move was no nullmove.)

detecting zugzwangs, there is no other usage of them.
Don't use it in pawn endgames however, too many zugzwangs there.
There are very little tournament positions however where there are
more than a single zugzwang. Note that you need quite some depth to
see 2 zugzwangs with this. There are obvious variations to
use less plies to detect the second and further zugzwang by
reducing R after the first few nullmoves, as i used to do also.

I'm nowadays happy seeing a single zugzwang without extra overhead.
Reducing R is obviously gonna cost bunches of nodes.

>Greetings
>
>Werner
>
>
><snip>
>
>>    /* double nullmove */
>>   if( !incheck
>>    && (realply <= 1  // first 2 ply you always can nullmove,
>>        || movelist[realply-1]
>>        || movelist[realply-2] ) {
>>     /* so we do NOT nullmove if the previous 2 moves were nullmoves
>>        or if we are in check
>>      */
>>     R = 2; /* in DIEP i'm using R=3, but i do checks in qsearch */
>>     movelist[realply] = 0; /* 0 means we do nullmove this real move */
>>     score = -pvs(depth-1-R,realply+1,side^1,-beta,-beta+1);
>>     /* we nullmove with a nullwindow of  [beta-1,beta], as we are
>>        only interested in getting a cutoff
>>      */
>>     if( score >= beta ) {
>>       StoreHash(..);
>>       return(score);
>>     }
>>   }
>
><snip>



This page took 0.01 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

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