mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-22 10:06:26 +08:00
Movecount pruning reduction logic
This patch refines search reduction logic in case the position is not a former PV node and is pruned based on move count. passed STC https://tests.stockfishchess.org/tests/view/5e8092bde42a5c3b3ca2ed35 LLR: 2.94 (-2.94,2.94) {-0.50,1.50} Total: 78848 W: 15480 L: 15170 D: 48198 Ptnml(0-2): 1406, 9310, 17773, 9438, 1497 passed LTC https://tests.stockfishchess.org/tests/view/5e80bb13e42a5c3b3ca2ed4b LLR: 2.94 (-2.94,2.94) {0.25,1.75} Total: 86596 W: 11451 L: 11033 D: 64112 Ptnml(0-2): 624, 7993, 25687, 8329, 665 closes https://github.com/official-stockfish/Stockfish/pull/2605 Bench: 5138771
This commit is contained in:
committed by
Joost VandeVondele
parent
f2430bf034
commit
b7ecdaada7
@@ -962,6 +962,7 @@ moves_loop: // When in check, search starts from here
|
||||
value = bestValue;
|
||||
singularLMR = moveCountPruning = false;
|
||||
ttCapture = ttMove && pos.capture_or_promotion(ttMove);
|
||||
bool formerPv = ttPv && !PvNode;
|
||||
|
||||
// Mark this node as being searched
|
||||
ThreadHolding th(thisThread, posKey, ss->ply);
|
||||
@@ -1054,8 +1055,8 @@ moves_loop: // When in check, search starts from here
|
||||
&& tte->depth() >= depth - 3
|
||||
&& pos.legal(move))
|
||||
{
|
||||
Value singularBeta = ttValue - (((ttPv && !PvNode) + 4) * depth) / 2;
|
||||
Depth singularDepth = (depth - 1 + 3 * (ttPv && !PvNode)) / 2;
|
||||
Value singularBeta = ttValue - ((formerPv + 4) * depth) / 2;
|
||||
Depth singularDepth = (depth - 1 + 3 * formerPv) / 2;
|
||||
ss->excludedMove = move;
|
||||
value = search<NonPV>(pos, ss, singularBeta - 1, singularBeta, singularDepth, cutNode);
|
||||
ss->excludedMove = MOVE_NONE;
|
||||
@@ -1143,13 +1144,16 @@ moves_loop: // When in check, search starts from here
|
||||
if (ttPv)
|
||||
r -= 2;
|
||||
|
||||
if (moveCountPruning && !formerPv)
|
||||
r++;
|
||||
|
||||
// Decrease reduction if opponent's move count is high (~5 Elo)
|
||||
if ((ss-1)->moveCount > 14)
|
||||
r--;
|
||||
|
||||
// Decrease reduction if ttMove has been singularly extended (~3 Elo)
|
||||
if (singularLMR)
|
||||
r -= 1 + (ttPv && !PvNode);
|
||||
r -= 1 + formerPv;
|
||||
|
||||
if (!captureOrPromotion)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user