Make Resetting the Aspiration Window after FailLow more aggressive

Sets beta=(3alpha+beta)/4 when failLow. Before it was beta=(alpha+beta)/2, even
though in theory we should be getting an upper bound from a failLow, we can’t
trust the score that caused the failLow. Therefore beta=alpha doesn’t work. I
made the buffer between the new beta to the bestValue that caused the failLow
smaller.

passed STC:
https://tests.stockfishchess.org/tests/view/688674947b562f5f7b7315b5
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 119616 W: 31253 L: 30818 D: 57545
Ptnml(0-2): 313, 14028, 30724, 14397, 346

passed LTC:
https://tests.stockfishchess.org/tests/view/6887e0ad7b562f5f7b731afc
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 96978 W: 24905 L: 24466 D: 47607
Ptnml(0-2): 59, 10376, 27183, 10809, 62

closes https://github.com/official-stockfish/Stockfish/pull/6197

bench: 3085519
This commit is contained in:
CSTENTOR
2025-08-02 16:12:12 +02:00
committed by Joost VandeVondele
parent cef551092c
commit 57b32f3e60
2 changed files with 2 additions and 1 deletions
+1
View File
@@ -57,6 +57,7 @@ Ciekce
clefrks clefrks
Clemens L. (rn5f107s2) Clemens L. (rn5f107s2)
Cody Ho (aesrentai) Cody Ho (aesrentai)
CSTENTOR
Dale Weiler (graphitemaster) Dale Weiler (graphitemaster)
Daniel Axtens (daxtens) Daniel Axtens (daxtens)
Daniel Dugovic (ddugovic) Daniel Dugovic (ddugovic)
+1 -1
View File
@@ -371,7 +371,7 @@ void Search::Worker::iterative_deepening() {
// otherwise exit the loop. // otherwise exit the loop.
if (bestValue <= alpha) if (bestValue <= alpha)
{ {
beta = (alpha + beta) / 2; beta = (3 * alpha + beta) / 4;
alpha = std::max(bestValue - delta, -VALUE_INFINITE); alpha = std::max(bestValue - delta, -VALUE_INFINITE);
failedHighCnt = 0; failedHighCnt = 0;