Time Management

From Chessprogramming wiki
Revision as of 13:00, 25 October 2018 by GerdIsenberg (talk | contribs)
Jump to: navigation, search

Home * Search * Time Management

Time management refers to algorithms and heuristics to allocate time for searching a move under time control requirements in a game of chess. The player to move consumes his time, and if he exceeds his time limit, the game is lost on demand of the opponent player, or in automatic computer chess play by an arbiter instance.

Iterative deepening in conjunction with its predictable effective branching factor allows a flexible time management either to terminate the current iteration and to fall back on best move and PV of the previous iteration, or to decide about termination prior to start a new iteration or to search a next root-move.

Time Controls

Fast chess is usually played with an immediate sudden death time control, while others may have one or more regular time controls before the sudden death control applies there as well.

Sudden Death

Sudden death refers to a requirement that all the remaining moves, rather than a fixed number of moves, need to be played within the remaining time. Typically programs estimate the game will last further 25..40 moves, and divide the remaining time by this number.

Regular Time Controls

Regular time controls define a number of moves to be made in a fixed amount of time. We don't have to make estimations for how long the game will last. However, some time should be saved in order to have a buffer in case later moves warrant longer thinking times.

Time Control with Increment

To avoid time trouble where often blunders decide the game, chess champions, most notable Bobby Fischer and David Bronstein, proposed a delay or increment of time for each move made. It requires a special delay clock, which became handy with the development of digital chess clocks in the 70s and 80s [2] .

Time trouble is also an issue in computer chess, either due to operators in over the board chess, boosted by deviation of internal and external clock, or in transmitting move transfer latencies in automatic play, where it is quite common nowadays to play with increment per move.

Fischer Time

In 1988 Bobby Fischer proposed an unconditional increment per move, no matter whether the delay was exhausted or not. With Fischer time one may therefor increase the remaining time if one moves faster than the delay [3] .

Bronstein Time

Bronstein's time works similar, but never increases the remaining time. It was for instance used during the late Aegon Tournaments.

Enhancements

Human chess players often wonder about the inflexible time management of various programs. A basic time management scheme might be enhanced in several ways, considering dynamic, statistical as well as static features of the search, the best move and its PV.

Considerations

  • How often did the best move change during the (last N) previous iterations?
  • The score function over iterations and best moves, increase or decrease and/or oscillation, score amplitude, etc.
  • The ratio of the size of the subtree under the best move versus the size of the whole search tree
  • Only one obvious way to recapture in an otherwise quiet position

Premature Termination

  • Only one legal move
  • Prior a start of a new iteration, the relation of elapsed and allocated time (f.i. > 50%) [4]

Extra Time

  • Fail low situations, a severe drop of the score may cause programs to allocate "panic time" to hopefully solve the critical situation
  • During the first moves out of the opening book programs often allocate more time
For instance, Robert Hyatt gave following formula from Cray Blitz in Using Time Wisely [5]
   nMoves =  min( numberOfMovesOutOfBook, 10 );
   factor = 2 -  nMoves / 10 
   target = timeLeft / numberOfMovesUntilNextTimeControl
   time   = factor * target
inspired by following graph of human timing from several grandmaster tournament games
GrandmasterThinkingTime.jpg
  • New and therefor likely not singular best moves, but statically "suspect", like weakening the pawn structure or a sacrifice favors to allocate extra time and to start a further iteration, even if the score is fine.

Losing on Time

See also

Publications

Forum Posts

1993 ...

2000 ...

2005 ...

2010 ...

2012

2013

2014

2015 ...

2016

2017

2018

Re: easy move? by Álvaro Begué, CCC, October 19, 2018

External Links

Hiromi Uehara, Martin Valihora, Tony Grey, David Fiuczynski

References

Up one Level