Author: Tony Werten
Date: 10:20:17 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 had this problem last year on the dutch open. I had 3 queens my opponent 1 pawn. My engine refused to checkmate and I lost on time. To solve this you have to split the score returned and the score you put in hastable. ie When you want to store a score and notice it's a checkmate_score then the corrected_for_depth score is returned and the uncorrected one is stored. I use a different flag for it. So besides below_alfa, above_beta and exact I use a checkmate flag as well. When I retrieve a position from the hashtable and the checkmate flag is set then I only have to correct the score again for depth. Tony > >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.
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.