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:
candirufish
2018-07-14 08:08:32 +02:00
committed by Stéphane Nicolet
parent d2752fdc15
commit d2d4e85f25
2 changed files with 31 additions and 31 deletions
+18 -18
View File
@@ -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)