Skip to content

Commit 33f3cfa

Browse files
Stéphane NicoletStéphane Nicolet
authored andcommitted
Improve handling of queen imbalance
We double the bonus for potential threats by minors and rooks against our queen, in case of "queen vs pieces imbalance". Hopefully this will improve a little bit the evaluation for this well-known Stockfish weakness. passed STC: LLR: 2.93 (-2.94,2.94) {-0.50,1.50} Total: 72976 W: 14003 L: 13710 D: 45263 Ptnml(0-2): 1218, 8370, 17094, 8513, 1293 https://tests.stockfishchess.org/tests/view/5efa50eb020eec13834a977d passed LTC: LLR: 2.93 (-2.94,2.94) {0.25,1.75} Total: 22232 W: 2779 L: 2560 D: 16893 Ptnml(0-2): 129, 1885, 6896, 2050, 156 https://tests.stockfishchess.org/tests/view/5f1fdd2dc09435d870cb9f13 closes #2864 Bench: 4367349
1 parent 62d3106 commit 33f3cfa

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/evaluate.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -579,17 +579,21 @@ namespace {
579579
// Bonus for threats on the next moves against enemy queen
580580
if (pos.count<QUEEN>(Them) == 1)
581581
{
582+
bool queenImbalance = pos.count<QUEEN>() == 1;
583+
582584
Square s = pos.square<QUEEN>(Them);
583-
safe = mobilityArea[Us] & ~stronglyProtected;
585+
safe = mobilityArea[Us]
586+
& ~pos.pieces(Us, PAWN)
587+
& ~stronglyProtected;
584588

585589
b = attackedBy[Us][KNIGHT] & attacks_bb<KNIGHT>(s);
586590

587-
score += KnightOnQueen * popcount(b & safe);
591+
score += KnightOnQueen * popcount(b & safe) * (1 + queenImbalance);
588592

589593
b = (attackedBy[Us][BISHOP] & attacks_bb<BISHOP>(s, pos.pieces()))
590594
| (attackedBy[Us][ROOK ] & attacks_bb<ROOK >(s, pos.pieces()));
591595

592-
score += SliderOnQueen * popcount(b & safe & attackedBy2[Us]);
596+
score += SliderOnQueen * popcount(b & safe & attackedBy2[Us]) * (1 + queenImbalance);
593597
}
594598

595599
if (T)

0 commit comments

Comments
 (0)