Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: More Help: Aspiration failure - One More Time

Author: William Bryant

Date: 10:36:24 05/16/99

Go up one level in this thread


On May 16, 1999 at 00:42:15, William Bryant wrote:

>On May 15, 1999 at 20:56:39, Robert Hyatt wrote:
>
>>The most common bug with null move is a fail high, and on the research where
>>beta has been relaxed, you get a fail-low.  _that_ can be a serious problem if
>>you don't ignore the false fail-high at the root.  You will occasionally play a
>>totally garbage move.
>>
>>
>>if I fail high on the pvs search (ie searching 2nd root move with window
>>alpha,alpha+1, I the research with alpha,beta.  If this fails low I just
>>ignore the original fail high and keep going.  Anything else leads to
>>trouble.  Because if you re-search with -infinity, alpha, what good is
>>that?  You want to let the score drop below the already found best score
>>at the root?
>
>I under stand what you are saying, but I think I am thoroughly confused on the
>exact implementation.  Here is what I understand.
>Is this the correct concept?
>
>You set a + or - window around the last score returned from your root search and
>search the next iteration of moves around this 'aspiration' window.
>
>you search the first move (which should be the PV move with good move ordering)
>with this new window, and the rest of the moves with a
>window of -alpha-1, -alpha. If this PVS search returns a score between the
>windowed alpha and beta, then it must be researched with a
>window of -beta, -alpha .
>
>//this is the PVS part of it
>	if (firstmove)
>		Score = -Search(-beta, -alpha, depth-1, NullMoveOK);
>	else { // try a PVS Search
>		Score = -Search(-alpha-1, -alpha, depth - 1,  NullMoveOK);
>		if  ((Score>alpha)  && (Score<beta) && (!OutOfTime))
>			Score = -Search(-beta,-alpha, depth-1, true);	//PVS research
>		}
>
>Where I am lost is when the aspiration window search fails high and low.
>
>if the aspiration window fails high,
>	I flag this and relax the window to alpha = beta -1; beta = INFINITYSCORE;
>	and research the rest of the root moves including the one that failed high.
>
>if the aspiration search returns a score equal to the aspiration alpha score,
>	then I flag this and relax the window to alpha = -INFINITYSCORE without
>	changing beta and research all of the root moves with this new window.
>

As I understand you comments,
	If the aspiration search fails low on the same move after it just failed
	high, then reset alpha and beta back to their initial (aspiration window)
	values and search the rest of the moves.

In "ignoring the false fail high at the root", do you keep the same window but
	not consider this move at this iteration.  ie, keep the next move found
	within this window.  Or, in ingnoring the false fail high, do you consider
		this a good move, back this move up in the pv so at the next iteration it is
	searched first?  If you keep it, how do you compare the score returned for
		the rest of the moves to find the'best' move?

Thank you,

William
wbryant@ix.netcom.com







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.