mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +08:00
Simplify time management and fix 'ponder on' bug
Simplify time management code by removing hard stops for unchanging first root moves. Search is now stopped earlier at the end iteration if it did not have fail-lows at root. This simplification also fixes pondering bug. Ponder flag was true by default and cutechess-cli doesn't change it to false even though no pondering is possible. Fix the issue by setting the default value of 'Ponder' flag to false. 10+0.1: ELO: 3.51 +-3.0 (95%) LOS: 99.0% Total: 20000 W: 3898 L: 3696 D: 12406 40+0.4: ELO: 1.39 +-2.7 (95%) LOS: 84.7% Total: 20000 W: 3104 L: 3024 D: 13872 60+0.06: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 37231 W: 5333 L: 5236 D: 26662 Stopped run at 100+1: LLR: 1.09 (-2.94,2.94) [-3.00,1.00] Total: 37253 W: 4862 L: 4856 D: 27535 Resolves #523 Fixes #510
This commit is contained in:
committed by
Joona Kiiski
parent
7904a7d930
commit
69240a982d
@@ -32,8 +32,8 @@ namespace {
|
||||
enum TimeType { OptimumTime, MaxTime };
|
||||
|
||||
const int MoveHorizon = 50; // Plan time management at most this many moves ahead
|
||||
const double MaxRatio = 7.0; // When in trouble, we can step over reserved time with this ratio
|
||||
const double StealRatio = 0.33; // However we must not steal time from remaining moves over this ratio
|
||||
const double MaxRatio = 6.93; // When in trouble, we can step over reserved time with this ratio
|
||||
const double StealRatio = 0.36; // However we must not steal time from remaining moves over this ratio
|
||||
|
||||
|
||||
// move_importance() is a skew-logistic function based on naive statistical
|
||||
@@ -43,9 +43,9 @@ namespace {
|
||||
|
||||
double move_importance(int ply) {
|
||||
|
||||
const double XScale = 9.3;
|
||||
const double XShift = 59.8;
|
||||
const double Skew = 0.172;
|
||||
const double XScale = 8.27;
|
||||
const double XShift = 59.;
|
||||
const double Skew = 0.179;
|
||||
|
||||
return pow((1 + exp((ply - XShift) / XScale)), -Skew) + DBL_MIN; // Ensure non-zero
|
||||
}
|
||||
@@ -129,6 +129,4 @@ void TimeManagement::init(Search::LimitsType& limits, Color us, int ply)
|
||||
|
||||
if (Options["Ponder"])
|
||||
optimumTime += optimumTime / 4;
|
||||
|
||||
optimumTime = std::min(optimumTime, maximumTime);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user