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.