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.01 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.