On Fri, 2007-01-26 at 15:57 -0600, Nick Apperson wrote:
> So I was thinking.  I wonder if anyone has written a go engine that
> can play using only the time that it takes their opponent to think.
> It seems some of your monte carlo programs would be able to do this
> decently well.  Has anyone tried to see how much it hurts the ranking
> of a program?  I would estimate that it would lose only 600 ELO =
> around 3 doublings of thinking time.  That is assuming the engine
> spends on *proper average 1/8 the time it has trying the move that the
> opponent picked.  Proper average I am defining to be: e^(mean(ln(time
> spent))).  So essentially, the expected ELO of the move picked.  Any
> thoughts or data? 

Lazarus uses the opponents time to think.   It does this by assuming
that
the opponent will play the next move in the principal variation.   The
prediction accuracy is fairly high on CGOS but I don't have exact
numbers.

Another idea is to start searching as soon as you make a move, as if you
were the opponent.   When the opponent finally plays a move,  you then
can discard the root node and all the siblings of the move the opponent
chose.   Unfortunately,  this doesn't buy that much time except at nodes
where the moves are obvious and forced.     

I came to the conclusion that it's better to just predict the opponents
move, play it and then start thinking right away,   and if the opponent
doesn't do what you predicted you have lost nothing (but neither have
you gained anything.)  But when you predict correctly you get the full
benefit of his time.

Right now, Lazarus uses the opponents time to think, but that doesn't
change the amount of time it thinks on it's own time.   I think this 
is wrong and it's just a detail I have not yet implemented.   I think
the proper behavior is to have a fixed "goal time" for the move and
play the move as soon as the opponent moves if you have already met
that goal time,  otherwise continue to think until you've met the
goal time.   So you might get instant response, or just fairly quick
response but if you predict correctly it will always be at least a
little benefit.   This should be combined with even more aggressive
up front time loading (where you spend a lot more time on early moves.)
This should be done whether you think on the opponents time or not.

Lazarus does save the tree from each search - so there is at least
a minor benefit even if you don't predict the opponents move correctly
you get to use any nodes that you have generated although this usually
doesn't amount to much.   So it never resets the tree completely, it
just continues to splice forward.

- Don
 


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

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

Reply via email to