mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +08:00
Use evaluation margins also in main search
For now keep FutilityMarginsMatrix[] unchanged, in future we are going to reduce to compensate for extra margin. At this moment it is enough we don't have regressions. After 9694 games on russian cluster Mod - Orig 1608 - 1578 - 6508 ELO +1 (+- 2.8) Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -982,7 +982,7 @@ namespace {
|
|||||||
Move ttMove, move, excludedMove, threatMove;
|
Move ttMove, move, excludedMove, threatMove;
|
||||||
Depth ext, newDepth;
|
Depth ext, newDepth;
|
||||||
Value bestValue, value, oldAlpha;
|
Value bestValue, value, oldAlpha;
|
||||||
Value refinedValue, nullValue, futilityValueScaled; // Non-PV specific
|
Value refinedValue, nullValue, futilityBase, futilityValueScaled; // Non-PV specific
|
||||||
bool isCheck, singleEvasion, singularExtensionNode, moveIsCheck, captureOrPromotion, dangerous;
|
bool isCheck, singleEvasion, singularExtensionNode, moveIsCheck, captureOrPromotion, dangerous;
|
||||||
bool mateThreat = false;
|
bool mateThreat = false;
|
||||||
int moveCount = 0;
|
int moveCount = 0;
|
||||||
@@ -1182,6 +1182,7 @@ namespace {
|
|||||||
CheckInfo ci(pos);
|
CheckInfo ci(pos);
|
||||||
ss->bestMove = MOVE_NONE;
|
ss->bestMove = MOVE_NONE;
|
||||||
singleEvasion = isCheck && mp.number_of_evasions() == 1;
|
singleEvasion = isCheck && mp.number_of_evasions() == 1;
|
||||||
|
futilityBase = ss->eval + margins[pos.side_to_move()];
|
||||||
singularExtensionNode = depth >= SingularExtensionDepth[PvNode]
|
singularExtensionNode = depth >= SingularExtensionDepth[PvNode]
|
||||||
&& tte
|
&& tte
|
||||||
&& tte->move()
|
&& tte->move()
|
||||||
@@ -1253,7 +1254,7 @@ namespace {
|
|||||||
// We illogically ignore reduction condition depth >= 3*ONE_PLY for predicted depth,
|
// We illogically ignore reduction condition depth >= 3*ONE_PLY for predicted depth,
|
||||||
// but fixing this made program slightly weaker.
|
// but fixing this made program slightly weaker.
|
||||||
Depth predictedDepth = newDepth - reduction<NonPV>(depth, moveCount);
|
Depth predictedDepth = newDepth - reduction<NonPV>(depth, moveCount);
|
||||||
futilityValueScaled = ss->eval + futility_margin(predictedDepth, moveCount)
|
futilityValueScaled = futilityBase + futility_margin(predictedDepth, moveCount)
|
||||||
+ H.gain(pos.piece_on(move_from(move)), move_to(move));
|
+ H.gain(pos.piece_on(move_from(move)), move_to(move));
|
||||||
|
|
||||||
if (futilityValueScaled < beta)
|
if (futilityValueScaled < beta)
|
||||||
|
|||||||
Reference in New Issue
Block a user