mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-23 18:46:59 +08:00
Enhanced verify search (#1338)
by disabling null-move-pruning for the side to move for first part of
the remaining search tree. This helps to better recognize zugzwang.
STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 18220 W: 3379 L: 3253 D: 11588
http://tests.stockfishchess.org/tests/view/5a2fa6460ebc590ccbb8bc2f
LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 41899 W: 5359 L: 5265 D: 31275
http://tests.stockfishchess.org/tests/view/5a2fcf440ebc590ccbb8bc47
For further detail see commit notes and discussion at
6401a80ab9
bench: 5776193
This commit is contained in:
committed by
Marco Costalba
parent
83e829c9dc
commit
b53239d641
@@ -681,7 +681,8 @@ namespace {
|
||||
// Step 8. Null move search with verification search (is omitted in PV nodes)
|
||||
if ( !PvNode
|
||||
&& eval >= beta
|
||||
&& ss->staticEval >= beta - 36 * depth / ONE_PLY + 225)
|
||||
&& ss->staticEval >= beta - 36 * depth / ONE_PLY + 225
|
||||
&& (ss->ply >= thisThread->nmp_ply || ss->ply % 2 == thisThread->pair))
|
||||
{
|
||||
|
||||
assert(eval - beta >= 0);
|
||||
@@ -707,8 +708,17 @@ namespace {
|
||||
return nullValue;
|
||||
|
||||
// Do verification search at high depths
|
||||
R += ONE_PLY;
|
||||
// disable null move pruning for side to move for the first part of the remaining search tree
|
||||
int nmp_ply = thisThread->nmp_ply;
|
||||
int pair = thisThread->pair;
|
||||
thisThread->nmp_ply = ss->ply + 3 * (depth-R) / 4;
|
||||
thisThread->pair = (ss->ply % 2) == 0;
|
||||
|
||||
Value v = depth-R < ONE_PLY ? qsearch<NonPV, false>(pos, ss, beta-1, beta)
|
||||
: search<NonPV>(pos, ss, beta-1, beta, depth-R, false, true);
|
||||
thisThread->pair = pair;
|
||||
thisThread->nmp_ply = nmp_ply;
|
||||
|
||||
if (v >= beta)
|
||||
return nullValue;
|
||||
|
||||
Reference in New Issue
Block a user