mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
Variable null-move value based reduction
Instead of a fixed reduction of ONE_PLY, now Null move dynamic reduction based on value can grow larger in case we are above beta of a value much higher then PawnValueMg. Note that now an eval returning VALUE_KNOWN_WIN makes null search to drop in qsearch. Passed both short TC: LLR: 2.95 (-2.94,2.94) [-1.50,4.50] Total: 26141 W: 4871 L: 4699 D: 16571 And long TC: LLR: 2.97 (-2.94,2.94) [0.00,6.00] Total: 33695 W: 5309 L: 5056 D: 23330 bench: 7356053
This commit is contained in:
parent
cf95a55d76
commit
074c7a3c30
1 changed files with 7 additions and 6 deletions
|
@ -628,12 +628,12 @@ namespace {
|
|||
{
|
||||
ss->currentMove = MOVE_NULL;
|
||||
|
||||
// Null move dynamic reduction based on depth
|
||||
Depth R = 3 * ONE_PLY + depth / 4;
|
||||
assert(eval - beta >= 0);
|
||||
|
||||
// Null move dynamic reduction based on value
|
||||
if (eval - PawnValueMg > beta)
|
||||
R += ONE_PLY;
|
||||
// Null move dynamic reduction based on depth and value
|
||||
Depth R = 3 * ONE_PLY
|
||||
+ depth / (2 * ONE_PLY)
|
||||
+ int(eval - beta) / PawnValueMg * ONE_PLY;
|
||||
|
||||
pos.do_null_move(st);
|
||||
(ss+1)->skipNullMove = true;
|
||||
|
@ -653,7 +653,8 @@ namespace {
|
|||
|
||||
// Do verification search at high depths
|
||||
ss->skipNullMove = true;
|
||||
Value v = search<NonPV>(pos, ss, alpha, beta, depth-R, false);
|
||||
Value v = depth-R < ONE_PLY ? qsearch<NonPV, false>(pos, ss, alpha, beta, DEPTH_ZERO)
|
||||
: search<NonPV>(pos, ss, alpha, beta, depth-R, false);
|
||||
ss->skipNullMove = false;
|
||||
|
||||
if (v >= beta)
|
||||
|
|
Loading…
Add table
Reference in a new issue