Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question about aspiration search

Author: Jaime Benito de Valle Ruiz

Date: 11:35:46 03/23/04

Go up one level in this thread


>
>There's a chance, if it happens it's because of instability.   Caused for
>instance by using the hashtable as transportationtable, and pruning (for
>instance null-move, that's alpha-beta dependant) and other such techniques.
>
>In Neurosis I have complicated aspirationsearchwindow things at the root,
>and before I wouldn't do anything about these instabilities (that luckily
>don't happen often in my program, once or twice a game, and mostly after
>I started using the hashtable as transportationtable.) but now I detect
>them by looking if, when researching and expecting a lower score a higher
>comes back and the other way around, and try to resolve them, by researching
>the entire iteration (not just that (best move, uptill then anyway) move,
>because it could be after getting rid of the instability the score for that
>move is actually very bad, and needs to find a better one, that might be
>further infront in the move-list.) and research starting with that move,
>and with different alpha-beta values at the root, and try this a few times,
>and if it's still not resolved then, I again do some researches with
>different alpha-beta values, but then with clearing (clearing the scores)
>the hashtable everytime. And if all that fails..I go on..but this seems to
>(at some point..) always solve the instability. :) It's not so slow, as
>these instabilities usually return right away, and seem to happen mostly
>on lower depths in my program, for instance by re-using hashtable
>information from previous (actual game) moves.
>
>Greetings and goodluck,
>Stan

Hi Stan,

  Since I tried to add aspiration search I've found so many problems, that I
don't know where to start (and they all disappear as soon as I disable the
aspiration).
  I've just detected a silly one: Searching at fixed depth 1, my program takes a
pawn with a knight, and gives a positive score. Well, after a few captures it
can be seen that the capture was a very bad idea. The first thing I thought was
that I had a bug in my quiescent search, but I didn't: Qsearch called without a
tiny alpha-beta window returns a big negative score. This is what happened:

  The root tried first a capture, it turned out to be bad (-3.26), and alpha is
set at -3.26 (alpha=-INFINITE, beta=INFINITE initially). The second move was
tried, and search was called with a small window around -3.26 (alpha-326,
beta=-325). The problem here is that due to this values for alpha and beta, one
of the captures in the quiscent search is found to be futile (doesn't reach
alpha after capturing), and it stops before completing the full sequence where
it finally looses.
  PROBLEM: Qsearch returns a false value, and it is stored in the hash as an
"Exact" value (+0.24). This value fails high (-3.27,-3.25), so a research is
done with a wider windows. But now there is a hash match with +0.24!, so Qsearch
is never called. The result: +0.24. This would have never happened without hash
tables... or with tables but without aspiration.
  How to fix this mess?
  Thank you,

  Jaime



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.