Remove RedundantMajor
authorChris Caino <chricainogithub@gmail.com>
Thu, 7 Nov 2013 18:28:57 +0000 (18:28 +0000)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 10 Nov 2013 08:48:49 +0000 (09:48 +0100)
But compensate by reducing rook and queen
value by 53 = (160 / 3)

Material imbalances are affected as follows:

       Red. Major   Rook  Queen  Total
QRR      +160      -2*53    -53     +1
QR       +160        -53    -53    +54
RR       +160      -2*53      0    +54
R           0        -53      0    -53
Q           0          0    -53    -53

so that the imbalance changes by at most 54 + 53 = 107 units.
This corresponds to appromximately 3.5cp in the final evaluation.

Verified with fixed number 40000 games at both short
and long TC it does not regress.

Short TC 15+0.05
ELO: 1.93 +-2.1 (95%) LOS: 96.6%
Total: 40000 W: 7520 L: 7298 D: 25182

Long TC 60+0.05
ELO: -0.33 +-1.9 (95%) LOS: 36.5%
Total: 39663 W: 6067 L: 6105 D: 27491

bench: 6703846

src/material.cpp

index b9b4bb63988ec28f6425592b937d8118b6ce2205..068d88e702092a67259ae312165bb33683cb101e 100644 (file)
@@ -35,10 +35,9 @@ namespace {
   const int NoPawnsSF[4] = { 6, 12, 32 };
 
   // Polynomial material balance parameters
-  const Value RedundantMajor = Value(160);
 
   //                                  pair  pawn knight bishop rook queen
-  const int LinearCoefficients[6] = { 1852, -162, -1122, -183,  302,  1 };
+  const int LinearCoefficients[6] = { 1852, -162, -1122, -183,  249, -52 };
 
   const int QuadraticCoefficientsSameColor[][PIECE_TYPE_NB] = {
     // pair pawn knight bishop rook queen
@@ -105,10 +104,6 @@ namespace {
     int pt1, pt2, pc, v;
     int value = 0;
 
-    // Penalty for major piece redundancy
-    if (pieceCount[Us][ROOK] + pieceCount[Us][QUEEN] > 1)
-        value -= RedundantMajor;
-
     // Second-degree polynomial material imbalance by Tord Romstad
     for (pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1)
     {