mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Allowing singular extension in mate positions
Drop useless condition
abs(ttValue) < VALUE_KNOWN_WIN
And extend singular extension search to cases when ttValue
stores a mate score. This improves mate finding and does
not introduce any regression.
Yery tested this patch against current master on the 6500+
Chest mate suite with 200K fixed nodes:
shortest mates found: master: 1206 patch:1205
any mate found: master: 1903 patch: 2003
with 1 sec time:
shortest mates found: master: 2667 patch: 2628
any mate found: master: 3585 patch: 3646
Verified for no regression:
STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 25655 W: 4578 L: 4465 D: 16612
LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 66247 W: 8618 L: 8557 D: 49072
bench: 6335042
This commit is contained in:
committed by
Marco Costalba
parent
8662bdfa12
commit
351844061e
@@ -845,8 +845,7 @@ moves_loop: // When in check search starts from here
|
|||||||
singularExtensionNode = !rootNode
|
singularExtensionNode = !rootNode
|
||||||
&& depth >= 8 * ONE_PLY
|
&& depth >= 8 * ONE_PLY
|
||||||
&& ttMove != MOVE_NONE
|
&& ttMove != MOVE_NONE
|
||||||
/* && ttValue != VALUE_NONE Already implicit in the next condition */
|
&& ttValue != VALUE_NONE
|
||||||
&& abs(ttValue) < VALUE_KNOWN_WIN
|
|
||||||
&& !excludedMove // Recursive singular search is not allowed
|
&& !excludedMove // Recursive singular search is not allowed
|
||||||
&& (tte->bound() & BOUND_LOWER)
|
&& (tte->bound() & BOUND_LOWER)
|
||||||
&& tte->depth() >= depth - 3 * ONE_PLY;
|
&& tte->depth() >= depth - 3 * ONE_PLY;
|
||||||
@@ -904,7 +903,7 @@ moves_loop: // When in check search starts from here
|
|||||||
&& !extension
|
&& !extension
|
||||||
&& pos.legal(move))
|
&& pos.legal(move))
|
||||||
{
|
{
|
||||||
Value rBeta = ttValue - 2 * depth / ONE_PLY;
|
Value rBeta = std::max(ttValue - 2 * depth / ONE_PLY, -VALUE_MATE);
|
||||||
Depth d = (depth / (2 * ONE_PLY)) * ONE_PLY;
|
Depth d = (depth / (2 * ONE_PLY)) * ONE_PLY;
|
||||||
ss->excludedMove = move;
|
ss->excludedMove = move;
|
||||||
ss->skipEarlyPruning = true;
|
ss->skipEarlyPruning = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user