Author: Robert Hyatt
Date: 15:24:40 11/21/04
Go up one level in this thread
On November 21, 2004 at 13:04:50, Alvaro Jose Povoa Cardoso wrote: >Hi, below there is a quote of my previous question on this matter and your >answer. >My new question is if we avoid storing drawn by repetition positions in the hash >table would we avoid the problem of getting "draws in 90 plies, even though you >can't search beyond (say) 64 plies" like you said? >If so what kind of mechanism would we have to implement to detect these cases? >Maybe a special bit set on the score variable? > >Best regards, >Alvaro Cardoso The problem is caused because you have to store the draw score just like you do a mate score. IE draw in N plies from this position. As that gets transplanted around in the search, the draw depth climbs incorrectly because we don't know complete path info... And when we correct the draw score by adding current depth to it, we get silly numbers. There is not much you can do other than to do as we did and "clamp" the score so that it stays inside your "draw score window" (0-099 or .0 - .099 for cray blitz). But you will see a lot of draw in 99 plies that are wrong. Overall I believe the idea is good, because it let us find always the "deepest draw" to give the opponent a chance to make an error, or to give us a chance to search through a 2-fold repetition to find a way to win without reaching a 3-fold repetition... > > >----------------------------------------------------------------- > >My question: > >>>I was wondering if it is correct to assign a zero score to a position that is >>>a draw by 3 fold repetition. >>>What I mean is that if for example white is ahead in material and black is >>>fighting desperately for a draw, black will try to reach that drawn position >>>as quick as possible while white will try to postpone that position as much as >>>it can. >>>It's a sort of distance to mate but in this case it is a distance to draw by >>>repetition. >>>Does this make any sense to you? >>>I would appreciate your comments. >>> >>>Best regards, >>>Alvaro Cardoso > >Your answer: > >>Forget that idea. We did it in Cray Blitz, and it causes _massive_ problems. >>IE in CB, we blocked off the scores from 0.000 to 0.100 to be draws only. We >>did this by the simple trick at the end of Evaluate() where we just did the >> >>if (score >= 0) score += 100; >> >>100 was 100 millipawns in CB. >> >>The problem is the path. You don't store the path. You will be amazed that >>once you do the above, and then try the thing we did (see "The Cray Blitz draw >>heuristic" in the JICCA) you will get draws in 90 plies, even though you can't >>search beyond (say) 64 plies. Mates work fine because you search to a stopping >>point. But draws do not, and the hash table grafts scores from one part of the >>tree to another producing some pretty bizarre scores. In fact, you can get >>scores that are outside the draw window if you are not careful, which _really_ >>will wreck your search. >> >>Been there.
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.