Skip to content

Commit

Permalink
Refine SEE threshold for capture pruning.
Browse files Browse the repository at this point in the history
eloDoc suggests that this part of search is worth ~18 Elo.
This patch refines the depth dependence of the SEE threshold.

passed STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 21398 W: 4474 L: 4245 D: 12679
http://tests.stockfishchess.org/tests/view/5abfb0630ebc591a560aae07

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 9028 W: 1439 L: 1285 D: 6304
http://tests.stockfishchess.org/tests/view/5abfbff30ebc591a560aae11

Closes #1527

Bench: 6036915
  • Loading branch information
vondele authored and snicolet committed Mar 31, 2018
1 parent d5e3e7d commit f268123
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/search.cpp
Expand Up @@ -72,6 +72,16 @@ namespace {
return Value((175 - 50 * improving) * d / ONE_PLY);
}

// Margin for pruning capturing moves: almost linear in depth
constexpr int CapturePruneMargin[] = { 0,
1 * PawnValueEg * 1055 / 1000,
2 * PawnValueEg * 1042 / 1000,
3 * PawnValueEg * 963 / 1000,
4 * PawnValueEg * 1038 / 1000,
5 * PawnValueEg * 950 / 1000,
6 * PawnValueEg * 930 / 1000
};

// Futility and reductions lookup tables, initialized at startup
int FutilityMoveCounts[2][16]; // [improving][depth]
int Reductions[2][2][64][64]; // [pv][improving][depth][moveNumber]
Expand Down Expand Up @@ -919,7 +929,7 @@ namespace {
}
else if ( depth < 7 * ONE_PLY
&& !extension
&& !pos.see_ge(move, -PawnValueEg * (depth / ONE_PLY)))
&& !pos.see_ge(move, -Value(CapturePruneMargin[depth / ONE_PLY])))
continue;
}

Expand Down

0 comments on commit f268123

Please sign in to comment.