Double king safety weights
authorRalph Stößer <ralph.stoesser@ralph_stoesser.(none)>
Sat, 12 Oct 2013 10:59:43 +0000 (12:59 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 14 Oct 2013 21:24:29 +0000 (23:24 +0200)
Good both at short TC:
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 5448 W: 1133 L: 1012 D: 3303

And at long TC:
LLR: 2.95 (-2.94,2.94) [0.00,6.00]
Total: 40509 W: 6836 L: 6541 D: 27132

bench: 7700683

src/evaluate.cpp

index 558e7d1335476562a351f41e005cb80530ba882b..49620e4666d74b642328784074fa6a6cf819d2af 100644 (file)
@@ -200,12 +200,12 @@ namespace {
   const int KingAttackWeights[] = { 0, 0, 2, 2, 3, 5 };
 
   // Bonuses for enemy's safe checks
-  const int QueenContactCheck = 6;
-  const int RookContactCheck  = 4;
-  const int QueenCheck        = 3;
-  const int RookCheck         = 2;
+  const int QueenContactCheck = 12;
+  const int RookContactCheck  = 8;
+  const int QueenCheck        = 6;
+  const int RookCheck         = 4;
   const int BishopCheck       = 1;
-  const int KnightCheck       = 1;
+  const int KnightCheck       = 2;
 
   // KingExposed[Square] contains penalties based on the position of the
   // defending king, indexed by king's square (from white's point of view).
@@ -699,7 +699,7 @@ Value do_evaluate(const Position& pos, Value& margin) {
         // number and types of the enemy's attacking pieces, the number of
         // attacked and undefended squares around our king, the square of the
         // king, and the quality of the pawn shelter.
-        attackUnits =  std::min(25, (ei.kingAttackersCount[Them] * ei.kingAttackersWeight[Them]) / 2)
+        attackUnits =  std::min(20, (ei.kingAttackersCount[Them] * ei.kingAttackersWeight[Them]) / 2)
                      + 3 * (ei.kingAdjacentZoneAttacksCount[Them] + popcount<Max15>(undefended))
                      + KingExposed[relative_square(Us, ksq)]
                      - mg_value(score) / 32;