Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash collisions and a little maths

Author: Vincent Diepeveen

Date: 05:26:55 02/25/99

Go up one level in this thread


On February 24, 1999 at 12:45:08, Andrew Dados wrote:

>
>On February 24, 1999 at 11:53:39, Vincent Diepeveen wrote:
>
>>On February 24, 1999 at 11:27:53, Ed Schröder wrote:
>>
>>>>Posted by Vincent Diepeveen on February 24, 1999 at 08:03:23:
>>>
>>>>I know however that i must have had wrong collisions, probably the fact
>>>>that i don't store true values hides collision probs from me, as i
>>>>cannot have true values in my program; if a score is true then alfa
>>>>gets improved and then score is again <= alfa, so i use only 1 bit
>>>>to see whether it's >= beta or <= alfa.
>>>
>>>I don't understand the above. You say,  "i cannot have true values in
>>>my program" and then "if a score is true then..." which I interpret as
>>>you use true score after all?
>>>
>>>My best guess is you only use alpha (and not beta) to mark the
>>>score in the hash table. Correct view?
>>>
>>>Can you tell why Diep can't use "true scores" in the hash table?
>>
>>This is something theoretical Ed,
>>ASSUME we have true scores in search.
>>Now try to prove that to false.
>>
>>We assume that we have true scores.
>>then alfa becomes the true score,
>>however score <= alfa, so
>>conclusion is falsum.
>>
>>so the score is <= alfa, which is a bound.
>>therefore i only store using 1 bit in hashtable.
>>a score is either <= alfa or >= beta, but never alfa < score < beta,
>>that cannot happen in DIEP as i improve alfa with the result of the search.
>>
>
>Hmm... but if score=alpha and score<beta then you have it exact, correct?
>Andrew

if score == alpha then score is <= alfa, so it's a bound then.

you only get a true score when  alfa < score < beta
however as soon as i get a score back then i improve alfa with the score,
so then always the score <= alfa.

On the other hand if score gets one ply further a fail high then it might
be here <= alfa, so score == alfa.

So score == alfa says nothing except that it is a bound.

In the case that we backup alfa initially, then we
can after searching the moves compare and we see
that

alfabackkuped < alfa < beta

Now we say that alfa = score is a true score.

This is the *only* way to find a true score

However this doesn't work for DIEP. Somewhere this goes wrong.
I don't see extra speed up either because of this. I just waste
a few million bits extra doing this in my hashtable.

In the case of MTD this even isn't possible.

>>>Ed



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.