mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 07:27:46 +00:00
Tuned Values after 2 million spsa games
Various king and pawn eval values tuned after 2 million games. Rounding slightly adjusted. LTC: http://tests.stockfishchess.org/tests/view/5b477a260ebc5978f4be3ed4 LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 32783 W: 5852 L: 5588 D: 21343 STC: http://tests.stockfishchess.org/tests/view/5b472d420ebc5978f4be3e4d LLR: 3.23 (-2.94,2.94) [0.00,4.00] Total: 44380 W: 10201 L: 9841 D: 24338 I think I reached the limit of the fishtest framework. It frequently crashed at 2 million games already. The small values also moved a lot throughout the entire tuning session though with smaller margin. The passed danger and close enemies values seems the most sensitive (changing close enemies alone to 6 failed before but now it passes), whether or not they are close to optimal I don't know, but it seems some parameters are also correlated to others. Closes https://github.com/official-stockfish/Stockfish/pull/1670 bench: 5103722
This commit is contained in:
committed by
Stéphane Nicolet
parent
d2752fdc15
commit
d2d4e85f25
+18
-18
@@ -142,28 +142,28 @@ namespace {
|
||||
|
||||
// PassedRank[Rank] contains a bonus according to the rank of a passed pawn
|
||||
constexpr Score PassedRank[RANK_NB] = {
|
||||
S(0, 0), S(4, 17), S(7, 20), S(14, 36), S(42, 62), S(165, 171), S(279, 252)
|
||||
S(0, 0), S(5, 18), S(12, 23), S(10, 31), S(57, 62), S(163, 167), S(271, 250)
|
||||
};
|
||||
|
||||
// PassedFile[File] contains a bonus according to the file of a passed pawn
|
||||
constexpr Score PassedFile[FILE_NB] = {
|
||||
S( 11, 14), S( 0, -5), S(-2, -8), S(-25,-13),
|
||||
S(-25,-13), S(-2, -8), S( 0, -5), S( 11, 14)
|
||||
S( -1, 7), S( 0, 9), S(-9, -8), S(-30,-14),
|
||||
S(-30,-14), S(-9, -8), S( 0, 9), S( -1, 7)
|
||||
};
|
||||
|
||||
// PassedDanger[Rank] contains a term to weight the passed score
|
||||
constexpr int PassedDanger[RANK_NB] = { 0, 0, 0, 2, 7, 12, 19 };
|
||||
constexpr int PassedDanger[RANK_NB] = { 0, 0, 0, 3, 7, 11, 20 };
|
||||
|
||||
// KingProtector[knight/bishop] contains a penalty according to distance from king
|
||||
constexpr Score KingProtector[] = { S(4, 6), S(6, 3) };
|
||||
constexpr Score KingProtector[] = { S(5, 6), S(6, 5) };
|
||||
|
||||
// Assorted bonuses and penalties
|
||||
constexpr Score BishopPawns = S( 3, 5);
|
||||
constexpr Score CloseEnemies = S( 8, 0);
|
||||
constexpr Score BishopPawns = S( 3, 7);
|
||||
constexpr Score CloseEnemies = S( 6, 0);
|
||||
constexpr Score Connectivity = S( 3, 1);
|
||||
constexpr Score CorneredBishop = S( 50, 50);
|
||||
constexpr Score Hanging = S( 52, 30);
|
||||
constexpr Score HinderPassedPawn = S( 5, -1);
|
||||
constexpr Score HinderPassedPawn = S( 4, 0);
|
||||
constexpr Score KnightOnQueen = S( 21, 11);
|
||||
constexpr Score LongDiagonalBishop = S( 22, 0);
|
||||
constexpr Score MinorBehindPawn = S( 16, 0);
|
||||
@@ -171,13 +171,13 @@ namespace {
|
||||
constexpr Score PawnlessFlank = S( 20, 80);
|
||||
constexpr Score RookOnPawn = S( 8, 24);
|
||||
constexpr Score SliderOnQueen = S( 42, 21);
|
||||
constexpr Score ThreatByKing = S( 31, 75);
|
||||
constexpr Score ThreatByPawnPush = S( 49, 30);
|
||||
constexpr Score ThreatByKing = S( 23, 76);
|
||||
constexpr Score ThreatByPawnPush = S( 45, 40);
|
||||
constexpr Score ThreatByRank = S( 16, 3);
|
||||
constexpr Score ThreatBySafePawn = S(165,133);
|
||||
constexpr Score ThreatBySafePawn = S(173,102);
|
||||
constexpr Score TrappedRook = S( 92, 0);
|
||||
constexpr Score WeakQueen = S( 50, 10);
|
||||
constexpr Score WeakUnopposedPawn = S( 5, 26);
|
||||
constexpr Score WeakUnopposedPawn = S( 5, 29);
|
||||
|
||||
#undef S
|
||||
|
||||
@@ -471,12 +471,12 @@ namespace {
|
||||
unsafeChecks &= mobilityArea[Them];
|
||||
|
||||
kingDanger += kingAttackersCount[Them] * kingAttackersWeight[Them]
|
||||
+ 64 * kingAttacksCount[Them]
|
||||
+ 183 * popcount(kingRing[Us] & weak)
|
||||
+ 122 * popcount(pos.blockers_for_king(Us) | unsafeChecks)
|
||||
- 860 * !pos.count<QUEEN>(Them)
|
||||
- 7 * mg_value(score) / 8
|
||||
+ 17 ;
|
||||
+ 69 * kingAttacksCount[Them]
|
||||
+ 185 * popcount(kingRing[Us] & weak)
|
||||
+ 129 * popcount(pos.blockers_for_king(Us) | unsafeChecks)
|
||||
- 873 * !pos.count<QUEEN>(Them)
|
||||
- 6 * mg_value(score) / 8
|
||||
- 2 ;
|
||||
|
||||
// Transform the kingDanger units into a Score, and subtract it from the evaluation
|
||||
if (kingDanger > 0)
|
||||
|
||||
Reference in New Issue
Block a user