Author: Christophe Theron
Date: 18:51:03 12/23/00
Go up one level in this thread
On December 23, 2000 at 17:59:38, Robert Hyatt wrote:
>On December 23, 2000 at 14:31:57, Gian-Carlo Pascutto wrote:
>
>>On December 23, 2000 at 12:53:03, Robert Hyatt wrote:
>>
>>>
>>>I don't know if that would work. Such a null-move search _must_ fail high,
>>>or else you are winning. Because you just let the opponent play two moves in
>>>a row, and if he can't win with that advantage, something is up. I don't think
>>>you can use the score returned by null-move to set the initial aspiration
>>>window for that reason.
>>
>>I wasn't thinking of that, but of the case where two moves for the
>>opponent would not allow him to get his score high enough to stay
>>inside the window you originally set. In that case your window must
>>be way too high/low (depening on who's side you look at ;) or you
>>have a zugzwang situtation.
>>
>>But now that you mention it, why not use the nullmove score as a lower
>>bound (alpha) for the search? The idea being that we must be able to
>>improve upon what would happen if we would pass. This might come in
>>handy in cases where you fail low, and instead of going to -INF, just
>>set alpha to the nullmove score.
>>
>>--
>>GCP
>
>
>You could do this, but I think the normal "previous value - .5" (or whatever
>a programmer chooses to use) would be _far_ more accurate. The null-move score
>would probably lose material big time... ie you play QxQ and if I play a null
>move, you move the queen and I am a queen down...
In non-zugzwang positions it is assumed that there exists at least one move
which has a score above or equal to the score of the null move with reduced
search.
So if you usually use (previous_score-0.5) as your lower bound for aspiration
search, then it sounds logical that using:
max( previous_score-0.5, null_move_score )
will improve (reduce) the size of your window.
Apparently this does not work for me because my program is very selective, and
very sensitive to small windows (with too small windows I get to many search
inconsistencies and spend too much time solving these inconsistencies with
re-searches).
I also think that the reduced search after null move can see almost all tactics,
but it misses too many positional lines. So using it to reduce the aspiration
window will certainly lead to wrong bounds (a few centipawns too high in quiet
positions), and wil cause lots of expensive re-searches.
One thing that null moving at the root can do is filling the killer tables (and
possibly hash tables?) with good moves for the opponent, of forced moves after
these for the side to move. So it might be that the null move search at the root
is free, for this reason. But iterative deepening does that already... I can
also understand what is the purpose of it (adjusting the aspiration window), but
I don't think it improves the program.
Christophe
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.