Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: computer programs cannot see a very simple draw in a pawn ending

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.