Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Time Control

Author: Brian Richardson

Date: 17:19:27 04/18/00

Go up one level in this thread


On April 18, 2000 at 10:36:26, David Rasmussen wrote:

>Where can I get some inspiration on how to implement time control in my program
>and what exactly to implement, the techniques used etc.
>
>In other words, I'm implementing TC in my program and I need "inspiration"... :)

Time control (like eval functions) are areas where programs can differ
significantly.  Tinker has simple to moderately complex time control code.  I
started by simply implementing the various level and time otim  commands (note
that Tinker still cannot play with time=0 and an inc).  Since ICC games are not
n moves in m minutes, but more "sudden death", think about variable move times
(instead of just always allowing for another "35" moves, plus the increment).
Some programs allow more time per move in the opening/midgame and less in
endgame (figuring there are fewer pieces--although lookahead is perhaps even
more important with potential pawn promotions).  There are many trade-offs.

Look at your search logs and see about how long each additional ply takes.
Think about when you would want to terminate the search early (example after
pondering and the predicted move is made and you already pondered for longer
than you would have searched), recaptures, etc.   I spend more time worrying
about when to spend extra time by looking at dropping scores with two
tiers--partial pawn behind and pawn or more behind.  There were so many options
I decided to work on a little matrix, with options like winning/losing,
human/computer opponent (if you fall behind against a computer it is very
unlikely that you will work out of it), ahead/behind on time, and so on.  Then
for each combination, think about what you would do.

I decided to go for larger "chunks" of extra time, rather than just an extra
30-50% or so.  That was not enough to make any real difference and get to a
deeper ply (which can take 3-6x longer for Tinker).  So, when conditions are
such that Tinker would use "extra" time, I also see if it is significantly more
than what has been used already, and don't "waste" small bumps.

On my to-do list is to experiment with null move R variablility by time, and
trying to determine which moves are "easy" to enable stopping early.

Good luck.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.