Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Matevalues, hashtables and iterative deepening

Author: Robert Hyatt

Date: 20:21:53 11/30/01

Go up one level in this thread


On November 30, 2001 at 18:30:16, Erik Robertsson wrote:

>On November 30, 2001 at 11:13:45, Robert Hyatt wrote:
>
>>On November 30, 2001 at 07:25:42, Erik Robertsson wrote:
>>
>>>I´ve been trying to correct some bugs wich occur when storing mate values in the
>>>hashtable.
>>>
>>>If the position is evaluated as a mate value at the end of an iteration in the
>>>iterative deepening, I stop searching and execute the best move. In some
>>>positions however, I find that due to finding positions in the hashtable it can
>>>result in the engine alternating between two different mate variations ending in
>>>a quite embarrassing draw by repetiton.
>>>
>>>I've tried to solve this by not automatically stop the iterative deepening
>>>unless I've found a shorter mate than found in the previous move. Is there a
>>>better way of solving this? I remember reading something about this some year
>>>ago, but cannot find it.
>>>
>>>I use the draft = *infinity* for mates wich are not bounds which should result
>>>in that most positions with mate should be in the ht in the next search. Maybe
>>>it has something to do with the bounds, but I´ve tried Crafty's MATE-300 bound
>>>and it sometimes result in getting the evaluation of the position as MATE-300.
>>>
>>>This has kept me awake a few nights, please help or I will go insane.
>>
>>
>>Are you correcting the mate scores before you store them in the hash
>>table?  If you do this, there should never be a problem, with one exception.
>>It is easy for a program to find a non-optimal mate score and store it in the
>>hash table.  And that can cause some confusion.  But if you search with the
>>rule that says "I will not stop until either time runs out or I find a mate
>>in N-1 (where N was the mate score from the last real move played in the
>>game)."
>>
>>If you do both of those, you should not have any problems.  But you _must_
>>correct the mate score to be "mate in N from this ply" rather than "mate in
>>N from the root position".
>
>I´ve thought about not overwriting a position with a position that has the same
>hashcode but a worse mate value in order to get rid of non-optimal values that
>are caused by transposition or repetiton, but I don't know if its even worth the
>effort. Anyone tried this?
>
>I also wonder if anyone has measured how much you gain by storing mate values as
>bounds as opposed to only storing exact mate values.


You don't gain anything,  you lose something.  If you have an EXACT score,
and it just happens to be a mate score, store it.  Why not.  If you have a
mate bound, store that as well.  IE what makes mate scores any different
than normal scores?  Nothing to the search...



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.