Skip to content

Commit c25d4c4

Browse files
FauziAkramvondele
authored andcommitted
Tuning classical and NNUE scaling terms
changes to parameters in both classical and NNUE scaling, following up from an earlier successful #3958 passed STC: LLR: 2.95 (-2.94,2.94) <0.00,2.50> Total: 23936 W: 6490 L: 6234 D: 11212 Ptnml(0-2): 107, 2610, 6306, 2810, 135 https://tests.stockfishchess.org/tests/view/625820aa33c40bb9d964e6ae passed LTC: LLR: 2.94 (-2.94,2.94) <0.50,3.00> Total: 50376 W: 13629 L: 13327 D: 23420 Ptnml(0-2): 20, 4979, 14920, 5217, 52 https://tests.stockfishchess.org/tests/view/62584592c1d7f5008a33a4d1 closes #3982 Bench: 6964954
1 parent c3b67fa commit c25d4c4

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

src/evaluate.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,12 @@ namespace {
198198
constexpr Value SpaceThreshold = Value(11551);
199199

200200
// KingAttackWeights[PieceType] contains king attack weights by piece type
201-
constexpr int KingAttackWeights[PIECE_TYPE_NB] = { 0, 0, 81, 52, 44, 10 };
201+
constexpr int KingAttackWeights[PIECE_TYPE_NB] = { 0, 0, 76, 46, 45, 14 };
202202

203203
// SafeCheck[PieceType][single/multiple] contains safe check bonus by piece type,
204204
// higher if multiple safe checks are possible for that piece type.
205205
constexpr int SafeCheck[][2] = {
206-
{}, {}, {803, 1292}, {639, 974}, {1087, 1878}, {759, 1132}
206+
{}, {}, {805, 1292}, {650, 984}, {1071, 1886}, {730, 1128}
207207
};
208208

209209
#define S(mg, eg) make_score(mg, eg)
@@ -1089,7 +1089,7 @@ Value Eval::evaluate(const Position& pos) {
10891089
// but we switch to NNUE during long shuffling or with high material on the board.
10901090
if ( !useNNUE
10911091
|| ((pos.this_thread()->depth > 9 || pos.count<ALL_PIECES>() > 7) &&
1092-
abs(eg_value(pos.psq_score())) * 5 > (856 + pos.non_pawn_material() / 64) * (5 + pos.rule50_count())))
1092+
abs(eg_value(pos.psq_score())) * 5 > (856 + pos.non_pawn_material() / 64) * (10 + pos.rule50_count())))
10931093
{
10941094
v = Evaluation<NO_TRACE>(pos).value(); // classical
10951095
useClassical = abs(v) >= 297;
@@ -1099,7 +1099,7 @@ Value Eval::evaluate(const Position& pos) {
10991099
if (useNNUE && !useClassical)
11001100
{
11011101
Value nnue = NNUE::evaluate(pos, true); // NNUE
1102-
int scale = 1036 + 20 * pos.non_pawn_material() / 1024;
1102+
int scale = 1036 + 22 * pos.non_pawn_material() / 1024;
11031103
Color stm = pos.side_to_move();
11041104
Value optimism = pos.this_thread()->optimism[stm];
11051105
Value psq = (stm == WHITE ? 1 : -1) * eg_value(pos.psq_score());
@@ -1113,7 +1113,7 @@ Value Eval::evaluate(const Position& pos) {
11131113
}
11141114

11151115
// Damp down the evaluation linearly when shuffling
1116-
v = v * (207 - pos.rule50_count()) / 207;
1116+
v = v * (195 - pos.rule50_count()) / 211;
11171117

11181118
// Guarantee evaluation does not hit the tablebase range
11191119
v = std::clamp(v, VALUE_TB_LOSS_IN_MAX_PLY + 1, VALUE_TB_WIN_IN_MAX_PLY - 1);

src/pawns.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,48 +32,48 @@ namespace {
3232
#define S(mg, eg) make_score(mg, eg)
3333

3434
// Pawn penalties
35-
constexpr Score Backward = S( 9, 22);
36-
constexpr Score Doubled = S(13, 51);
37-
constexpr Score DoubledEarly = S(20, 7);
38-
constexpr Score Isolated = S( 3, 15);
39-
constexpr Score WeakLever = S( 4, 58);
40-
constexpr Score WeakUnopposed = S(13, 24);
35+
constexpr Score Backward = S( 6, 19);
36+
constexpr Score Doubled = S(11, 51);
37+
constexpr Score DoubledEarly = S(17, 7);
38+
constexpr Score Isolated = S( 1, 20);
39+
constexpr Score WeakLever = S( 2, 57);
40+
constexpr Score WeakUnopposed = S(15, 18);
4141

4242
// Bonus for blocked pawns at 5th or 6th rank
43-
constexpr Score BlockedPawn[2] = { S(-17, -6), S(-9, 2) };
43+
constexpr Score BlockedPawn[2] = { S(-19, -8), S(-7, 3) };
4444

4545
constexpr Score BlockedStorm[RANK_NB] = {
46-
S(0, 0), S(0, 0), S(75, 78), S(-8, 16), S(-6, 10), S(-6, 6), S(0, 2)
46+
S(0, 0), S(0, 0), S(64, 75), S(-3, 14), S(-12, 19), S(-7, 4), S(-10, 5)
4747
};
4848

4949
// Connected pawn bonus
50-
constexpr int Connected[RANK_NB] = { 0, 5, 7, 11, 23, 48, 87 };
50+
constexpr int Connected[RANK_NB] = { 0, 3, 7, 7, 15, 54, 86 };
5151

5252
// Strength of pawn shelter for our king by [distance from edge][rank].
5353
// RANK_1 = 0 is used for files where we have no pawn, or pawn is behind our king.
5454
constexpr Value ShelterStrength[int(FILE_NB) / 2][RANK_NB] = {
55-
{ V( -5), V( 82), V( 92), V( 54), V( 36), V( 22), V( 28) },
56-
{ V(-44), V( 63), V( 33), V(-50), V(-30), V(-12), V( -62) },
57-
{ V(-11), V( 77), V( 22), V( -6), V( 31), V( 8), V( -45) },
58-
{ V(-39), V(-12), V(-29), V(-50), V(-43), V(-68), V(-164) }
55+
{ V(-2), V(85), V(95), V(53), V(39), V(23), V(25) },
56+
{ V(-55), V(64), V(32), V(-55), V(-30), V(-11), V(-61) },
57+
{ V(-11), V(75), V(19), V(-6), V(26), V(9), V(-47) },
58+
{ V(-41), V(-11), V(-27), V(-58), V(-42), V(-66), V(-163) }
5959
};
6060

6161
// Danger of enemy pawns moving toward our king by [distance from edge][rank].
6262
// RANK_1 = 0 is used for files where the enemy has no pawn, or their pawn
6363
// is behind our king. Note that UnblockedStorm[0][1-2] accommodate opponent pawn
6464
// on edge, likely blocked by our king.
6565
constexpr Value UnblockedStorm[int(FILE_NB) / 2][RANK_NB] = {
66-
{ V( 87), V(-288), V(-168), V( 96), V( 47), V( 44), V( 46) },
67-
{ V( 42), V( -25), V( 120), V( 45), V( 34), V( -9), V( 24) },
68-
{ V( -8), V( 51), V( 167), V( 35), V( -4), V(-16), V(-12) },
69-
{ V(-17), V( -13), V( 100), V( 4), V( 9), V(-16), V(-31) }
66+
{ V(94), V(-280), V(-170), V(90), V(59), V(47), V(53) },
67+
{ V(43), V(-17), V(128), V(39), V(26), V(-17), V(15) },
68+
{ V(-9), V(62), V(170), V(34), V(-5), V(-20), V(-11) },
69+
{ V(-27), V(-19), V(106), V(10), V(2), V(-13), V(-24) }
7070
};
7171

7272

7373
// KingOnFile[semi-open Us][semi-open Them] contains bonuses/penalties
7474
// for king when the king is on a semi-open or open file.
75-
constexpr Score KingOnFile[2][2] = {{ S(-21,10), S(-7, 1) },
76-
{ S( 0,-3), S( 9,-4) }};
75+
constexpr Score KingOnFile[2][2] = {{ S(-18,11), S(-6,-3) },
76+
{ S( 0, 0), S( 5,-4) }};
7777

7878
#undef S
7979
#undef V

0 commit comments

Comments
 (0)