On Tue, 2007-06-05 at 13:12 -0700, Peter Drake wrote:
> > So I'm only temporarily maintaining a list of illegal but unoccupied
> > points - this list gets "discarded" as soon as a legal move is
> tried.
> 
> Does that mean you have to regenerate the list every move?

I keep the list of un-occupied points - but the tiny list of illegal
points
gets regenerated from move to move.

However, this list is so tiny that it rarely amounts to more than 0
moves.  Near the end of the game it could get bigger, but if it does it
is starting to save some real time.   I think this is win/win.    

> > What you are doing is to avoid the call to the random number
> generator
> > by
> > trying the moves as a circular list.  This may be faster, but it's
> > biased,  perhaps the bias is insignificant enough that it doesn't
> have
> > an impact on the strength.
> 
> No, I pick a random point in the list every time, so there's still a  
> call to the random number generator. Just proceeding through the
> list  
> would be horribly biased (unless the list were pre-shuffled, as I
> was  
> doing previously). 

So it's possible that in a degenerate case you could pick many illegal
moves over and over again.   Technically, you could get into an infinite
loop if the period of your RNG was such that a legal move could not get
seen.   But I'm being really picky :-)

I am perhaps being too anal making sure I don't choose the same illegal
move twice.   However the code is trivial and it's not a major
difficulty managing. 

But I'm wondering if starting at a random point in a list of unoccupied
points and searching sequentially is really that terrible?    Another
idea I have is that when you do hit an illegal point, swap it with a
random element so that this particular bias point is changed for the
next move, then continue to search sequentially for a legal move.   You
could eliminate most of the RNG calls and the swaps.   But there are
probably not that many anyway.

- Don




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

Reply via email to