Variable tuning
authorFauziAkram <fauzi.dabat@hotmail.com>
Sun, 19 Feb 2017 21:56:17 +0000 (13:56 -0800)
committerJoona Kiiski <joona@zoox.com>
Sun, 19 Feb 2017 22:00:44 +0000 (14:00 -0800)
A tuning patch which cover the following changes:

increase the importance of queen and rook mobility in endgame and
decrease it in mg, since if we use the heavy pieces too early in the game
we will just make opponent develop their pieces by threatening ours.

King Psqt:
1)King will be encouraged more to stay in the first ranks in the MG
2)and will be encouraged more to go to the middle of the board/last ranks in the EG

Bishop scale better in EG
Logical changes on various psqt tables
1/6 of the changes of the last tuning session on mobility tables

STC: LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 227879 W: 41240 L: 40313 D: 146326
LTC : LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 167047 W: 21871 L: 21291 D: 123885

Bench: 5695960

Closes #1008

src/evaluate.cpp
src/psqt.cpp
src/types.h

index 6cd33bd..62620a7 100644 (file)
@@ -119,19 +119,19 @@ namespace {
   // indexed by piece type and number of attacked squares in the mobility area.
   const Score MobilityBonus[][32] = {
     {}, {},
   // indexed by piece type and number of attacked squares in the mobility area.
   const Score MobilityBonus[][32] = {
     {}, {},
-    { S(-75,-76), S(-56,-54), S( -9,-26), S( -2,-10), S(  6,  5), S( 15, 11), // Knights
-      S( 22, 26), S( 30, 28), S( 36, 29) },
-    { S(-48,-58), S(-21,-19), S( 16, -2), S( 26, 12), S( 37, 22), S( 51, 42), // Bishops
-      S( 54, 54), S( 63, 58), S( 65, 63), S( 71, 70), S( 79, 74), S( 81, 86),
-      S( 92, 90), S( 97, 94) },
-    { S(-56,-78), S(-25,-18), S(-11, 26), S( -5, 55), S( -4, 70), S( -1, 81), // Rooks
-      S(  8,109), S( 14,120), S( 21,128), S( 23,143), S( 31,154), S( 32,160),
-      S( 43,165), S( 49,168), S( 59,169) },
-    { S(-40,-35), S(-25,-12), S(  2,  7), S(  4, 19), S( 14, 37), S( 24, 55), // Queens
-      S( 25, 62), S( 40, 76), S( 43, 79), S( 47, 87), S( 54, 94), S( 56,102),
-      S( 60,111), S( 70,116), S( 72,118), S( 73,122), S( 75,128), S( 77,130),
-      S( 85,133), S( 94,136), S( 99,140), S(108,157), S(112,158), S(113,161),
-      S(118,174), S(119,177), S(123,191), S(128,199) }
+    { S(-75,-76), S(-57,-54), S( -9,-28), S( -2,-10), S(  6,  5), S( 14, 12), // Knights
+      S( 22, 26), S( 29, 29), S( 36, 29) },
+    { S(-48,-59), S(-20,-23), S( 16, -3), S( 26, 13), S( 38, 24), S( 51, 42), // Bishops
+      S( 55, 54), S( 63, 57), S( 63, 65), S( 68, 73), S( 81, 78), S( 81, 86),
+      S( 91, 88), S( 98, 97) },
+    { S(-60,-77), S(-26,-20), S(-11, 27), S( -6, 57), S( -3, 69), S( -1, 82), // Rooks
+      S( 10,109), S( 16,121), S( 24,131), S( 25,143), S( 32,155), S( 32,163),
+      S( 43,167), S( 48,171), S( 56,173) },
+    { S(-39,-36), S(-21,-15), S(  3,  8), S(  3, 18), S( 14, 34), S( 22, 54), // Queens
+      S( 28, 61), S( 41, 73), S( 43, 79), S( 48, 92), S( 56, 94), S( 60,104),
+      S( 60,113), S( 66,120), S( 67,123), S( 70,126), S( 71,133), S( 73,136),
+      S( 79,140), S( 88,143), S( 88,148), S( 99,166), S(102,170), S(102,175),
+      S(106,184), S(109,191), S(113,206), S(116,212) }
   };
 
   // Outpost[knight/bishop][supported by pawn] contains bonuses for minor
   };
 
   // Outpost[knight/bishop][supported by pawn] contains bonuses for minor
index 8db5ba9..3baf8a8 100644 (file)
@@ -47,24 +47,24 @@ const Score Bonus[][RANK_NB][int(FILE_NB) / 2] = {
    { S( -4, 3), S( 20,-9), S( -8, 1), S(-4,18) }
   },
   { // Knight
    { S( -4, 3), S( 20,-9), S( -8, 1), S(-4,18) }
   },
   { // Knight
-   { S(-143, -97), S(-96,-82), S(-80,-46), S(-73,-14) },
-   { S( -83, -69), S(-43,-55), S(-21,-17), S(-10,  9) },
-   { S( -71, -50), S(-22,-39), S(  0, -8), S(  9, 28) },
-   { S( -25, -41), S( 18,-25), S( 43,  7), S( 47, 38) },
-   { S( -26, -46), S( 16,-25), S( 38,  2), S( 50, 41) },
-   { S( -11, -55), S( 37,-38), S( 56, -8), S( 71, 27) },
-   { S( -62, -64), S(-17,-50), S(  5,-24), S( 14, 13) },
-   { S(-195,-110), S(-66,-90), S(-42,-50), S(-29,-13) }
+   { S(-144, -98), S(-96,-82), S(-80,-46), S(-73,-14) },
+   { S( -83, -69), S(-43,-54), S(-21,-17), S(-10,  9) },
+   { S( -71, -50), S(-22,-39), S(  0, -7), S(  9, 28) },
+   { S( -25, -41), S( 18,-25), S( 43,  6), S( 47, 38) },
+   { S( -26, -46), S( 16,-25), S( 38,  3), S( 50, 40) },
+   { S( -11, -54), S( 37,-38), S( 56, -7), S( 65, 27) },
+   { S( -62, -65), S(-17,-50), S(  5,-24), S( 14, 13) },
+   { S(-194,-109), S(-66,-89), S(-42,-50), S(-29,-13) }
   },
   { // Bishop
   },
   { // Bishop
-   { S(-54,-68), S(-23,-40), S(-35,-46), S(-44,-28) },
-   { S(-30,-43), S( 10,-17), S(  2,-23), S( -9, -5) },
-   { S(-19,-32), S( 17, -9), S( 11,-13), S(  1,  8) },
-   { S(-21,-36), S( 18,-13), S( 11,-15), S(  0,  7) },
-   { S(-21,-36), S( 14,-14), S(  6,-17), S( -1,  3) },
-   { S(-27,-35), S(  6,-13), S(  2,-10), S( -8,  1) },
-   { S(-33,-44), S(  7,-21), S( -4,-22), S(-12, -4) },
-   { S(-45,-65), S(-21,-42), S(-29,-46), S(-39,-27) }
+   { S(-44,-58), S(-13,-31), S(-25,-37), S(-34,-19) },
+   { S(-20,-34), S( 20, -9), S( 12,-14), S(  1,  4) },
+   { S( -9,-23), S( 27,  0), S( 21, -3), S( 11, 16) },
+   { S(-11,-26), S( 28, -3), S( 21, -5), S( 10, 16) },
+   { S(-11,-26), S( 24, -4), S( 16, -7), S(  9, 14) },
+   { S(-17,-24), S( 16, -2), S( 12,  0), S(  2, 13) },
+   { S(-23,-34), S( 17,-10), S(  6,-12), S( -2,  6) },
+   { S(-35,-55), S(-11,-32), S(-19,-36), S(-29,-17) }
   },
   { // Rook
    { S(-25, 0), S(-16, 0), S(-16, 0), S(-9, 0) },
   },
   { // Rook
    { S(-25, 0), S(-16, 0), S(-16, 0), S(-9, 0) },
@@ -77,24 +77,24 @@ const Score Bonus[][RANK_NB][int(FILE_NB) / 2] = {
    { S(-23, 0), S(-15, 0), S(-11, 0), S(-5, 0) }
   },
   { // Queen
    { S(-23, 0), S(-15, 0), S(-11, 0), S(-5, 0) }
   },
   { // Queen
-   { S( 0,-70), S(-3,-57), S(-4,-41), S(-1,-29) },
-   { S(-4,-58), S( 6,-30), S( 9,-21), S( 8, -4) },
-   { S(-2,-39), S( 6,-17), S( 9, -7), S( 9,  5) },
-   { S(-1,-29), S( 8, -5), S(10,  9), S( 7, 17) },
-   { S(-3,-27), S( 9, -5), S( 8, 10), S( 7, 23) },
-   { S(-2,-40), S( 6,-16), S( 8,-11), S(10,  3) },
-   { S(-2,-54), S( 7,-30), S( 7,-21), S( 6, -7) },
-   { S(-1,-75), S(-4,-54), S(-1,-44), S( 0,-30) }
+   { S( 0,-71), S(-4,-56), S(-3,-42), S(-1,-29) },
+   { S(-4,-56), S( 6,-30), S( 9,-21), S( 8, -5) },
+   { S(-2,-39), S( 6,-17), S( 9, -8), S( 9,  5) },
+   { S(-1,-29), S( 8, -5), S(10,  9), S( 7, 19) },
+   { S(-3,-27), S( 9, -5), S( 8, 10), S( 7, 21) },
+   { S(-2,-40), S( 6,-16), S( 8,-10), S(10,  3) },
+   { S(-2,-55), S( 7,-30), S( 7,-21), S( 6, -6) },
+   { S(-1,-74), S(-4,-55), S(-1,-43), S( 0,-30) }
   },
   { // King
   },
   { // King
-   { S(260,  0), S(313, 48), S(263, 75), S(188, 84) },
-   { S(258, 42), S(298, 91), S(232,142), S(174,131) },
-   { S(195, 81), S(240,136), S(171,167), S(105,163) },
-   { S(173,103), S(181,166), S(144,166), S(106,176) },
-   { S(146,104), S(174,159), S(112,196), S( 63,199) },
-   { S(116, 90), S(157,150), S( 82,171), S( 39,169) },
-   { S( 85, 44), S(127, 93), S( 62,114), S( 17,133) },
-   { S( 63,  2), S( 89, 48), S( 47, 73), S(  0, 83) }
+   { S(267,  0), S(320, 48), S(270, 75), S(195, 84) },
+   { S(264, 43), S(304, 92), S(238,143), S(180,132) },
+   { S(200, 83), S(245,138), S(176,167), S(110,165) },
+   { S(177,106), S(185,169), S(148,169), S(110,179) },
+   { S(149,108), S(177,163), S(115,200), S( 66,203) },
+   { S(118, 95), S(159,155), S( 84,176), S( 41,174) },
+   { S( 86, 50), S(128, 99), S( 63,122), S( 18,139) },
+   { S( 63,  9), S( 89, 55), S( 47, 80), S(  0, 90) }
   }
 };
 
   }
 };
 
index 4d113e1..1514c8c 100644 (file)
@@ -185,9 +185,9 @@ enum Value : int {
 
   PawnValueMg   = 188,   PawnValueEg   = 248,
   KnightValueMg = 753,   KnightValueEg = 832,
 
   PawnValueMg   = 188,   PawnValueEg   = 248,
   KnightValueMg = 753,   KnightValueEg = 832,
-  BishopValueMg = 826,   BishopValueEg = 897,
+  BishopValueMg = 814,   BishopValueEg = 890,
   RookValueMg   = 1285,  RookValueEg   = 1371,
   RookValueMg   = 1285,  RookValueEg   = 1371,
-  QueenValueMg  = 2513,  QueenValueEg  = 2650,
+  QueenValueMg  = 2513,  QueenValueEg  = 2648,
 
   MidgameLimit  = 15258, EndgameLimit  = 3915
 };
 
   MidgameLimit  = 15258, EndgameLimit  = 3915
 };