From: Joost VandeVondele Date: Wed, 23 Aug 2017 19:00:28 +0000 (+0200) Subject: Use moveCount history for reduction X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=5ef94eb970bc1e4f95ebc13ec2c31b191ea46f87 Use moveCount history for reduction Use less reduction for moves with larger moveCount if your opponent did an unexpected (== high moveCount) move in the previous ply... unexpected moves might need unexpected answers. passed STC: http://tests.stockfishchess.org/tests/view/599f08cc0ebc5916ff64aace LLR: 2.97 (-2.94,2.94) [0.00,5.00] Total: 9638 W: 1889 L: 1720 D: 6029 passed LTC: http://tests.stockfishchess.org/tests/view/599f1e5c0ebc5916ff64aadc LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 28308 W: 3742 L: 3533 D: 21033 Bench: 5747429 --- diff --git a/src/search.cpp b/src/search.cpp index 3a54bf01..09e12ed1 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -908,7 +908,8 @@ moves_loop: // When in check search starts from here } // Reduced depth of the next LMR search - int lmrDepth = std::max(newDepth - reduction(improving, depth, moveCount), DEPTH_ZERO) / ONE_PLY; + int mch = std::max(1, moveCount - (ss-1)->moveCount / 16); + int lmrDepth = std::max(newDepth - reduction(improving, depth, mch), DEPTH_ZERO) / ONE_PLY; // Countermoves based pruning if ( lmrDepth < 3 @@ -959,7 +960,8 @@ moves_loop: // When in check search starts from here && moveCount > 1 && (!captureOrPromotion || moveCountPruning)) { - Depth r = reduction(improving, depth, moveCount); + int mch = std::max(1, moveCount - (ss-1)->moveCount / 16); + Depth r = reduction(improving, depth, mch); if (captureOrPromotion) r -= r ? ONE_PLY : DEPTH_ZERO;