Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: TranspositionTables and NULL-move

Author: Vincent Diepeveen

Date: 06:47:52 03/11/04

Go up one level in this thread


On March 10, 2004 at 05:56:46, Michel Langeveld wrote:

>On March 10, 2004 at 05:45:47, Renze Steenhuisen wrote:
>
>>In the code below leaving line with "/* 1 */" out saves nodes, and I don't
>>understand why?! If I am correct the code represents a normal implementation of
>>the use of Transposition Tables.
>>
>>  if( do_null_move )
>>  {
>>    makeMove(null_move)
>>    null_val = -search(-beta-1, -beta)
>>    unmakeMove(null_move)
>>    if( null_val>=beta)
>>    {
>>      store_in_TT(null_val, LOWERBOUND)           /* 1 */
>>      return null_val;
>>    }
>>  }
>>
>>  best_val = -INFINITY
>>  for(all legal moves)
>>  {
>>    makeMove()
>>    val = -search(-beta, -alpha, depth-1);
>>    unmakeMove()
>>    best_val = MAX(best_val, val)
>>    if( val>=beta )
>>    {
>>       store_in_TT(val, LOWERBOUND)
>>    }
>>  }
>>
>>  if( best_val>alpha )
>>    store_in_TT(best_val, EXACTBOUND)
>>  else
>>    store_in_TT(best_val, UPPERBOUND)
>>
>>  return best_val
>>}
>
>Hi Renze,
>
>Do you use also the best_move in the hashtable?
>
>I don't store Nullmove search results in Nullmover too.
>It costs me extra nodes to do it.

There must be bugs in your search then.

>Also in Olithink and TSCPGothic I found
>similiair behaviour.
>
>I think the reason is that you you fill your hashtable to save something that is
>cheap to calculate (do_nullmove, restore_nullmove and a function call). With
>saving this you throw something out of the hash what is more valuable probably.
>
>Michel



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.