Computer Chess Club Archives


Search

Terms

Messages

Subject: Bug-free fail soft must pass return_type

Author: rasjid chan

Date: 00:06:35 06/19/05

Go up one level in this thread


Vasik,

How do you resolve this simplest of case:-
We have:-
1) absearch has a rep3 that FH with 0 > beta;
2) Assume for the node below, all other moves also fail low.

Now at the node after returning from rep3():-
Consider code-block A.

 int absearch(int alpha, int beta){
   int best, alpha0 = alpha;

  score = -absearch();
  //score== 0 from rep3

  if (score>alpha){
   alpha = score;
   ...
  }else if (alpha == alpha0){
/*code-block A*/

  //if we DO NOT pass down return_type, we do this:-
   if (score>best)
     best = score;
   }

 If all other moves also fail low with score below 0, then
 best = 0; we finally return best(0) which is an error.

  //if we PASS DOWN return_type, we do this:-
   if (return_type == REP3)
     best = alpha;
   }
 If all other moves also fail low with score < alpha , then
 best = alpha; we finally return best(alpha) which is CORRECT.

 This is similar to the cases of forward-prunning, lazy evaluation, etc
 when we CANNOT fail low and soft at the same time.
  }


   return ....
 }


 Have I mixed up darkness with the light.

 Best Regards
 Rasjid



This page took 0.01 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.