Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: question about fixing the time management of movei

Author: Uri Blass

Date: 08:28:19 07/28/04

Go up one level in this thread


On July 28, 2004 at 11:16:49, Uri Blass wrote:

>On July 28, 2004 at 10:52:44, Robert Hyatt wrote:
>
>>On July 28, 2004 at 01:56:04, Uri Blass wrote:
>>
>>>On July 28, 2004 at 01:43:38, Matthew Hull wrote:
>>>
>>>>On July 27, 2004 at 22:44:31, Robert Hyatt wrote:
>>>>
>>>>>On July 27, 2004 at 19:53:32, Uri Blass wrote:
>>>>>
>>>>>>On July 27, 2004 at 19:37:13, Robert Hyatt wrote:
>>>>>>
>>>>>>>On July 27, 2004 at 18:53:29, Uri Blass wrote:
>>>>>>>
>>>>>>>>On July 27, 2004 at 18:10:11, Robert Hyatt wrote:
>>>>>>>>
>>>>>>>>>On July 27, 2004 at 16:53:17, Uri Blass wrote:
>>>>>>>>>
>>>>>>>>>>On July 27, 2004 at 16:01:09, Robert Hyatt wrote:
>>>>>>>>>>
>>>>>>>>>>>On July 27, 2004 at 15:25:50, Uri Blass wrote:
>>>>>>>>>>>
>>>>>>>>>>>>On July 27, 2004 at 13:26:54, Robert Hyatt wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>On July 27, 2004 at 12:42:42, Uri Blass wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>On July 27, 2004 at 11:11:10, Robert Hyatt wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>On July 27, 2004 at 03:18:50, Sune Fischer wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>On July 25, 2004 at 22:01:31, Robert Hyatt wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>Bad idea.  Start the next iteration even if you don't think you will have time
>>>>>>>>>>>>>>>>>to finish it.  You might fail low.  Wouldn't that be nice to know?  :)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>This may or may not be a good idea.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>I think if it is a good idea, then you should always try and search the next
>>>>>>>>>>>>>>>>iteration for a short time to see if you get a quick fail-low.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>On the other hand, if it is a bad idea it is better to save the time that will
>>>>>>>>>>>>>>>>probably be wasted anyway.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>From what I can tell you propose to do a mixture, i.e. to use extra time if the
>>>>>>>>>>>>>>>>time manager tells you to?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>I really doubt this is the best way, because it will be extremely random when
>>>>>>>>>>>>>>>>you get to begin the next ply.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>No idea what that means.  I set a target time.  If I have not used that much
>>>>>>>>>>>>>>>time, I keep searching.  Whether that means starting a new iteration or
>>>>>>>>>>>>>>>continuing on the current iteration.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>When the target time is reached, I set a flag that says "do not search another
>>>>>>>>>>>>>>>root move, but don't stop until either the current root move has been searched
>>>>>>>>>>>>>>>or 2x the time limit has been used."  This does not apply if the root move being
>>>>>>>>>>>>>>>searched is the first one in the list...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Basically there are 2 cases to consider.
>>>>>>>>>>>>>>case 1:you did not expect the opponent move correctly.
>>>>>>>>>>>>>>case 2:You expected the opponent move correctly.
>>>>>>>>>>>>>
>>>>>>>>>>>>>I completely ignore this.  My only purpose for "pondering" is to save time so
>>>>>>>>>>>>>that I have more later when I need it.
>>>>>>>>>>>>
>>>>>>>>>>>>I think that it is wrong to ignore it because the situation is not the same.
>>>>>>>>>>>>
>>>>>>>>>>>>suppose that you have 2 minutes to finish the game when the opponent played fast
>>>>>>>>>>>>in previous moves and have 20 minutes to finish the game
>>>>>>>>>>>>
>>>>>>>>>>>>Suppose also that the opponent used 2 minutes for the last move.
>>>>>>>>>>>>
>>>>>>>>>>>>If you pondered the correct move you can use more than 2 minutes without losing
>>>>>>>>>>>>on time(you count in that case also the time that you used in the opponent time
>>>>>>>>>>>>otherwise you can never reply immediatly) and there may be cases when you want
>>>>>>>>>>>>to do it(for example after a big fail low when you hope to find a better move).
>>>>>>>>>>>
>>>>>>>>>>>I don't understand.  When I am "pondering" I have no "time limit" to deal with.
>>>>>>>>>>>The time limit is set when my opponent actually moves and my clock starts.  I
>>>>>>>>>>>will generally "move instantly" in such a case where I have a small time target
>>>>>>>>>>>but used a lot of time waiting on my opponent...
>>>>>>>>>>
>>>>>>>>>>Suppose that it is game in 30 minutes without increasment to do things more
>>>>>>>>>>simple.
>>>>>>>>>>
>>>>>>>>>>If I understand correctly you simply use the following factors to decide if to
>>>>>>>>>>play immediatly.
>>>>>>>>>>
>>>>>>>>>>1)target time that is based on the time that you have to finish the game.
>>>>>>>>>
>>>>>>>>>Correct...
>>>>>>>>>
>>>>>>>>>>2)time used that is based on the time that you started the search(if you
>>>>>>>>>>pondered correctly it is a positive number and if you pondered wrong it is 0)
>>>>>>>>>
>>>>>>>>>No.  It is zero for either case.  IE my "ponder start time" is the instant I
>>>>>>>>>start pondering.  My non-ponder-start-time is the instant I start searching.  My
>>>>>>>>>time limit will either be ponder-start-time + time limit, or
>>>>>>>>>non-ponder-start-time + time limit.  IE when I ponder and use my target, I might
>>>>>>>>>actually use zero clock time.  With a non-ponder search I always burn time off
>>>>>>>>>of my clock.
>>>>>>>>>
>>>>>>>>>But here is an easier-to-visualize explanation:
>>>>>>>>>
>>>>>>>>>I set a target time of 100 seconds and start pondering.  My opponent makes a
>>>>>>>>>different move.  I re-start the search from the right position, and I'll burn
>>>>>>>>>100 seconds off my clock, then make the move.
>>>>>>>>>
>>>>>>>>>I set a target time of 100 seconds and start pondering.  My opponent makes the
>>>>>>>>>right move after 150 seconds.  Since I have searched for > my target time, I
>>>>>>>>>move instantly and save that 100 seconds to use later if needed.
>>>>>>>>>
>>>>>>>>>I set a target time of 100 seconds and start pondering.  My opponent makes the
>>>>>>>>>right move after 50 seconds.  I continue searching for another 50 seconds to use
>>>>>>>>>my total 100 second time limit, but I only burn 50 seconds off the real chess
>>>>>>>>>clock.  I save the other 50 seconds for use when needed later in the game.
>>>>>>>>
>>>>>>>>I understand.
>>>>>>>>It simply seems to me not the best decision and I think that it is better to
>>>>>>>>decide about the target time after the opponent plays it's move.
>>>>>>>
>>>>>>>I don't see the difference.  In one case, I "assume" that my opponent makes the
>>>>>>>predicted move and set a time limit.  In the other case he actually makes a move
>>>>>>>and I set a time limit.  Are you saying you might choose a different time limit
>>>>>>>depending on whether he plays the predicted move or not?
>>>>>>>
>>>>>>>I can't really say whether that would be reasonable or not.  Perhaps if I
>>>>>>>predict correctly I either (a) understand things well enough that less time
>>>>>>>would be safe, or (b) don't have a clue and am walking into some deep error that
>>>>>>>I need more time to see.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>The reason is that if you pondered the correct move you simply have more time
>>>>>>>>for other moves and not use part of it for the next move seems to me not correct
>>>>>>>>decision.
>>>>>>>
>>>>>>>
>>>>>>>I don't quite see how I could do that.  I suppose I could set the ponder time
>>>>>>>limit such that I assume I am correct, but how could I guess how long my
>>>>>>>opponent would take to search that move and then play it?  I have no idea what
>>>>>>>his time limit is set to.  It could be short for an easy move.  His "best" move
>>>>>>>could fail low and make him take a long time.  IE I see no reasonable way to
>>>>>>>guess how much time I will save until I actually save it (if I do).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>The problem may be more important in time control of x minutes/y moves
>>>>>>>>
>>>>>>>>
>>>>>>>>Let look in the case of 40 minutes/40 moves(does not happen in ICC but happen in
>>>>>>>>tournaments that people play).
>>>>>>>>
>>>>>>>>Suppose that Crafty is at move 39 and has 2 minute on the clock for move 39-40.
>>>>>>>>suppose that the target time is the average time that you have for a move.
>>>>>>>>Suppose that you decide about target time of 1 minute and the opponent use
>>>>>>>>exactly 1 minute to play so you respond immediatly.
>>>>>>>>
>>>>>>>>Now at move 40 your target time is bigger and is 2 minutes.
>>>>>>>>A better decision seems to me to increase the target time for move 39 to 1.5
>>>>>>>>minutes and you can use 1.5 minutes both for move 39 and for move 40 that seems
>>>>>>>>more logical to me than 1 minute for move 39 and 2 minutes for move 40.
>>>>>>>>
>>>>>>>>Uri
>>>>>>>
>>>>>>>I can see that failing easily.  I set the target time at move 39 to 1.5 minutes.
>>>>>>> My opponent moves instantly and plays the predicted move.  I'm now stuck with
>>>>>>>burning 1.5 minutes leaving 30 seconds for the last move...
>>>>>>
>>>>>>The idea is that you set the target time only after the opponent play.
>>>>>>
>>>>>>If the opponent played not the predicted move then your target time is 1 minute.
>>>>>>If the opponent played the predicted move your target time is dependent on the
>>>>>>time that the opponent used.
>>>>>>
>>>>>>If the opponent used 1 minute then your target time is 1.5 minutes but if the
>>>>>>opponent replied immediatly it is still 1 minute.
>>>>>>
>>>>>
>>>>>OK.  that is easy to do.  Early CB versions did that very thing.  But later we
>>>>>chose to save the time.  IE what is the reason to search deeper only on moves
>>>>>where you predict correctly?  Those are the ones that are probably most
>>>>>accurately evaluated already...  So we chose to go to the "pure target time" and
>>>>>search all moves for about the same time (excluding long ponder thinks when the
>>>>>opponent goes for a long time of course).  I think that overall it is better to
>>>>>be fairly uniform, rather than randomly searching some positions more deeply,
>>>>>without any sort of clue that more searching is needed (fail low, etc.)
>>>>
>>>>
>>>>It seems also that, at least in principle, a few scattered deep searches in the
>>>>middle-game might end up choosing a position that the next search will not know
>>>>what to do with, if it is not fortunate enough to search to the same depth as
>>>>the previous search (on the previous move).
>>>
>>>I do not think that it is going to be a problem.
>>>
>>>Do not forget that in the next search you are 2 plies later and also hash tables
>>>help crafty not to forget what it planned earlier.
>>>
>>>
>>>  It would be as if for some moves,
>>>>the speed of your machine were doubled, only to have it slow down to "normal"
>>>>for the next move, which might require a critical continuation.
>>>
>>>I think that usually there is no problem to find the critical continuation.
>>>This may be a theoretic problem for a program that clears it's hash tables like
>>>movei when it may find a win and forget the win 2 plies later but usually it is
>>>not a problem.
>>>
>>>
>>>  An extreme case
>>>>might be that a very long think by an opponent, and a correct ponder by you
>>>>could have the same deleterious effect where the one deep search leaves
>>>>subsequent searches at a loss as how to proceed.
>>>>
>>>>If any of this is true, it seems your current policy would be the correct one,
>>>>saving the time for later instead of burning it for a few random moves in the
>>>>middle.  Perhaps this is where some credit is due for some really good endgame
>>>>saves at WCCC where crafty's surplus of time built up were expended to good
>>>>effect at the critical juncture.
>>>
>>>I do not think that Crafty did well in the endgame because of espacially good
>>>time management and the difference between what Crafty used and other ideas that
>>>were suggested is probably not very big(the main important thing is to use more
>>>time when you fail low and other tricks probably give not more than 20 elo).
>>>
>>>Uri
>>
>>
>>Depends on what happens.  If you do as some programs did, and near the first
>>time control with almost no time left, my approach is going to be worth _far_
>>more than 20 elos.  Or would you really care to play me on good hardware with a
>>10:1 time handicap for a few moves?
>
>The question is if programs got serious time trouble of 2:1 or something like
>10:1 and also why it happened.
>
>A program may get to a serious time trouble because of fail lows when using less
>time could not save the game.
>
>I do not think that programs got to serious time trouble because of using other
>ideas that were suggested here.
>
>I do not say that programs did not have problems in time management against
>Crafty but it was not because of the ideas that were suggested here like
>finishing at the end of the iteration when you believe that you have no time to
>complete the next iteration.
>
>The idea to finish at the end of the iteration can be improved but I remember
>that Amir Ban said that it was better for him than previous strategy that
>allowed often playing in the middle of the iteration.
>
>Uri

I can add that if we talk about the idea to increase the target time after
predicting the correct move then I do not suggest to increase it significantly
when you have many moves to the time control.

I only want the target time not to increase in the next move

Suppose that I have at least 2 moves to complete the first time control.

If I have target time of 2 minutes and I predicted the opponent move correctly
and reply immediatly then the target time for the next move is always going to
be bigger because there are less moves to the time control.

I can prevent it by increasing the target time when I ponder correctly so the
target time for the next move will be the same(if I do not predict correctly the
opponent move) or bigger(if I predict correctly the next move) or smaller in
case of something that force me to use more than the target time like fail low.

Uri



This page took 0.01 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.