From e8788d1b32c9356fa0a127952d48c3748d8ec826 Mon Sep 17 00:00:00 2001 From: Michael Chaly Date: Mon, 20 Sep 2021 15:04:13 +0300 Subject: [PATCH] Combo of various parameter tweaks Combination of parameter tweaks in search, evaluation and time management. Original patches by snicolet xoto10 lonfom169 and Vizvezdenec. Includes: * Use bigger grain of positional evaluation more frequently (up to 1 exchange difference in non-pawn-material); * More extra time according to increment; * Increase margin for singular extensions; * Do more aggresive parent node futility pruning. Passed STC https://tests.stockfishchess.org/tests/view/6147deab3733d0e0dd9f313d LLR: 2.94 (-2.94,2.94) <-0.50,2.50> Total: 45488 W: 11691 L: 11450 D: 22347 Ptnml(0-2): 145, 5208, 11824, 5395, 172 Passed LTC https://tests.stockfishchess.org/tests/view/6147f1d53733d0e0dd9f3141 LLR: 2.94 (-2.94,2.94) <0.50,3.50> Total: 62520 W: 15808 L: 15482 D: 31230 Ptnml(0-2): 43, 6439, 17960, 6785, 33 closes https://github.com/official-stockfish/Stockfish/pull/3710 bench 5575265 --- src/nnue/evaluate_nnue.cpp | 2 +- src/search.cpp | 6 +++--- src/timeman.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/nnue/evaluate_nnue.cpp b/src/nnue/evaluate_nnue.cpp index 891f8faa..bfd69987 100644 --- a/src/nnue/evaluate_nnue.cpp +++ b/src/nnue/evaluate_nnue.cpp @@ -168,7 +168,7 @@ namespace Stockfish::Eval::NNUE { int positional = output[0]; int delta_npm = abs(pos.non_pawn_material(WHITE) - pos.non_pawn_material(BLACK)); - int entertainment = (adjusted && delta_npm <= BishopValueMg - KnightValueMg ? 7 : 0); + int entertainment = (adjusted && delta_npm <= RookValueMg - BishopValueMg ? 7 : 0); int A = 128 - entertainment; int B = 128 + entertainment; diff --git a/src/search.cpp b/src/search.cpp index 0c05713c..b400b8f8 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1031,8 +1031,8 @@ moves_loop: // When in check, search starts here // Futility pruning: parent node (~5 Elo) if ( !ss->inCheck - && lmrDepth < 7 - && ss->staticEval + 172 + 157 * lmrDepth <= alpha) + && lmrDepth < 8 + && ss->staticEval + 172 + 145 * lmrDepth <= alpha) continue; // Prune moves with negative SEE (~20 Elo) @@ -1057,7 +1057,7 @@ moves_loop: // When in check, search starts here && (tte->bound() & BOUND_LOWER) && tte->depth() >= depth - 3) { - Value singularBeta = ttValue - 2 * depth; + Value singularBeta = ttValue - 3 * depth; Depth singularDepth = (depth - 1) / 2; ss->excludedMove = move; diff --git a/src/timeman.cpp b/src/timeman.cpp index d3713ee4..69d1c96f 100644 --- a/src/timeman.cpp +++ b/src/timeman.cpp @@ -69,7 +69,7 @@ void TimeManagement::init(Search::LimitsType& limits, Color us, int ply) { limits.time[us] + limits.inc[us] * (mtg - 1) - moveOverhead * (2 + mtg)); // Use extra time with larger increments - double optExtra = std::clamp(1.0 + 10.0 * limits.inc[us] / limits.time[us], 1.0, 1.1); + double optExtra = std::clamp(1.0 + 12.0 * limits.inc[us] / limits.time[us], 1.0, 1.12); // A user may scale time usage by setting UCI option "Slow Mover" // Default is 100 and changing this value will probably lose elo. -- 2.39.2