Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: More Help: Aspiration failure

Author: Robert Hyatt

Date: 14:36:10 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.


correct...


>
>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 .
>

yes...


>//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.



In the above, after doing the _second_ call to search (using the original
alpha and beta values) it is possible that you get 'alpha' back, rather than
a score > alpha+1 which the fail-high suggested you would get.  When this
happens, I just fall out of the above and do nothing...  I don't accept the
move nor the score, and stick with the previous best move...



>
>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.

that is where I am questioning what you are doing.  You failed high on
alpha,alpha+1, then you re-searched with alpha,beta, and this returned
alpha.  Which means the score is <= alpha.  I don't want such a score as I
already have a move that will give me 'alpha' as the best, so what use is it
to find that this move is < alpha?  The first fail-high (alpha,alpha+1) was
wrong, it was caused by a null-move search screwing up somewhere down in the
tree, and in my case, I just toss it out...

Before doing this I watched crafty blow a easily won game vs ferret one
afternoon... it failed high, took the move even though it then failed low on
the re-search, and played it.  And immediately went from +3 to -2 on the next
search after making that lemon...




>
>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.


I don't follow "fails low on the rest of the root moves after a fail high"
exactly, unless you mean that more than one might fail high, then fail low on
the re-search.  Note that if the _research_ fails high, I play the move, even
if I change the bound to beta,+infinity and search again and it fails low.  IE
I trust the fail high on the big window, but I don't trust the fail-high on the
PVS null-window unless it produces a good score...




>
>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.