Author: Dieter Buerssner
Date: 12:10:47 09/13/02
Go up one level in this thread
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
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.