Author: Robert Hyatt
Date: 03:14:04 07/24/98
Go up one level in this thread
On July 24, 1998 at 00:38:01, Inmann Werner wrote: >Hello all! > >can anybody help??? > >I have some problem to implement draw by repetition in my program. >If a position is reached the third time, its a draw by repetition. Ok. >But the position has an evaluation. But because of the draw I return zero >(draw). Now all positions before in alpha beta get a Score of zero. OK. >But this values also may come into the hashtables, and thats really bad and >not correct! >Does anybody have the same problem, and maybe solved it? > >Werner There are two issues: (1) *all* hash table scores are technically wrong almost all the time. Because *none* include path information in the key, yet most include path information in the score. Examples include repetition and 50-move draws. If you store a position a long way away from a 50 move draw, then look it up near a 50-move draw position, you get a wrong result. And there's nothing you can do. If you look up a non-draw position and use that score, you can be making a mistake, because the path in front of that position could be different than the path when it was stored, so that there could be either a 50-move draw or a repetition draw before you reach the endpoint that the position's score belongs to. (2) does the error in (1) affect the program? Hard to say. But everyone uses hashing, and everyone therefore ignores the errors that crop up, most of the time with no ill effects. I always have, for example. Note that not storing draw scores in the hash table only cures one class of error, but not the main ones in (1) above... As to your question about "help" note that a position's score is *not* for that position... it represents the minimax score obtained by searching "draft" plies *below* that position, which is not the same thing at all...
This page took 0.01 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.