Author: Harald Lüßen
Date: 12:21:22 03/21/04
Go up one level in this thread
On March 21, 2004 at 09:37:01, Andrew Wagner wrote:
>So Trueno just played this little game:
...
>Kc5 45. Rc2+ Kd6 {Game drawn by repetition} 1/2-1/2
...
>...but refuses to play the obvious Rc4, choosing instead to happily repeat the
>position to a draw. So, I put in the whole game manually, took back the last
>Kd6, and had it do a search. Immediately, it saw Rc4. Then, I plugged in the
>above position cold, via a FEN, so it wouldn't know it was a repetition. It
>played Kd6, I responded Rd2, to see if it would repeat, and it played Kxc6,
>which is an acceptable move.
>
>Soooo, I'm thinking there must be a problem with retreiving drawn positions from
>the hash table? I'm wondering if this could be a similar phenomenon to what is
>described on Bruce Moreland's page
>http://www.seanet.com/~brucemo/topics/repetition.htm . At this point, all I've
>been doing is, for every move made, I store the hash of the old position along
>with the takeback information. Then, at the top of my search, quiesce, and eval,
>I check to see if the current hash key appears 2 or more times previously.
>
>Any suggestions?
No, because I still have the same problem with Elephant.
And I do nearly the same things you described here. Additionaly
I check for repetition when I accept moves and scores from the
hash table. In this case I scan the hash line like I do when
I retrieve the principle variation from hash. For each hashed
move/position I call a special repetition detection function
and when I find a 3. repetition I give the entire line of moves
the draw score. I don't change hashed values but I return the
draw score to previous plies. (A question: what to do if draw
is not in [alpha,beta]?) The problem is, even this time consuming
algorithm does not work. Sometimes I see lines like this in
the output:
14 248 3201 640337 Kf1-e2 Ra1-a2 Ke2-f1 Ra2-a1 Kf1-e2 Ra1-a2
Ke2-f1 Ra2-a1 Kf1-e2 Ra1-a2 Ke2-f1 Ra2-a1 Kf1-e2 Ra1-a2 Ke2-f1 Ra2-a1 Kf1-e2
Ra1-a2 Ke2-f1 Ra2-a1
with score 248 instead of 0. May be there is an off by one error
or the score finds a secret way out of the search algorithms. :-(
The correct search would see the 0 instead of 248, avoid it and
find a move with score 123 or whatever.
If you find a solution or anybody else knows it, please let me know.
Is there an easy test position where this must happen?
Harald
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.