1
0
Fork 0

Tuning Search

This patch tunes constant in search.cpp

STC:
LLR: 2.94 (-2.94,2.94) <-0.50,2.50>
Total: 30648 W: 2580 L: 2410 D: 25658
Ptnml(0-2): 80, 1969, 11093, 2065, 117
https://tests.stockfishchess.org/tests/view/60a71d3cce8ea25a3ef03fae

LTC:
LLR: 2.95 (-2.94,2.94) <0.50,3.50>
Total: 52896 W: 1776 L: 1617 D: 49503
Ptnml(0-2): 13, 1462, 23347, 1605, 21
https://tests.stockfishchess.org/tests/view/60a794ddce8ea25a3ef0400a

closes https://github.com/official-stockfish/Stockfish/pull/3491

Bench: 4004731
pull/3492/head
bmc4 2021-05-22 02:47:23 -03:00 committed by Stéphane Nicolet
parent 49c79aa15c
commit ff4c22238a
1 changed files with 10 additions and 10 deletions

View File

@ -66,7 +66,7 @@ namespace {
// Futility margin
Value futility_margin(Depth d, bool improving) {
return Value(231 * (d - improving));
return Value(214 * (d - improving));
}
// Reductions lookup table, initialized at startup
@ -74,7 +74,7 @@ namespace {
Depth reduction(bool i, Depth d, int mn) {
int r = Reductions[d] * Reductions[mn];
return (r + 503) / 1024 + (!i && r > 915);
return (r + 534) / 1024 + (!i && r > 904);
}
constexpr int futility_move_count(bool improving, Depth depth) {
@ -83,7 +83,7 @@ namespace {
// History and stats update bonus, based on depth
int stat_bonus(Depth d) {
return d > 14 ? 66 : 6 * d * d + 231 * d - 206;
return d > 14 ? 73 : 6 * d * d + 229 * d - 215;
}
// Add a small random component to draw evaluations to avoid 3-fold blindness
@ -798,10 +798,10 @@ namespace {
// Step 8. Null move search with verification search (~40 Elo)
if ( !PvNode
&& (ss-1)->currentMove != MOVE_NULL
&& (ss-1)->statScore < 24185
&& (ss-1)->statScore < 23767
&& eval >= beta
&& eval >= ss->staticEval
&& ss->staticEval >= beta - 22 * depth - 34 * improving + 162 * ss->ttPv + 159
&& ss->staticEval >= beta - 20 * depth - 22 * improving + 168 * ss->ttPv + 159
&& !excludedMove
&& pos.non_pawn_material(us)
&& (ss->ply >= thisThread->nmpMinPly || us != thisThread->nmpColor))
@ -809,7 +809,7 @@ namespace {
assert(eval - beta >= 0);
// Null move dynamic reduction based on depth and value
Depth R = (1062 + 68 * depth) / 256 + std::min(int(eval - beta) / 190, 3);
Depth R = (1090 + 81 * depth) / 256 + std::min(int(eval - beta) / 205, 3);
ss->currentMove = MOVE_NULL;
ss->continuationHistory = &thisThread->continuationHistory[0][0][NO_PIECE][0];
@ -922,7 +922,7 @@ moves_loop: // When in check, search starts from here
ttCapture = ttMove && pos.capture_or_promotion(ttMove);
// Step 11. A small Probcut idea, when we are in check
probCutBeta = beta + 400;
probCutBeta = beta + 409;
if ( ss->inCheck
&& !PvNode
&& depth >= 4
@ -1073,7 +1073,7 @@ moves_loop: // When in check, search starts from here
{
extension = 1;
singularQuietLMR = !ttCapture;
if (!PvNode && value < singularBeta - 140)
if (!PvNode && value < singularBeta - 93)
extension = 2;
}
@ -1165,11 +1165,11 @@ moves_loop: // When in check, search starts from here
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
+ (*contHist[3])[movedPiece][to_sq(move)]
- 4791;
- 4923;
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
if (!ss->inCheck)
r -= ss->statScore / 14790;
r -= ss->statScore / 14721;
}
// In general we want to cap the LMR depth search at newDepth. But if