From: SFisGOD Date: Wed, 12 Dec 2018 19:34:17 +0000 (+0800) Subject: A combo of parameter tweaks X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=31ac538f96a54b294e79213d33aacf5d8a182c87 A combo of parameter tweaks Joint work by SFisGOD, xoroshiro and Chess13234. This combo consists of the following tweaks: Assorted bonuses and penalties by SFisGOD Bishop and Rook PSQT by SFisGOD Tempo Value by xoroshiro Futility pruning by Chess13234 STC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 9005 W: 2082 L: 1882 D: 5041 http://tests.stockfishchess.org/tests/view/5c11628c0ebc5902ba119e90 LTC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 44207 W: 7451 L: 7157 D: 29599 http://tests.stockfishchess.org/tests/view/5c1172a40ebc5902ba119fa3 Bench: 3332460 --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 48e305ef..6308f472 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -152,25 +152,25 @@ namespace { }; // Assorted bonuses and penalties - constexpr Score BishopPawns = S( 3, 8); - constexpr Score CloseEnemies = S( 7, 0); + constexpr Score BishopPawns = S( 3, 7); + constexpr Score CloseEnemies = S( 8, 0); constexpr Score CorneredBishop = S( 50, 50); - constexpr Score Hanging = S( 62, 34); - constexpr Score KingProtector = S( 6, 7); - constexpr Score KnightOnQueen = S( 20, 12); - constexpr Score LongDiagonalBishop = S( 44, 0); - constexpr Score MinorBehindPawn = S( 16, 0); - constexpr Score PawnlessFlank = S( 18, 94); - constexpr Score RestrictedPiece = S( 7, 6); - constexpr Score RookOnPawn = S( 10, 28); - constexpr Score SliderOnQueen = S( 49, 21); - constexpr Score ThreatByKing = S( 21, 84); - constexpr Score ThreatByPawnPush = S( 48, 42); - constexpr Score ThreatByRank = S( 14, 3); - constexpr Score ThreatBySafePawn = S(169, 99); - constexpr Score TrappedRook = S( 98, 5); - constexpr Score WeakQueen = S( 51, 10); - constexpr Score WeakUnopposedPawn = S( 14, 20); + constexpr Score Hanging = S( 69, 36); + constexpr Score KingProtector = S( 7, 8); + constexpr Score KnightOnQueen = S( 16, 12); + constexpr Score LongDiagonalBishop = S( 45, 0); + constexpr Score MinorBehindPawn = S( 18, 3); + constexpr Score PawnlessFlank = S( 17, 95); + constexpr Score RestrictedPiece = S( 7, 7); + constexpr Score RookOnPawn = S( 10, 32); + constexpr Score SliderOnQueen = S( 59, 18); + constexpr Score ThreatByKing = S( 24, 89); + constexpr Score ThreatByPawnPush = S( 48, 39); + constexpr Score ThreatByRank = S( 13, 0); + constexpr Score ThreatBySafePawn = S(173, 94); + constexpr Score TrappedRook = S( 96, 4); + constexpr Score WeakQueen = S( 49, 15); + constexpr Score WeakUnopposedPawn = S( 12, 23); #undef S diff --git a/src/evaluate.h b/src/evaluate.h index d54f4ab9..cccdd25d 100644 --- a/src/evaluate.h +++ b/src/evaluate.h @@ -29,7 +29,7 @@ class Position; namespace Eval { -constexpr Value Tempo = Value(20); // Must be visible to search +constexpr Value Tempo = Value(28); // Must be visible to search std::string trace(const Position& pos); diff --git a/src/psqt.cpp b/src/psqt.cpp index 9f54069f..a4a5e0a0 100644 --- a/src/psqt.cpp +++ b/src/psqt.cpp @@ -49,24 +49,24 @@ constexpr Score Bonus[][RANK_NB][int(FILE_NB) / 2] = { { S(-200, -98), S(-80,-89), S(-53,-53), S(-32,-16) } }, { // Bishop - { S(-49,-58), S(- 7,-31), S(-10,-37), S(-34,-19) }, - { S(-24,-34), S( 9, -9), S( 15,-14), S( 1, 4) }, - { S( -9,-23), S( 22, 0), S( -3, -3), S( 12, 16) }, - { S( 4,-26), S( 9, -3), S( 18, -5), S( 40, 16) }, - { S( -8,-26), S( 27, -4), S( 13, -7), S( 30, 14) }, - { S(-17,-24), S( 14, -2), S( -6, 0), S( 6, 13) }, - { S(-19,-34), S(-13,-10), S( 7,-12), S(-11, 6) }, - { S(-47,-55), S( -7,-32), S(-17,-36), S(-29,-17) } + { S(-44,-63), S( -4,-30), S(-11,-35), S(-28, -8) }, + { S(-18,-38), S( 7,-13), S( 14,-14), S( 3, 0) }, + { S( -8,-18), S( 24, 0), S( -3, -7), S( 15, 13) }, + { S( 1,-26), S( 8, -3), S( 26, 1), S( 37, 16) }, + { S( -7,-24), S( 30, -6), S( 23,-10), S( 28, 17) }, + { S(-17,-26), S( 4, 2), S( -1, 1), S( 8, 16) }, + { S(-21,-34), S(-19,-18), S( 10, -7), S( -6, 9) }, + { S(-48,-51), S( -3,-40), S(-12,-39), S(-25,-20) } }, { // Rook - { S(-24, 0), S(-15, 3), S( -8, 0), S( 0, 3) }, - { S(-18,-7), S( -5,-5), S( -1,-5), S( 1,-1) }, - { S(-19, 6), S(-10,-7), S( 1, 3), S( 0, 3) }, - { S(-21, 0), S( -7, 4), S( -4,-2), S(-4, 1) }, - { S(-21,-7), S(-12, 5), S( -1,-5), S( 4,-7) }, - { S(-23, 3), S(-10, 2), S( 1,-1), S( 6, 3) }, - { S(-11,-1), S( 8, 7), S( 9,11), S(12,-1) }, - { S(-25, 6), S(-18, 4), S(-11, 6), S( 2, 2) } + { S(-24, -2), S(-13,-6), S( -7, -3), S( 2,-2) }, + { S(-18,-10), S(-10,-7), S( -5, 1), S( 9, 0) }, + { S(-21, 10), S( -7,-4), S( 3, 2), S(-1,-2) }, + { S(-13, -5), S( -5, 2), S( -4, -8), S(-6, 8) }, + { S(-24, -8), S(-12, 5), S( -1, 4), S( 6,-9) }, + { S(-24, 3), S( -4,-2), S( 4,-10), S(10, 7) }, + { S( -8, 1), S( 6, 2), S( 10, 17), S(12,-8) }, + { S(-22, 12), S(-24,-6), S( -6, 13), S( 4, 7) } }, { // Queen { S( 3,-69), S(-5,-57), S(-5,-47), S( 4,-26) }, diff --git a/src/search.cpp b/src/search.cpp index a26a9ab8..c48865c6 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -764,7 +764,7 @@ namespace { || (ss-2)->staticEval == VALUE_NONE; // Step 8. Futility pruning: child node (~30 Elo) - if ( !rootNode + if ( !PvNode && depth < 7 * ONE_PLY && eval - futility_margin(depth, improving) >= beta && eval < VALUE_KNOWN_WIN) // Do not return unproven wins