Author: Robert Hyatt
Date: 08:13:45 11/30/01
Go up one level in this thread
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".
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.