Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Matevalues, hashtables and iterative deepening

Author: Erik Robertsson

Date: 06:02:38 11/30/01

Go up one level in this thread


On November 30, 2001 at 08:48:20, Odd Gunnar Malin 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.
>
>
>I guess you allready do this when saving hash:
>
>if (bestscore>(MATE-MAX_PLY))
>  hashscore=bestscore+ply;
>else if (bestscore<(-MATE+MAX_PLY))
>  hashscore=bestscore-ply;
>else
>  hashscore=bestscore;
>
>And the opposite when you reading hash:
>
>if (hashscore>(MATE-MAX_PLY))
>  bestscore=hashscore-ply;
>else if (hashscore<(-MATE+MAX_PLY))
>  bestscore=hashscore+ply;
>else
>  bestscore=hashscore;

This I do.

>
>If you use fail-soft alpha-beta it could be the same error that I had in my
>little engine.
>I was returning alpha instead of bestscore in  one of my cutoff.
>
>Odd Gunnar

I don't think so, since I return best score in my cutoffs. I'm guessing it has
to do with storing mate as bounds, so I tried to not doing this, and it seems to
work fine. However, in doing I guess I throw away information that can be useful
and reduce the size of the search tree?

Erik






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.