Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Best Move in Hash Table Question

Author: Robert Hyatt

Date: 05:46:59 01/21/99

Go up one level in this thread


On January 20, 1999 at 19:24:50, William Bryant wrote:

>
>>
>>IE I have a variable (array) hash_move[ply].  When I call HashProbe() if it
>>gets a signature match it copies the best move to hash_move[ply] while it is
>>checking the draft and so forth.  If the lookup is useless, search calls
>>NextMove() to choose the first move, and the one I try is hash_move[ply]
>>(making sure it is still a valid move here). And I get to do this _before_
>>I generate any moves at all...
>
>What advantage is there to making the hash move 'before' preparing the
>move list for this position.  If it fails high, then I realise that a move list
>is not needed, but if it fails low or returns a new alpha score, you will still
>need to search the rest of the legal move of this ply, right?
>

yes.. but what if your 'hash move' causes a fail high 25% of the time.  Wouldn't
you like to speed up your move generator by 25%?  You can, simply by not calling
it.  :)



>
>Also a few last quick questions.
>
>If a current position has no legal moves (checkmate or stalemate), is the
>mate value stored in the hash table as an EXACT score?


MATE should always be exact.  But you have to 'adjust' it...  to be mate-in-N
from the current ply, not mate-in-N from the root.  In your case, MATE is fine
since since that is absolute here...


>
>When a position leads to a draw by 50 move rule, the return value will be 0, but
>since arriving at this position by a different route may not create a 50 move
>draw, do you store the positional evaluation score in the hash table even though
>you are returning a value of zero?

No.  I store the 'score' which is zero in this case.  Yes it is wrong.  But
if you ignore storing draws, it is _still_ wrong, because hashing has no
'path' information in the signature.  So just because you store +3.0, doesn't
mean there isn't a path that reaches that position _after_ a 3-fold repetition.
So errors are going to occur no matter what happens...



>
>As always, I greatly appreciate you assistance.
>
>William
>wbryant@ix.netcom.com



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.