Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What is the advantage of fail-soft?

Author: Robert Hyatt

Date: 09:30:06 08/26/99

Go up one level in this thread


On August 26, 1999 at 03:30:13, Inmann Werner wrote:

>On August 25, 1999 at 10:59:45, Robert Hyatt wrote:
>
>>On August 25, 1999 at 08:21:32, Bas Hamstra wrote:
>>
>>>My program returns sometimes values outside (a,b), for example MATE. I believe
>>>generally when you allow this, it is called "fail-soft". What is the advantage
>>>of it?
>>>
>>>I vaguely have read somewhere that the advantage lies in better bounds
>>>information. In interprete that as: you put better bound info in your hashtable.
>>>Is that correct? If so, is it a factor?
>>>
>>>Secondly: I use simple alpha beta (not even pvs) with an aspiration window. Now
>>>at some testposition it fails high at the root and score turns out to be 250.
>>>New aspiration window is set (200, 300).
>>>
>>>Now it fails low. However: full (-inf,inf) gives 243!!
>>>
>>>I use no pruning at all. Could the cause be the returning of values outside
>>>(a,b)? I think my basic routines are correct, including hashtable. Only thing I
>>>do is strip losing captures from the qsearch.
>>>
>>>Last: *if* fail soft has advantages, what are the disadvantages?
>>>
>>>Regards,
>>>Bas Hamstra.
>>
>>
>>The advantages are minimal but do exist.
>>
>>1.  when you fail high or low, you have some 'estimate' of how far outside
>>the window the true score will end up, so that you might choose to avoid
>>setting beta to +inf or alpha to -inf, for example..
>>
>>2.  you get slightly better bound information stored in the hash table, so
>>that there is a better chance that these bounds will be used later.
>>
>
>But isn't that risky. I thought, each score outside alpha-beta can be incorrect,
>and then store it in Hashtables for bounds? Can't that give irregular things?
>
>Werner


No.. in the alpha/beta framework, if you get a score < alpha, you can certainly
store a bound that says <= score, rather than <= alpha, and be totally correct.
Because you _did_ find a score < alpha, and there might be scores even worse
than that...  Ditto for scores > beta...  I have noticed no problems with this
at all.  I switched to fail-soft when I experimented with mtd(f) a couple of
years ago..  and left it in because it worked the same as non-fail-soft and I
didn't have to undo all the changes (if value > beta return beta;  becomes
if value > beta return value;, for example..)



>
>>3.  if you try mtd(f) it is critical to get the better 'estimate'...



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.