Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: FIXED: Hash table bug

Author: Robert Hyatt

Date: 10:11:04 05/13/04

Go up one level in this thread


On May 13, 2004 at 07:45:25, Jeff GAZET wrote:

>>Hi,
>>
>>more information is needed.
>>In one kind of hash implementation the search after "undo" should return a1b1 at
>>ply 1!
>>Reason: when starting search it should look at the hash, find an entry with
>>depth==25 and result move a1b1 with an exact score. Thus he should take this
>>result.
>>Debug at ply 0 why this don“t happen.
>>
>>If you "age" hash-entries by other than move-count and you will not use "aged"
>>entries-score then and older hash entries are just used for move ordering it
>>should react different.
>>In this case check if you are correctly overwriting "aged" hash entries even, if
>>remaining depth is lower than the remaining depth of the hash entry.
>>
>>Greetings Volker
>
>Thanks, i found : This bug occured only when i stopped the search with "move
>now". In this case, in alphabeta() and quiesce(), i set stop_search=true and
>returned immediatly. As those functions must return a value, i returned 0.
>This put bad values in the hash table.
>So i clear the table if the search as been stopped in alphabeta() or quiesce().


Poor solution.  Just don't "store" anything once time runs out.  Anything you
have _already_ stored is just fine.  But when you stop searching, return a
special value or check the "time-out" global flag and just don't store into the
hash table once that has happened.

Otherwise you will be clearing the hash table after most every search and that
is not a good approach.



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.