mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-06 10:53:50 +08:00
Do more extensions in nodes far from the root
Parameters found by @FauziAkram in the latest tune. Passed VVLTC w/ LTC Bound: LLR: 2.95 (-2.94,2.94) <0.50,2.50> Total: 243264 W: 63452 L: 62774 D: 117038 Ptnml(0-2): 18, 22494, 75934, 23164, 22 https://tests.stockfishchess.org/tests/view/680e82b23629b02d74b15e27 Passed VVLTC w/ STC Bound: LLR: 2.94 (-2.94,2.94) <0.00,2.00> Total: 37838 W: 9935 L: 9667 D: 18236 Ptnml(0-2): 6, 3383, 11873, 3651, 6 https://tests.stockfishchess.org/tests/view/681e707a3629b02d74b176e8 STC Elo Estimate: Elo: -0.49 ± 2.4 (95%) LOS: 34.8% Total: 20000 W: 5118 L: 5146 D: 9736 Ptnml(0-2): 55, 2365, 5182, 2349, 49 nElo: -0.96 ± 4.8 (95%) PairsRatio: 0.99 https://tests.stockfishchess.org/tests/view/6822af4b3629b02d74b17be6 closes https://github.com/official-stockfish/Stockfish/pull/6059 Bench: 2135382
This commit is contained in:
@@ -1100,9 +1100,6 @@ moves_loop: // When in check, search starts here
|
||||
}
|
||||
|
||||
// Step 15. Extensions
|
||||
// We take care to not overdo to avoid search getting stuck.
|
||||
if (ss->ply < thisThread->rootDepth * 2)
|
||||
{
|
||||
// Singular extension search. If all moves but one
|
||||
// fail low on a search of (alpha-s, beta-s), and just one fails high on
|
||||
// (alpha, beta), then that move is singular and should be extended. To
|
||||
@@ -1114,16 +1111,15 @@ moves_loop: // When in check, search starts here
|
||||
// and lower extension margins scale well.
|
||||
|
||||
if (!rootNode && move == ttData.move && !excludedMove
|
||||
&& depth >= 6 - (thisThread->completedDepth > 27) + ss->ttPv
|
||||
&& is_valid(ttData.value) && !is_decisive(ttData.value)
|
||||
&& (ttData.bound & BOUND_LOWER) && ttData.depth >= depth - 3)
|
||||
&& depth >= 6 - (thisThread->completedDepth > 27) + ss->ttPv && is_valid(ttData.value)
|
||||
&& !is_decisive(ttData.value) && (ttData.bound & BOUND_LOWER)
|
||||
&& ttData.depth >= depth - 3)
|
||||
{
|
||||
Value singularBeta = ttData.value - (58 + 76 * (ss->ttPv && !PvNode)) * depth / 57;
|
||||
Depth singularDepth = newDepth / 2;
|
||||
|
||||
ss->excludedMove = move;
|
||||
value =
|
||||
search<NonPV>(pos, ss, singularBeta - 1, singularBeta, singularDepth, cutNode);
|
||||
value = search<NonPV>(pos, ss, singularBeta - 1, singularBeta, singularDepth, cutNode);
|
||||
ss->excludedMove = Move::none();
|
||||
|
||||
if (value < singularBeta)
|
||||
@@ -1131,12 +1127,13 @@ moves_loop: // When in check, search starts here
|
||||
int corrValAdj1 = std::abs(correctionValue) / 248400;
|
||||
int corrValAdj2 = std::abs(correctionValue) / 249757;
|
||||
int doubleMargin = -4 + 244 * PvNode - 206 * !ttCapture - corrValAdj1
|
||||
- 997 * ttMoveHistory / 131072;
|
||||
int tripleMargin =
|
||||
84 + 269 * PvNode - 253 * !ttCapture + 91 * ss->ttPv - corrValAdj2;
|
||||
- 997 * ttMoveHistory / 131072
|
||||
- (ss->ply * 2 > thisThread->rootDepth * 3) * 47;
|
||||
int tripleMargin = 84 + 269 * PvNode - 253 * !ttCapture + 91 * ss->ttPv
|
||||
- corrValAdj2 - (ss->ply * 2 > thisThread->rootDepth * 3) * 54;
|
||||
|
||||
extension = 1 + (value < singularBeta - doubleMargin)
|
||||
+ (value < singularBeta - tripleMargin);
|
||||
extension =
|
||||
1 + (value < singularBeta - doubleMargin) + (value < singularBeta - tripleMargin);
|
||||
|
||||
depth++;
|
||||
}
|
||||
@@ -1166,7 +1163,6 @@ moves_loop: // When in check, search starts here
|
||||
else if (cutNode)
|
||||
extension = -2;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 16. Make the move
|
||||
do_move(pos, move, st, givesCheck);
|
||||
|
||||
Reference in New Issue
Block a user