Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: AlphaBeta has a bug.

Author: Vincent Diepeveen

Date: 20:39:08 08/25/99

Go up one level in this thread


On August 25, 1999 at 16:46:04, Robert Hyatt wrote:

>On August 25, 1999 at 15:27:43, Bas Hamstra wrote:
>
>>Oops: forgot to tell recursive nullmove was ON. Will test without too.
>>
>>On August 25, 1999 at 15:19:00, Bas Hamstra wrote:
>>
>>>Well at least the popular ab approaches have a bug.
>
>the trick with eval > beta is not alpha/beta.  That is a programmer's
>trick. However, if you are at a leaf/tip position, that is perfectly
>correct...  because with traditional alpha/beta scores can't get > beta
>or less than alpha.
>
>If you turn off null move, and turn off hashing, you won't see _any_ of
>this nonsense.

Right, the quiescencesearch isn't part of the alfabeta part obviously,
so no theoretical garantuees nor models there.
So that alfabeta has a bug is not true. Better way of putting it is
that a first approximation of qsearch doesn't need to be very accurate
as you forward prune on beta.

Further it's very unlikely to occur when using PVS, as in PVS
you already start searching the first move with a window [-inf,+inf],
which gives directly a bound back, which is very likely to be the
best score too you can get in that position.

No need to turn off nullmove though, as the only thing that can give
inaccuracy is the quiescencesearch. So at most the program has to really
search a few new nodes in qsearch.




>
>
>
>>>
>>>Suppose you had no tricks, no extensions, no nothing. Just ab and a qsearch on
>>>top of it. You set an aspiration window at the root, say [200, 300].
>>>
>>>Now *if* the true ab value lies within this window, it should find it, right?
>>>
>>>WRONG!
>>>
>>>The fact that everyone has a
>>>
>>>      if(Eval >= Beta) return Beta;
>>>
>>>somewhere in the qsearch, makes that this no longer must be true. Reason:
>>>suppose you sacrifice lots of material, but can win more material back, due to
>>>severe mating threats, or whatever. With the window [240, 260] the qsearch
>>>concludes at some point to return Beta because of the material advantage (3
>>>pieces sacced), resulting in a fail-low on the [240, 260] window. However whith
>>>a wider window it can NOT do this, and finds the true value of 246. It now sees
>>>the material can be won back with rent.
>>>
>>>My conclusion is that a fail low on [240, 260] followed by a result of 246
>>>on [-inf, inf] is completely normal and unavoidable in many cases. It also
>>>explains this:
>>>
>>>  fail low on [240, 260]
>>>  fail high on [-inf, 241]
>>>  value = 246 on [-inf, inf]
>>>
>>>I don't like it. Suppose you start ab with [-inf, inf] and after a while
>>>alphabeta itsself has established a window of [x, y], halfway the search.
>>>Shouldn't the same phenomenon be possible?
>>>
>>>
>>>
>>>Regards,
>>>Bas Hamstra.



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.