A combo of parameter tweaks
authorSFisGOD <jonathandumale@gmail.com>
Wed, 12 Dec 2018 19:34:17 +0000 (03:34 +0800)
committerStéphane Nicolet <cassio@free.fr>
Thu, 13 Dec 2018 12:35:35 +0000 (13:35 +0100)
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

src/evaluate.cpp
src/evaluate.h
src/psqt.cpp
src/search.cpp

index 48e305efebf569bf1f672168a0f5da293fe748cf..6308f472e37e75cd747ebcfe27e157aae2821ce3 100644 (file)
@@ -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
 
index d54f4ab98c559dabe243d28a45a0f590b46c6fc7..cccdd25d2f36e311a9376c3a22a8244edac29441 100644 (file)
@@ -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);
 
index 9f54069f80af14907e8a1ff87c98c3c233aa9578..a4a5e0a04dc60ef50840da1ec80ebb23e9908cb5 100644 (file)
@@ -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) },
index a26a9ab8cbc1092d8a34171cc7a5765a2aaf0c48..c48865c637210aa7c41defa21877d936884889ae 100644 (file)
@@ -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