Skip to content

Commit 198418e

Browse files
locutus2snicolet
authored andcommitted
LMR simplification
Unify the "quiet" and "non-quiet" reduction rules for use at any kind of moves. The idea behind it was that both rules reduce at similiar cases in master: one directly for late previous moves and the other indirectly by using a bad stat score which is used for most move sorting and so approximates the late move condition. For captures/promotions the old rule was triggered in 25% but the new rule only for 3% of all cases (so now more reductions are done, whereas for quiet moves reductions keep the same level). STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 162327 W: 35976 L: 36134 D: 90217 http://tests.stockfishchess.org/tests/view/5b6a9a430ebc5902bdb9d5c1 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 29570 W: 5083 L: 4976 D: 19511 http://tests.stockfishchess.org/tests/view/5b6bc5d00ebc5902bdb9e9d6 Bench: 4526980
1 parent bd4d2b0 commit 198418e

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

src/search.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -998,18 +998,12 @@ namespace {
998998
{
999999
Depth r = reduction<PvNode>(improving, depth, moveCount);
10001000

1001-
if (captureOrPromotion) // (~5 Elo)
1002-
{
1003-
// Decrease reduction by comparing opponent's stat score
1004-
if ((ss-1)->statScore < 0)
1005-
r -= ONE_PLY;
1006-
}
1007-
else
1008-
{
1009-
// Decrease reduction if opponent's move count is high (~5 Elo)
1010-
if ((ss-1)->moveCount > 15)
1011-
r -= ONE_PLY;
1001+
// Decrease reduction if opponent's move count is high (~10 Elo)
1002+
if ((ss-1)->moveCount > 15)
1003+
r -= ONE_PLY;
10121004

1005+
if (!captureOrPromotion)
1006+
{
10131007
// Decrease reduction for exact PV nodes (~0 Elo)
10141008
if (pvExact)
10151009
r -= ONE_PLY;

0 commit comments

Comments
 (0)