Skip to content

Commit

Permalink
Remove PawnsOnBothFlanks
Browse files Browse the repository at this point in the history
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 #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?
  • Loading branch information
protonspring authored and snicolet committed Aug 29, 2018
1 parent 10bb2e6 commit e846a93
Showing 1 changed file with 1 addition and 5 deletions.
6 changes: 1 addition & 5 deletions src/evaluate.cpp
Expand Up @@ -758,16 +758,12 @@ namespace {
int outflanking = distance<File>(pos.square<KING>(WHITE), pos.square<KING>(BLACK))
- distance<Rank>(pos.square<KING>(WHITE), pos.square<KING>(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<PAWN>()
+ 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
Expand Down

0 comments on commit e846a93

Please sign in to comment.