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.