From e846a9306d6108fb24cb216689867777ac2b0c4f Mon Sep 17 00:00:00 2001 From: protonspring Date: Wed, 29 Aug 2018 02:48:45 +0200 Subject: [PATCH] Remove PawnsOnBothFlanks It looks like PawnsOnBothFlanks can be removed from initiative(). A barrage of tests seem to confirm that the adjustment to -110 does not gain elo to offset any potential loss by removing PawnsOnBothFlanks. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 22014 W: 4760 L: 4639 D: 12615 http://tests.stockfishchess.org/tests/view/5b7f50cc0ebc5902bdbb3a3e LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 40561 W: 6667 L: 6577 D: 27317 http://tests.stockfishchess.org/tests/view/5b801f9f0ebc5902bdbb4467 The barrage of 0,4 tests on the -136 value are in my ps_tunetests branch. http://tests.stockfishchess.org/tests/user/protonspring Closes https://github.com/official-stockfish/Stockfish/pull/1751 Bench: 4413173 ------------- How to continue from there? The fact that endgames with all the pawns on only one flank are drawish is a well-known chess idea, so it seems quite strange that this can be removed so easily without losing Elo. In the past there had been attempts to improve on PawnsOnBothFlanks with similar concepts (for instance using the pawn span value), but the tests were at best neutral. Maybe Stockfish is now mature enough that these refined ideas would work to replace PawnsOnBothFlanks? --- src/evaluate.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 4667d515..ac8bde74 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -758,16 +758,12 @@ namespace { int outflanking = distance(pos.square(WHITE), pos.square(BLACK)) - distance(pos.square(WHITE), pos.square(BLACK)); - bool pawnsOnBothFlanks = (pos.pieces(PAWN) & QueenSide) - && (pos.pieces(PAWN) & KingSide); - // Compute the initiative bonus for the attacking side int complexity = 8 * pe->pawn_asymmetry() + 12 * pos.count() + 12 * outflanking - + 16 * pawnsOnBothFlanks + 48 * !pos.non_pawn_material() - -136 ; + -110 ; // Now apply the bonus: note that we find the attacking side by extracting // the sign of the endgame value, and that we carefully cap the bonus so -- 2.39.2