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.