Computer Chess Club Archives


Search

Terms

Messages

Subject: More Help: Aspiration failure

Author: William Bryant

Date: 21:42:15 05/15/99

Go up one level in this thread


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 rest of the root moves after a
	fail high, then research the moves after the one that failed high with the
	original aspiration window, ignoring the previous fail high.

Thanks for your assistance with, for me, a difficult concept.

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.