Author: Robert Hyatt
Date: 12:47:51 09/13/02
Go up one level in this thread
On September 13, 2002 at 15:10:47, Dieter Buerssner wrote: >On September 13, 2002 at 01:28:52, Robert Hyatt wrote: > >>On September 12, 2002 at 11:54:11, Dieter Buerssner wrote: >> >>>On September 12, 2002 at 09:28:28, Robert Hyatt wrote: >>> >>>>The gotcha is to use fail-soft. And this probably requires a few changes >>>>to how you back up scores. IE you might do something like this: >>>> >>>> v=Search(-beta, -alpha, etc); >>>> if (v > alpha) { >>>> if (v > beta) return beta; >>>> alpha=v; >>>> } >>>> >>>>That return beta is not fail-soft. it should be changed to >>>> >>>> if (v > beta) return v; >>> >>>This is not enough. You need a new variable, for example best (intitialized to >>>some very bad score) >>> >>> v=Search(-beta, -alpha, etc); >>> if (v > best) { >>> best = v; >>> /* And to the PV discussion: here the "semi-PV" must be updated */ >>> if (v > alpha) { >>> if (v > beta) return v; >>> alpha=v; >>> } >>> } >>> >>>and out of the search loop: >>> >>> return best; >>> >>>Your code snippet (Crafty, too) is essentially fail hard. In the parent node, >>>after you returned best, you end up returning alpha in most cases (which is >>>almost the same, as you would return beta in the fail high node). >>> >>>Regards, >>>Dieter >> >> >>Right. This was one of _many_ changes I did when I tried mtd(f) a couple of >>years back. I left a bit of the "fail-soft" code in place, because it didn't >>make any real difference, but I did take the piece you mentioned above out >>(starting alpha off very low). > >?? Starting alpha very low should make your search rather slow. I believe, one >really needs a new variable "bestscore" besides alpha. > >Regards, >Dieter Right. Misspoke. Bob
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.