Computer Chess Club Archives


Search

Terms

Messages

Subject: Question about the "Fail-Low-Fail-High" problem

Author: Gerrit Reubold

Date: 15:56:20 01/17/99


Hi all,

I remember several post about the following problem, but can't remember the
details or the solution:
Consider you search at the root with a window [a,b] and the search returns the
score x, x < a, a fail low. Now you do a re-search with a less optimistic
window, maybe [x-100,x] or even [-MATE,x]. It can happen now that the search
fails high immediately. I call this the "Fail-Low-Fail-High" problem. I have
ignored the posts on this problem so far, because I didn't understand the
problem until today, while debugging. It seems to happen when the
NullMove-Search calculates a score and maybe returns that score (or beta)
*depending on beta*. When re-searching after a root fail-low, alpha and beta
have changed, and the NullMove-Search of the same node in the tree may or may
not behave as in the first search. My NullMove-search code (R = 2) is standard
code, like this:

if(bTryNullMove /* && some other conditions*/)
{
   int nNullMoveScore = GetNullMoveScore(nBeta,nBeta+1,...);
   if(nNullMoveScore >= nBeta)
      return nNullMoveScore;
}

Is this a known problem, or just a bug in my code?
How do others solve it?
Do I have to *avoid* using the alpha and beta values to make my search
consistent (I use them frequently, for triggering extensions, deciding about
lazy eval, etc.)?
If I remember right, Bob Hyatt's advice on this problem was to ignore it and
simply to search fast and deep. Is it that simple?

Any comments are welcome,
thanks in advance,

Gerrit Reubold



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.