1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Tweak capture scoring for move ordering

Move divisor from capture scoring to good capture
check and sligthly increase it.

This has several effects:
- its a speedup because for quience and probcut
  search the division now never happens. For main
  search its delayed and can be avoided if a good
  capture triggers a cutoff
- through the higher resolution of scores we have
  a more granular sorting

STC: https://tests.stockfishchess.org/tests/view/65bf2a93c865510db027dc27
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 470016 W: 122150 L: 121173 D: 226693
Ptnml(0-2): 2133, 55705, 118374, 56644, 2152

LTC: https://tests.stockfishchess.org/tests/view/65c1d16dc865510db0281339
LLR: 2.96 (-2.94,2.94) <0.50,2.50>
Total: 98988 W: 25121 L: 24667 D: 49200
Ptnml(0-2): 77, 10998, 26884, 11464, 71

closes https://github.com/official-stockfish/Stockfish/pull/5036

Bench: 1233867
This commit is contained in:
Stefan Geschwentner 2024-02-01 21:09:48 +01:00 committed by Disservin
parent a20726eb0b
commit f2984471c9

View file

@ -167,9 +167,8 @@ void MovePicker::score() {
for (auto& m : *this) for (auto& m : *this)
if constexpr (Type == CAPTURES) if constexpr (Type == CAPTURES)
m.value = m.value =
(7 * int(PieceValue[pos.piece_on(m.to_sq())]) 7 * int(PieceValue[pos.piece_on(m.to_sq())])
+ (*captureHistory)[pos.moved_piece(m)][m.to_sq()][type_of(pos.piece_on(m.to_sq()))]) + (*captureHistory)[pos.moved_piece(m)][m.to_sq()][type_of(pos.piece_on(m.to_sq()))];
/ 16;
else if constexpr (Type == QUIETS) else if constexpr (Type == QUIETS)
{ {
@ -269,7 +268,8 @@ top:
case GOOD_CAPTURE : case GOOD_CAPTURE :
if (select<Next>([&]() { if (select<Next>([&]() {
// Move losing capture to endBadCaptures to be tried later // Move losing capture to endBadCaptures to be tried later
return pos.see_ge(*cur, -cur->value) ? true : (*endBadCaptures++ = *cur, false); return pos.see_ge(*cur, -cur->value / 18) ? true
: (*endBadCaptures++ = *cur, false);
})) }))
return *(cur - 1); return *(cur - 1);