Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash Depth Question Was Re: Please help with a bug in my program

Author: Robert Hyatt

Date: 21:09:18 09/08/02

Go up one level in this thread


On September 08, 2002 at 10:23:31, Brian Richardson wrote:

>On September 08, 2002 at 08:45:12, Robert Hyatt wrote:
>snipped
>>I am not sure what you mean.  But the answer is to look at your search code,
>>and pick a position and ply where you are going to probe the hash table when
>>you enter search.  remember that number.  Now assume you don't get a hit, so
>>do a normal search, and look at the two ways to get out of search:  (1) you
>>get a fail high;  (2) you don't.  Make _sure_ that at each of those two
>>places, you store the _same_ depth you used when you probed the table at the
>>start of this search.  If not, you have a problem...
>
>Bob:  Could you try to explain why this might be a problem.  The scenario is:
>upon entering the search routine at a new (deeper) ply n, the hash table is
>probed.  If the search continues, extensions (e) can get added to the depth.
>Moves get searched and then the resulting bound or exact value is stored with a
>deeper depth n+e than was originally probed.


Sure.  Say when you enter search, depth=8, and you do a probe.  You fail
and do a search.  Suppose the first move is a check, so you push depth to 9
and it produces a fail high.  If you are careless, you store 9 as the depth
and you just laid a trap for yourself.

You finish this iteration and start the next.  You reach the same position
with depth=9, and you say "aha, fail high here" and you just broke the
search.

The depth you store at any position ought to be the same depth you would use
to probe at that position, for consistency (and correctness of course).

Note that I have blown this more than once, so this isn't the voice of "theory"
speaking, it is the voice of "been there, done that, won't do it again"
speaking.  :)




>
>Ok, the question is, next time this position is probed, even if it is at the
>same original (n,  or lower depth), wouldn't the "deeper" n+e hash depth search
>value still provide a valid result?  Or, deeper is always better, right?

Yes, but it wasn't _really_ deeper.  That is the problem.  The depth is
over-stated, which will cause the position to be used when it should not.




>
>Thanks.



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.