Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Verified Null-moving

Author: martin fierz

Date: 05:42:28 08/12/04

Go up one level in this thread


On August 12, 2004 at 08:38:46, martin fierz wrote:

>On August 12, 2004 at 07:12:08, Tord Romstad wrote:
>
>>On August 12, 2004 at 06:40:48, Ross Boyd wrote:
>>
>>>Be careful with R=3. It has the potential to make your engine go blind. I lost
>>>~50 (!!) elo when using pure R=3 in TRACE. I ran the experiment again two days
>>>ago and it confirmed my previous findings. Currently, pure R=2 works best for
>>>me... fewer OTB blunders.
>>
>>Like virtually everything else in computer chess, this is something which
>>varies a lot between different engines.  In my engine pure R=3 works
>>*much* better than R=2, and slighly bettter than the classic adaptive
>>null move pruning technique.  Verified null move pruning also didn't
>>work for me.  The only improvement I have found over pure R=3 is a scheme
>>were I occasionally use R=2 in positions where horizon effect problems
>>are likely to be a problem (I use the eval to make the decision).
>>
>>Part of the reason that R=3 is best for me could be that my engine doesn't
>>use null moves as much as most other engines.  I only do a null move search
>>when I am reasonably sure of a fail-high, but not quite sure enough to
>>prune the whole subtree without search.  Null move at all nodes more than
>>doubles my node count, and does not increase the accuracy of my search
>>noticably.
>>
>>Tord
>
>hi tord,
>
>i'm intrigued by your last sentence - that null move at all nodes more than
>doubles your node count! i wonder how this is possible at all? why? if i
>understand what you write you have an oracle which can tell you whether you
>should do a null-move search at a given node or not.
>
>int alphabeta(....)

grrr, hitting tab-return is not such a good idea :-)

let me continue: you have

int alphabeta(...)
  {
  ...
  if(null_oracle(position) == NULL_OK)
    do_nullmove_search()
  ...
  }

if you remove that null_oracle thing you get twice as many nodes? i don't
understand how that can happen. your null_oracle would basically be telling you
not to do a null move search if it thinks it will fail low anyway. so for all
nodes where you don't have to do a null move search with R=3 you have to do a
normal search. you save yourself searching the R=3 part, but that should be very
small compared to the normal search part, shouldn't it?

what am i missing?

cheers
  martin



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.