Skip to content

Commit 5eeb96d

Browse files
FauziAkramvondele
authored andcommitted
VLTC tuning
Tuning some parameters that scale well with longer time control: Failed STC: https://tests.stockfishchess.org/tests/view/6313424d8202a039920e130a LLR: -2.94 (-2.94,2.94) <-1.75,0.25> Total: 42680 W: 11231 L: 11540 D: 19909 Ptnml(0-2): 191, 5008, 11232, 4737, 172 Passed LTC: https://tests.stockfishchess.org/tests/view/6311e2cd874169ca52ae7933 LLR: 2.94 (-2.94,2.94) <0.50,2.50> Total: 53448 W: 14782 L: 14437 D: 24229 Ptnml(0-2): 101, 5214, 15740, 5577, 92 Passed VLTC: https://tests.stockfishchess.org/tests/view/6312530cfa99a92e3002c927 LLR: 2.95 (-2.94,2.94) <0.50,2.50> Total: 123336 W: 33465 L: 33007 D: 56864 Ptnml(0-2): 38, 11466, 38204, 11920, 40 closes #4154 Bench: 5609606
1 parent a4d18d2 commit 5eeb96d

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/search.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace {
6363

6464
// Futility margin
6565
Value futility_margin(Depth d, bool improving) {
66-
return Value(168 * (d - improving));
66+
return Value(174 * (d - improving));
6767
}
6868

6969
// Reductions lookup table, initialized at startup
@@ -362,7 +362,7 @@ void Thread::search() {
362362
trend = (us == WHITE ? make_score(tr, tr / 2)
363363
: -make_score(tr, tr / 2));
364364

365-
int opt = sigmoid(prev, 8, 17, 144, 13966, 183);
365+
int opt = sigmoid(prev, 8, 17, 144, 15012, 183);
366366
optimism[ us] = Value(opt);
367367
optimism[~us] = -optimism[us];
368368
}
@@ -778,7 +778,7 @@ namespace {
778778
// return a fail low.
779779
if ( !PvNode
780780
&& depth <= 7
781-
&& eval < alpha - 348 - 258 * depth * depth)
781+
&& eval < alpha - 341 - 267 * depth * depth)
782782
{
783783
value = qsearch<NonPV>(pos, ss, alpha - 1, alpha);
784784
if (value < alpha)
@@ -797,7 +797,7 @@ namespace {
797797
// Step 9. Null move search with verification search (~22 Elo)
798798
if ( !PvNode
799799
&& (ss-1)->currentMove != MOVE_NULL
800-
&& (ss-1)->statScore < 14695
800+
&& (ss-1)->statScore < 15344
801801
&& eval >= beta
802802
&& eval >= ss->staticEval
803803
&& ss->staticEval >= beta - 15 * depth - improvement / 15 + 201 + complexity / 24
@@ -808,7 +808,7 @@ namespace {
808808
assert(eval - beta >= 0);
809809

810810
// Null move dynamic reduction based on depth, eval and complexity of position
811-
Depth R = std::min(int(eval - beta) / 147, 5) + depth / 3 + 4 - (complexity > 650);
811+
Depth R = std::min(int(eval - beta) / 152, 5) + depth / 3 + 4 - (complexity > 650);
812812

813813
ss->currentMove = MOVE_NULL;
814814
ss->continuationHistory = &thisThread->continuationHistory[0][0][NO_PIECE][0];
@@ -844,7 +844,7 @@ namespace {
844844
}
845845
}
846846

847-
probCutBeta = beta + 179 - 46 * improving;
847+
probCutBeta = beta + 173 - 46 * improving;
848848

849849
// Step 10. ProbCut (~4 Elo)
850850
// If we have a good enough capture and a reduced search returns a value
@@ -906,9 +906,9 @@ namespace {
906906
return qsearch<PV>(pos, ss, alpha, beta);
907907

908908
if ( cutNode
909-
&& depth >= 8
909+
&& depth >= 9
910910
&& !ttMove)
911-
depth--;
911+
depth -= 2;
912912

913913
moves_loop: // When in check, search starts here
914914

@@ -1009,7 +1009,7 @@ namespace {
10091009
&& !PvNode
10101010
&& lmrDepth < 6
10111011
&& !ss->inCheck
1012-
&& ss->staticEval + 281 + 179 * lmrDepth + PieceValue[EG][pos.piece_on(to_sq(move))]
1012+
&& ss->staticEval + 277 + 187 * lmrDepth + PieceValue[EG][pos.piece_on(to_sq(move))]
10131013
+ captureHistory[movedPiece][to_sq(move)][type_of(pos.piece_on(to_sq(move)))] / 6 < alpha)
10141014
continue;
10151015

@@ -1173,7 +1173,7 @@ namespace {
11731173
+ (*contHist[0])[movedPiece][to_sq(move)]
11741174
+ (*contHist[1])[movedPiece][to_sq(move)]
11751175
+ (*contHist[3])[movedPiece][to_sq(move)]
1176-
- 4334;
1176+
- 4560;
11771177

11781178
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
11791179
r -= ss->statScore / 15914;
@@ -1188,7 +1188,7 @@ namespace {
11881188
// Do full depth search when reduced LMR search fails high
11891189
if (value > alpha && d < newDepth)
11901190
{
1191-
const bool doDeeperSearch = value > (alpha + 78 + 11 * (newDepth - d));
1191+
const bool doDeeperSearch = value > (alpha + 73 + 12 * (newDepth - d));
11921192
value = -search<NonPV>(pos, ss+1, -(alpha+1), -alpha, newDepth + doDeeperSearch, !cutNode);
11931193

11941194
int bonus = value > alpha ? stat_bonus(newDepth)
@@ -1337,14 +1337,14 @@ namespace {
13371337
quietsSearched, quietCount, capturesSearched, captureCount, depth);
13381338

13391339
// Bonus for prior countermove that caused the fail low
1340-
else if ( (depth >= 4 || PvNode)
1340+
else if ( (depth >= 5 || PvNode)
13411341
&& !priorCapture)
13421342
{
13431343
//Assign extra bonus if current node is PvNode or cutNode
13441344
//or fail low was really bad
13451345
bool extraBonus = PvNode
13461346
|| cutNode
1347-
|| bestValue < alpha - 70 * depth;
1347+
|| bestValue < alpha - 66 * depth;
13481348

13491349
update_continuation_histories(ss-1, pos.piece_on(prevSq), prevSq, stat_bonus(depth) * (1 + extraBonus));
13501350
}

0 commit comments

Comments
 (0)