Space bonus in presence of open files

If the opponent has a cramped position, opening a file often
helps him/her to exchange pieces, so it makes sense to reduce
the space bonus if there are open files.

Credits: Leonardo Ljubičić for the strategic idea, Alain Savard for the
implementation of the open files calculation, "CrunchyNYC" for the
compensation of the numerator.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 49112 W: 9239 L: 8900 D: 30973

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 89415 W: 12014 L: 11601 D: 65800

Bench: 7591630
This commit is contained in:
Stéphane Nicolet
2016-09-03 00:04:20 +02:00
parent 13b4444d9e
commit d37dfe9ae4
3 changed files with 5 additions and 2 deletions

View File

@@ -706,9 +706,9 @@ namespace {
// ...count safe + (behind & safe) with a single popcount
int bonus = popcount((Us == WHITE ? safe << 32 : safe >> 32) | (behind & safe));
bonus = std::min(16, bonus);
int weight = pos.count<ALL_PIECES>(Us);
int weight = pos.count<ALL_PIECES>(Us) - 2 * ei.pi->open_files();
return make_score(bonus * weight * weight / 22, 0);
return make_score(bonus * weight * weight / 18, 0);
}