Author: Robert Hyatt
Date: 16:59:04 07/07/98
Go up one level in this thread
On July 07, 1998 at 10:24:47, Don Dailey wrote: >On July 06, 1998 at 13:04:17, Robert Hyatt wrote: > >>On July 05, 1998 at 14:14:36, Ernst A. Heinz wrote: >> >>>On July 05, 1998 at 03:18:22, David Eppstein wrote: >>> >>>>I found a new idea to add to my program yesterday...one of those >>>>shouldn't-ever-hurt, could make a minor improvement ones. Maybe it's only new >>>>to me, but I didn't see it in a quick look thru the Crafty sources. If it helps >>>>at all, it would only be in tactical positions where a lot of large subtrees >>>>have mate scores. >>>> >>>>My eval has the property that it doesn't ever return a mate score unless it's >>>>really mate (doesn't everyone's? actually it plays a different game than chess >>>>and winning isn't called "mate" but who cares.) So mate scores are special, >>>>they might not be exact due to search extensions but they're always lower bounds >>>>on the true score. >>>> >>>>The new idea is, when I find a mate, save the position in the hash table, and >>>>look it up again later (say in the next round of iterated deepening), if the >>>>hashed mate score is greater than beta, I use it even when the hashed draft is >>>>less than the depth I'm currently searching. The new deeper search would have >>>>found at least as good a score anyway, so you can just cut it off earlier and >>>>save time. Same when eval is negative mate and is less than alpha. >>>> >>>>Stupid huh? >>> >>>No, not stupid at all -- just obvious and straightforward. I have used it >>>with good success in "DarkThought" for a long time. :-) >>> >>>Moreover, I increase the draft of *exact* mate scores by 1 ply which >>>definitely saves some nodes in many positions. >>> >>>=Ernst= >> >>In Cray Blitz (and in crafty, unless I have broken it) I store mates with a >>"draft" of infinity, because a mate is independent of any draft, and is *always* >>correct. >> >>I don't see why you'd do any different, unless one were to somehow be suspicious >>of their mate scores. When I store a mate score, I do adjust it to be relative >>to the current ply, but that's all... > > >This is how we do it in Cilkchess. This is one Chris Joerg came up with, >I had never thought too much about it. It turns out not to be a noticable >improvement but it is just common sense. > >We also "massage" our mate scores to be always correct. If it's mate in >5 in the hash table it's mate in 5 from that exact position. We had to >"fix" this when we stopped clearing our hash tables between moves and >also the parallelism seems to increase the strange anomolies from not >doing this correctly. > >- Don I'm not sure I understand your last paragraph. A hash entry is an absolute position. And from that position it is mate in N whether it occurs at the root, or at a tip, which means whether you clear hash scores or not (I do on rare occasions although I don't destroy the best move) mate scores should be good across iterations *and* searches, if you store them as mate in N from *here* rather than mate in N from "somewhere back 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.