Author: Omid David Tabibi
Date: 01:02:29 08/02/03
Go up one level in this thread
On August 02, 2003 at 03:44:06, Tony Werten wrote:
>On August 01, 2003 at 22:45:11, Robert Hyatt wrote:
>
>>On August 01, 2003 at 05:09:59, Tony Werten wrote:
>>
>>>On July 31, 2003 at 18:15:47, Robert Hyatt wrote:
>>>
>>>>On July 31, 2003 at 14:23:34, Tony Werten wrote:
>>>>
>>>>>On July 30, 2003 at 17:18:12, Rick Bischoff wrote:
>>>>>
>>>>>>>>
>>>>>>>>a. at depth 3- hash table is empty for this position. alpha = -INF, beta = +INF
>>>>>>>>a. all requirements for null move are met
>>>>>>>>a. makes null move: int e = -alphabeta(depth - 3, -beta, -beta +1);
>>>>>>>>
>>>>>>>>b. now we are at depth 0, alpha = -INF, beta = -INF + 1
>>>>>>>>b. we call quies(alpha, beta)
>>>>>>>>
>>>>>>>>c. e = static eval is, oh say, 1.
>>>>>>>>c. e >= beta, return beta
>>>>>>>>
>>>>>>>>b. store this position in the hash table as -INF + 1, exact, depth = 0, return
>>>>>>>>-INF + 1
>>>>>>>
>>>>>>>This is _way_ wrong. How can it be "exact"??? It is impossible for the
>>>>>>>search to return valid scores outside alpha/beta window as defined at the
>>>>>>>root. If you are returning an "edge" then it must be an upper or lower
>>>>>>>edge, not an exact score.
>>>>>>
>>>>>>Yes, I know it is wrong-- which is why I was asking the question to begin with
>>>>>>:-) What I do know is store anything quies returns as exact-- but you are
>>>>>>telling me I can't do that, right? (Forgive my ignorance!)
>>>>>
>>>>>You are correct (despite what the others say), but only if you use the failsoft
>>>>>version of alphabeta.
>>>>>
>>>>>Tony
>>>>
>>>>I don't see how he can be correct even with failsoft. If you get a score
>>>>outside alpha/beta it is _never_ an exact score, it will only be a bound.
>>>
>>>No it isn't. If you evaluate and take a beta cutoff, the evaluationscore is
>>>still exact, has nothing to do with bounds.
>>
>>Never heard of "lazy evaluation?"
>
>AFAIK lazy eval isn't part of alphabeta.
>
In alphabeta when you return a value >= beta, it means that the score is at
least value, but can also be greater than value. So, by no means can this be
considered an exact score. If you are certain that this fail-high returned score
is the direct result of a full static evaluation, this is another story; in this
case you can store it as exact score at depth 0. But the father node can never
be sure that the value returned from the son is the score of static eval.
For example, in quiescence I use:
value = eval();
if (value >= beta)
return value; // not an exact score, as the real score can be greater
>Tony
>
>>
>>
>>>
>>>If you evaluate below beta then there are 2 possibilities. In the end, best
>>>score didn't improve, score is still eval, and eval is exact.
>>>Second, bestscore did improve, must have been by search, so read from start, but
>>>now 1 ply deeper.
>>>
>>>Tony
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.