Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null move question

Author: Omid David Tabibi

Date: 08:31:33 08/02/03

Go up one level in this thread


On August 02, 2003 at 11:12:29, Tony Werten wrote:

>On August 02, 2003 at 09:04:12, Omid David Tabibi wrote:
>
>>On August 02, 2003 at 08:25:43, Tim Foden wrote:
>>
>>>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.
>>>
>>>Well, I guess it depends how you do it.  In GLC, the "score-so-far" is compared
>>>against alpha and beta, and if it thinks the score it too far out, it returns it
>>>stright away.
>>>
>>>e.g. something like this simplified code:
>>>
>>>int Evaluate( int alpha, int beta )
>>>{
>>>   int eval = (get your mat val here);
>>>
>>>   // see if we can do a lazy evaluation
>>>   const int VAL = (some lazy eval limit -- e.g. say 2 pawns);
>>>   if( eval + VAL <= alpha || eval - VAL >= beta )
>>>      return eval;
>>>
>>>   // do full evaluation here;
>>>   // ...
>>>
>>>   return eval;
>>>}
>>>
>>>AFAIK Crafty is the same (let's face it... I got the idea by looking at Crafty's
>>>source :).  In this case the evaluation cannot be regarded as an exact score.
>>>
>>
>>To summarize, a score can be considered "exact" only if it has been achieved
>>independent of alpha and beta bounds. This is the case only if we are at a leaf
>>node with full evaluation, or other node with alpha < value < beta.
>
>Or when a checkmate score is returned or a drawscore or ....

Fine, checkmate scores, insufficient material draws, threefold repetition draws,
etc, are all independent of alpha and beta bounds, and so they are of course
exact scores. But failing high or low, is not independent of those bounds.



>
>Sorry if I tell you something new, this is old stuff.
>
>When not doing any extensions ( not realistic but anyway) the values returned
>from the last 2 plies from normal search are exact. (As was published 15 years
>ago)
>
>
>Tony
>
>>
>>
>>
>>>Cheers, Tim.
>>>
>>>>
>>>>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.