mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-21 17:46:26 +08:00
Lower SingularExtensionDepth to 7 plies for non-pv
To compensate for the extra work skip singular searches deemed to fail because excluded node failed high already in the past. After 1200 games at 1+0 Mod vs Orig +387 =1274 -339 (+8 ELO) Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -198,7 +198,7 @@ namespace {
|
|||||||
Depth PassedPawnExtension[2], PawnEndgameExtension[2], MateThreatExtension[2];
|
Depth PassedPawnExtension[2], PawnEndgameExtension[2], MateThreatExtension[2];
|
||||||
|
|
||||||
// Minimum depth for use of singular extension
|
// Minimum depth for use of singular extension
|
||||||
const Depth SingularExtensionDepth[2] = { 8 * OnePly /* non-PV */, 6 * OnePly /* PV */};
|
const Depth SingularExtensionDepth[2] = { 7 * OnePly /* non-PV */, 6 * OnePly /* PV */};
|
||||||
|
|
||||||
// If the TT move is at least SingularExtensionMargin better then the
|
// If the TT move is at least SingularExtensionMargin better then the
|
||||||
// remaining ones we will extend it.
|
// remaining ones we will extend it.
|
||||||
@@ -1213,6 +1213,17 @@ namespace {
|
|||||||
&& is_lower_bound(tte->type())
|
&& is_lower_bound(tte->type())
|
||||||
&& tte->depth() >= depth - 3 * OnePly;
|
&& tte->depth() >= depth - 3 * OnePly;
|
||||||
|
|
||||||
|
// Avoid to do an expensive singular extension search on nodes where
|
||||||
|
// such search had already failed in the past.
|
||||||
|
if ( !PvNode
|
||||||
|
&& singularExtensionNode
|
||||||
|
&& depth < SingularExtensionDepth[PvNode] + 5 * OnePly)
|
||||||
|
{
|
||||||
|
TTEntry* ttx = TT.retrieve(pos.get_exclusion_key());
|
||||||
|
if (ttx && is_lower_bound(ttx->type()))
|
||||||
|
singularExtensionNode = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Step 10. Loop through moves
|
// Step 10. Loop through moves
|
||||||
// Loop through all legal moves until no moves remain or a beta cutoff occurs
|
// Loop through all legal moves until no moves remain or a beta cutoff occurs
|
||||||
while ( bestValue < beta
|
while ( bestValue < beta
|
||||||
|
|||||||
Reference in New Issue
Block a user