Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question: Fail High then Low at Root

Author: Robert Hyatt

Date: 06:20:39 12/29/99

Go up one level in this thread


On December 29, 1999 at 06:38:36, José Carlos wrote:

>On December 28, 1999 at 10:02:23, Robert Hyatt wrote:
>
>>On December 28, 1999 at 01:38:49, William Bryant wrote:
>>
>>>I looked at this a year ago, but want to again ask the best way to handle
>>>this situation.
>>>
>>>You fail high at the root,
>>>	increase alpha to beta -1
>>>	increase beta to Mate (or Mate - 1 depending upon how these are defined)
>>>Then you fail low on the same move.
>>>
>>>What I have been doing is accepting the fail high as correct,
>>>	making this the PV move,
>>>	and continuing the search at the next iteration with
>>>	a window set around alpha which is the old beta -1, + or - the aspiration
>>>	window size.
>>>
>>>Is this correct, is there a better way to handle a fail high/low.
>>>
>>>Thanks
>>>
>>>William
>>>wbryant@ix.netcom.com
>>
>>
>>I have two cases.  (don't forget I use PVS).
>>
>>1.  get a value for first root move as normal, then a later move fails high
>>on the null-window search, but when I re-search with the normal PVS window,
>>it now fails low.  I pretend the fail high didn't happen and keep the original
>>root move.
>>
>>2.  A root move fails high, but then fails low on the re-search.  I keep the
>>fail-high move.  You can probably eliminate the fail-low by simply searching
>>with -inf,+inf, but it will be slower, and due to hash overwrites/draft problems
>>this fail-high/fail-low problem will happen without this large window.  And with
>>the large window you might fail high  on bound X, but get a score back that is
>>< X...
>>
>>It is mainly an artifact of null-move search and hashing...
>
>  I don't use null-move, but I use hashing, and I don't understand how is it
>possible to get a fail-high and then a fail-low in the research due to the
>hashing.
>  As I understand, when I fail-high in the pvs, I get a lower-bound for the real
>value of the position (I use fail-soft), so if I research with the new alfa set
>to that value, I could never fail-low. Am I wrong?
>
>  José C.


No... here is how it happens.  You search deeper than normal, thanks to the
opponent taking a long time.  When you reach (down in the tree) position X,
you store that position in the hash, with "score > .3" and draft=7.  He makes
a different move and you start over.  But you find a sequence of moves that
transposes to reach position X.  But when you check the draft, you get 7 and
that 'fail high' deep in the tree is enough to cause you to fail high at the
root.  Now you relax beta and search again.  When you again return to X, you
find that the draft is still ok, but the bound is useless because beta is +inf,
and the table entry says score >.3. You can't fail high here now, you have to
search on your own.  And you can't get deep enough to see why the fail high
occurred, so you fail low instead.

nothing you can do about it except to require exact draft matches on the
hash hits, which will grossly affect performance, or else disable hashing which
would be even worse.  The rest of us ignore it as an artifact that can't be
solved.



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.