On Tue, 2007-05-01 at 07:51 -0400, Chris Fant wrote:
> > You can:
> >
> > a) Guess your opponents next response, and assume they will make this
> > move. Fire off a search from the resultant position. If you guess
> > correctly, then you save X seconds. But if you only guess correctly p
> > % of the time, you expect to gain pX seconds of extra thinking time
> > per move.
> >
> > b) Think as if you were your opponent. Once your opponent makes a
> > move, you keep the relevant sub-tree. This means that you will always
> > get useful information from each ponder, but (assuming that you don't
> > use the transposition information) you have wasted time searching
> > moves the opponent didn't choose. I think a crude way of estimating
> > the amount of time gained by this form of pondering would be to
> > determine the expected value of:
> 
> Don has stated a couple of times that option (A) worked better for
> him.  I chose option (B) without testing option (A) because I did not
> want to have to decide how many seconds to use to guess the opponent
> move before starting to think about my next move.
You can also implement option A and just start your clock (while keeping
the search going) which is how Lazarus used to do it.   So even if
Lazarus spent a minute thinking on the opponents time it would still
spend whatever it was allocated additionally.   

However, that's clearly not best if you consider the nature of the ELO
rating curve per doubling.   In this case you would have recieved most
of the benefit from the 1 minute pondering amd the extra time is mostly
wasted - would be much better spent amortized over the rest of the game.
Since Lazarus spends a fixed percentage of remaining time on a given
move,  I would rather play instantly (assuming the opponent took a long
time to move) and defer the running of my clock down.   If you do this,
the next move immediatly benefits with a little extra thinking time even
if it's not predicted correctly.  

I hope my explanation isn't confusing.   In a nutshell you can squeeze
extra strength out of your program my allocating time as evenly as
possible.  Remember the ELO rating curve experiment?   Each additional
second of thinking time returns less expected ELO improvement (because
each doubling of time returns a fixed amount of ELO improvement - it's
not linear.)    The way to take advantage of this fact is to allocte
your time as evenly as possible. 

The previous paragraph has caveats - if you KNOW that a move is
particularly difficult or easy, you can take advantage by allocating
more or less time to that move.    It's known that EARLY moves in the
game can benefit from additional thinking time so they should be given
more time.   If you KNOW for sure what the best move is, you should of
course play it immediately.  As I mentioned before Lazarus plays fast
when the game is a forgone conclusion (when it's score as reported by
the UCT search is close to certainty.)   Lazarus tries to use that time
earlier in the game.   I really hate it when Lazarus loses a game but
there is still 2 minutes left on the clock!   Those 2 minutes could have
saved the game!   However it is not possible to always get this right
because there are many unknown factors such as how long the game will
last - or at what point it will not really matter.  

I also think there is something to be gained from determining if a move
is obvious and returning a move more quickly.   At some point I will
experiment with this too.    This would be even more beneficial against
programs that ponder.

In Chess it's not known how long a game can last, so you can play yet
another game with time allocation.   You want to front load your time
even more heavily (especially in sudden death games) because if the game
ends suddenly you may have a lot of unused time left on your clock.
But of course this is a gamble which you will sometimes lose - but it's
still a positive expectancy gamble so it should be made if you are a
wise gambler.

By the way, I noticed that some programs understand this principle of
using more time early in the game.    Some programs spent more on the
early moves than Lazarus, and I will notice that Lazarus is almost
finished with a game and other programs will only be in the middle or
even early part of the game.   Lazarus may error on the side of "even
time allocation."   I've seen it lose good or winning positions when
early time allocation is too aggressive but on the other hand it may not
have achieved good or winning positions without this.     I did some
basic tests of this (nothing major) and it seems like there are a large
range of values that don't make too much of a difference but I should
re-investigate.   The only thing really clear is that you should do this
to a reasonable extent.  The intution for this is that many games on
CGOS are technically over after just a few moves - and after this it
doesn't make much difference how you allocate your time as you have
already won or lost.

- Don



_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to