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
Clemens L. (rn5f107s2)
Cody Ho (aesrentai)
CSTENTOR
Dale Weiler (graphitemaster)
Daniel Axtens (daxtens)
Daniel Dugovic (ddugovic)
+1 -1
View File
@@ -371,7 +371,7 @@ void Search::Worker::iterative_deepening() {
// otherwise exit the loop.
if (bestValue <= alpha)
{
beta = (alpha + beta) / 2;
beta = (3 * alpha + beta) / 4;
alpha = std::max(bestValue - delta, -VALUE_INFINITE);
failedHighCnt = 0;