Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: null move improvement ? (error in my previous post)

Author: Andrew Williams

Date: 08:44:15 03/31/02

Go up one level in this thread


On March 31, 2002 at 07:31:36, Andrew Williams wrote:

>On March 31, 2002 at 07:22:25, Uri Blass wrote:
>
>>On March 31, 2002 at 07:10:41, José Carlos wrote:
>>
>>>On March 31, 2002 at 06:17:15, Klaus Friedel wrote:
>>>
>>>>Has anybody ever tried something like that in his null move code :
>>>>
>>>>
>>>> int nullDepth = depth - (NULL_REDUCE + 1)*DEPTH_BASE;
>>>>
>>>> if(tryNull){
>>>>  executeNullMove();
>>>>  beta -= NULL_BONUS;
>>>>  value = - search(nullDepth, -beta, -beta+1, ply + 1);
>>>>  undoNullMove();
>>>>  if(value >= beta){
>>>>   beta += NULL_BONUS;
>>>>   ttStore();
>>>>   return beta;
>>>>  }
>>>>  beta += NULL_BONUS;
>>>> }
>>>>
>>>>
>>>>Bigger values of NULL_BONUS increase the count of nodes prunded (but you migth
>>>>oversee some tactics). Values of about 30cp made my engine ply slightly better
>>>>than the default null-move (NULL_BONUS = 0).
>>>>
>>>>
>>>>Klaus
>>>
>>>  A couple of thoughts:
>>>  - You can be a bit faster declaring nullDepth inside the "if" and doing "beta
>>>+= NULL_BONUS;" just once, before "if(value >= beta){"
>>
>>The code is going ot be slightly shorter but I do not see
>>why is it going to be faster and it seems to me the same speed.
>>
>>You suggest to replace
>>
>>if(value >= beta)
>>{
>>   beta += NULL_BONUS;
>>   ttStore();
>>   return beta;
>>}
>>   beta += NULL_BONUS;
>>
>>by the following code:
>>
>>beta+=NULL_BONUS;
>>if(value >= beta)
>>{
>>   ttStore();
>>   return beta;
>>}
>>
>>In both cases beta+=NULL_BONUS is done exactly once in every case
>>so I do not see a reason that the shorter code
>>is going to be the faster code.
>>
>
>No. He's talking about the line:
>
>int nullDepth = depth - (NULL_REDUCE + 1)*DEPTH_BASE;
>
>If you do this outside the if(tryNull), you save doing the calculation
>in cases where you're not going to consider doing null move at all.
>
>Andrew

Of course, that should read:

  "If you do this INSIDE the if(tryNull), you save doing the calculation
   in cases where you're not going to consider doing null move at all."

Andrew



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.