Author: John Stanback
Date: 13:28:30 06/23/98
Go up one level in this thread
On June 23, 1998 at 03:58:26, Ulrich Tuerke wrote: >On June 22, 1998 at 16:11:47, John Stanback wrote: > >>This is a nice position for testing/debugging transposition >>tables and draw by 50 move rule. I modified Zarkov to allow >>it to search beyond 100 plies, but it didn't find the draw. >>Then I added 1 line of code to store positions which were >>scored by the 50 move rule or draw by repetition in the >>transposition table before returning from search(). Now it > >I'm afraid this can imply some problems for the search. Assume >that you have flagged a position as a "draw" in your transposition >table because the 50 move rule had applied. If this position is later >reached at a lower depth via a transposition, then the hash table >would return a "draw". But may be, it really isn't because at lower >depth the search might be still below the 50 move threshold ? >This could result in real foolish moves returned from the t-table. >IMHO, similar remarks hold for the draw by repetition case. > >I think that I had once detected problems through storing these >kinds of positions in the hash table. Now, I don't store them. > >Did I get somehing wrong ? No, I think that you and Bruce are right. I was simply fooling around quickly yesterday and not thinking. I have always not stored draws or the parent nodes of draws for this reason. But the downside of this is that the search can miss draws due to the the following behaviour. Suppose that at some node a search is done and one or more moves is found which leads to draw by 50 move rule. Then that node is given the draw score. However, if this position happened to be scored by transposition table lookup rather than by search it could return a different score since the draw by 50 move situation might not have been present when the position was originally stored in the table. I think this is what was happening with Zarkov when it failed to find the draw after a 101 ply search (or longer). My latest and greatest modification (again without much thought involved) is to simply clear the transposition table entry for the current position if it is found to be a draw by repetition or 50 move rule. I also do this for the parent of such a draw position. This at least removes some known "possibly faulty information" from the table. And it happens to allow Zarkov to solve this position :). Thinking about this stuff makes my head hurt -- there's probably some terrible drawback to doing this. John
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.