From: Miguel Lahoz Date: Thu, 19 Jul 2018 11:18:30 +0000 (+0800) Subject: Remove connectivity. X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=41bc0d56608c01adf104d2bd0213342c82fa4ab5;hp=12e79be91039796299187ba1b2f1559552642ea4 Remove connectivity. There seems to be some strange interaction between Overload and Connectivity. Overload encourages us to not have too many defended and attacked pieces, as this may expose us to various tactics. This feels somewhat like it is in conflict with Connectivity, where pieces are defended preemptively. Here I take the "pick one or the other" approach and just remove connectivity, while strengthening the effect of Overload to compensate. The reasoning is that if we defend our pieces preemptively, then it does get attacked, we want to do something about it so we don't get penalized by Overload. On the other hand, if it doesn't get attacked, then there's no need to defend it. STC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 27734 W: 6174 L: 6064 D: 15496 http://tests.stockfishchess.org/tests/view/5b5073bd0ebc5902bdb7ba5c LTC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 51606 W: 8897 L: 8827 D: 33882 http://tests.stockfishchess.org/tests/view/5b50aa900ebc5902bdb7bf29 Bench: 4658006 --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index b1e94ab7..5ceb9ae1 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -157,7 +157,6 @@ namespace { // Assorted bonuses and penalties constexpr Score BishopPawns = S( 3, 7); constexpr Score CloseEnemies = S( 6, 0); - constexpr Score Connectivity = S( 3, 1); constexpr Score CorneredBishop = S( 50, 50); constexpr Score Hanging = S( 52, 30); constexpr Score HinderPassedPawn = S( 4, 0); @@ -165,7 +164,7 @@ namespace { constexpr Score KnightOnQueen = S( 21, 11); constexpr Score LongDiagonalBishop = S( 22, 0); constexpr Score MinorBehindPawn = S( 16, 0); - constexpr Score Overload = S( 10, 5); + constexpr Score Overload = S( 16, 7); constexpr Score PawnlessFlank = S( 20, 80); constexpr Score RookOnPawn = S( 8, 24); constexpr Score SliderOnQueen = S( 42, 21); @@ -607,10 +606,6 @@ namespace { score += SliderOnQueen * popcount(b & safeThreats & attackedBy2[Us]); } - // Connectivity: ensure that knights, bishops, rooks, and queens are protected - b = (pos.pieces(Us) ^ pos.pieces(Us, PAWN, KING)) & attackedBy[Us][ALL_PIECES]; - score += Connectivity * popcount(b); - if (T) Trace::add(THREAT, Us, score);