Fix time parameters for blitz games
authorJoona Kiiski <joona.kiiski@gmail.com>
Sun, 15 Sep 2013 19:54:26 +0000 (21:54 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 16 Sep 2013 07:07:47 +0000 (09:07 +0200)
The ideal setting for super-blitz might be something like:

    "Emergency Base Time" = 50
    "Emergency Move Time" = 5

This would give a total emergency time buffer of:

    50 + 40 * 5 = 250 ms

This setup replaces the previous half cooked hack
"Don't blunder under extreme time pressure".

Test results are very good at super blitz, but keep good even
at 60 secs.

At 5+0.05
ELO: 24.30 +-2.4 (95%) LOS: 100.0%
Total: 37802 W: 10060 L: 7420 D: 20322

At 15+0.05
ELO: 13.41 +-2.9 (95%) LOS: 100.0%
Total: 22271 W: 4853 L: 3994 D: 13424

At 60+0.05
ELO: 5.30 +-3.2 (95%) LOS: 99.9%
Total: 16000 W: 2897 L: 2653 D: 10450

No functional change.

src/timeman.cpp
src/ucioption.cpp

index 8bda4f25abca4b667dbf08cbef6e5832855af632..62b7eb11432563d4f0f8471dfc904d772c68fd78 100644 (file)
@@ -110,12 +110,7 @@ void TimeManager::init(const Search::LimitsType& limits, int currentPly, Color u
 
   // Initialize to maximum values but unstablePVExtraTime that is reset
   unstablePVExtraTime = 0;
-  optimumSearchTime = maximumSearchTime = limits.time[us]; // In msec
-
-  // Scale down emergencyBaseTime if we are under very high time pressure to
-  // avoid moving immediately and so blundering.
-  if (maximumSearchTime)
-      emergencyBaseTime /= std::max(emergencyBaseTime * 100 / maximumSearchTime, 1);
+  optimumSearchTime = maximumSearchTime = limits.time[us];
 
   // We calculate optimum time usage for different hypothetic "moves to go"-values and choose the
   // minimum of calculated search time values. Usually the greatest hypMTG gives the minimum values.
index 909618090cb6144af2661ced343a4415f5f3fb7e..7e6e6dc48fdbc344441b462dae89e433a8a007d5 100644 (file)
@@ -80,8 +80,8 @@ void init(OptionsMap& o) {
   o["MultiPV"]                     = Option(1, 1, 500);
   o["Skill Level"]                 = Option(20, 0, 20);
   o["Emergency Move Horizon"]      = Option(40, 0, 50);
-  o["Emergency Base Time"]         = Option(200, 0, 30000);
-  o["Emergency Move Time"]         = Option(70, 0, 5000);
+  o["Emergency Base Time"]         = Option(50, 0, 30000);
+  o["Emergency Move Time"]         = Option( 5, 0, 5000);
   o["Minimum Thinking Time"]       = Option(20, 0, 5000);
   o["Slow Mover"]                  = Option(50, 10, 1000);
   o["UCI_Chess960"]                = Option(false);