From 594e2ac9994f22cb7c5b74f3da3dbb512cbdb510 Mon Sep 17 00:00:00 2001 From: bmc4 Date: Wed, 12 May 2021 09:38:26 -0300 Subject: [PATCH] Simplify LMR rule for non-checking captures We simplify away the complicated rule in LMR for "non-checking captures likely to be bad", as it seems not to bring any strength anymore. STC: LLR: 2.94 (-2.94,2.94) <-2.50,0.50> Total: 55256 W: 4972 L: 4897 D: 45387 Ptnml(0-2): 177, 3976, 19234, 4077, 164 https://tests.stockfishchess.org/tests/view/609adf3b3a33eb67a844f842 LTC: LLR: 2.95 (-2.94,2.94) <-2.50,0.50> Total: 10344 W: 437 L: 353 D: 9554 Ptnml(0-2): 1, 322, 4449, 392, 8 https://tests.stockfishchess.org/tests/view/609b3dfa3a33eb67a844f88e -- While at it, we also update the Elo estimate of the previous rule in LMR (see https://tests.stockfishchess.org/tests/view/609af2a63a33eb67a844f867). closes https://github.com/official-stockfish/Stockfish/pull/3460 Bench: 3840688 --- src/search.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 3a0839d6..d16d9cad 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1156,7 +1156,7 @@ moves_loop: // When in check, search starts from here && thisThread->bestMoveChanges <= 2) r++; - // Decrease reduction if opponent's move count is high (~5 Elo) + // Decrease reduction if opponent's move count is high (~1 Elo) if ((ss-1)->moveCount > 13) r--; @@ -1164,14 +1164,7 @@ moves_loop: // When in check, search starts from here if (singularQuietLMR) r--; - if (captureOrPromotion) - { - // Increase reduction for non-checking captures likely to be bad - if ( !givesCheck - && ss->staticEval + PieceValue[EG][pos.captured_piece()] + 210 * depth <= alpha) - r++; - } - else + if (!captureOrPromotion) { // Increase reduction if ttMove is a capture (~3 Elo) if (ttCapture)