I wonder how other engine developers do that, and if they managed to find a way that actually improves anything.
Amongst my several attempts, the most "logical" one would be
Code: Select all
do {
score = search(..., depth, alpha, beta)
if (score <= alpha)
alpha=-INF;
else if (score >= beta)
beta = +INF;
} while (score <= alpha || score >= beta);
// set aspiration window for the next depth
alpha = score - 150;
beta = score + 150;