mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
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
This commit is contained in:
parent
49c79aa15c
commit
ff4c22238a
1 changed files with 10 additions and 10 deletions
|
@ -66,7 +66,7 @@ namespace {
|
||||||
|
|
||||||
// Futility margin
|
// Futility margin
|
||||||
Value futility_margin(Depth d, bool improving) {
|
Value futility_margin(Depth d, bool improving) {
|
||||||
return Value(231 * (d - improving));
|
return Value(214 * (d - improving));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reductions lookup table, initialized at startup
|
// Reductions lookup table, initialized at startup
|
||||||
|
@ -74,7 +74,7 @@ namespace {
|
||||||
|
|
||||||
Depth reduction(bool i, Depth d, int mn) {
|
Depth reduction(bool i, Depth d, int mn) {
|
||||||
int r = Reductions[d] * Reductions[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) {
|
constexpr int futility_move_count(bool improving, Depth depth) {
|
||||||
|
@ -83,7 +83,7 @@ namespace {
|
||||||
|
|
||||||
// History and stats update bonus, based on depth
|
// History and stats update bonus, based on depth
|
||||||
int stat_bonus(Depth d) {
|
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
|
// 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)
|
// Step 8. Null move search with verification search (~40 Elo)
|
||||||
if ( !PvNode
|
if ( !PvNode
|
||||||
&& (ss-1)->currentMove != MOVE_NULL
|
&& (ss-1)->currentMove != MOVE_NULL
|
||||||
&& (ss-1)->statScore < 24185
|
&& (ss-1)->statScore < 23767
|
||||||
&& eval >= beta
|
&& eval >= beta
|
||||||
&& eval >= ss->staticEval
|
&& 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
|
&& !excludedMove
|
||||||
&& pos.non_pawn_material(us)
|
&& pos.non_pawn_material(us)
|
||||||
&& (ss->ply >= thisThread->nmpMinPly || us != thisThread->nmpColor))
|
&& (ss->ply >= thisThread->nmpMinPly || us != thisThread->nmpColor))
|
||||||
|
@ -809,7 +809,7 @@ namespace {
|
||||||
assert(eval - beta >= 0);
|
assert(eval - beta >= 0);
|
||||||
|
|
||||||
// Null move dynamic reduction based on depth and value
|
// 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->currentMove = MOVE_NULL;
|
||||||
ss->continuationHistory = &thisThread->continuationHistory[0][0][NO_PIECE][0];
|
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);
|
ttCapture = ttMove && pos.capture_or_promotion(ttMove);
|
||||||
|
|
||||||
// Step 11. A small Probcut idea, when we are in check
|
// Step 11. A small Probcut idea, when we are in check
|
||||||
probCutBeta = beta + 400;
|
probCutBeta = beta + 409;
|
||||||
if ( ss->inCheck
|
if ( ss->inCheck
|
||||||
&& !PvNode
|
&& !PvNode
|
||||||
&& depth >= 4
|
&& depth >= 4
|
||||||
|
@ -1073,7 +1073,7 @@ moves_loop: // When in check, search starts from here
|
||||||
{
|
{
|
||||||
extension = 1;
|
extension = 1;
|
||||||
singularQuietLMR = !ttCapture;
|
singularQuietLMR = !ttCapture;
|
||||||
if (!PvNode && value < singularBeta - 140)
|
if (!PvNode && value < singularBeta - 93)
|
||||||
extension = 2;
|
extension = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1165,11 +1165,11 @@ moves_loop: // When in check, search starts from here
|
||||||
+ (*contHist[0])[movedPiece][to_sq(move)]
|
+ (*contHist[0])[movedPiece][to_sq(move)]
|
||||||
+ (*contHist[1])[movedPiece][to_sq(move)]
|
+ (*contHist[1])[movedPiece][to_sq(move)]
|
||||||
+ (*contHist[3])[movedPiece][to_sq(move)]
|
+ (*contHist[3])[movedPiece][to_sq(move)]
|
||||||
- 4791;
|
- 4923;
|
||||||
|
|
||||||
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
|
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
|
||||||
if (!ss->inCheck)
|
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
|
// In general we want to cap the LMR depth search at newDepth. But if
|
||||||
|
|
Loading…
Add table
Reference in a new issue