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.