For the problem in which moves have probability in {0, 1/n} of
being selected (n = number of legal moves or empty points
depending on the approach), what Don does, i.e.:Keeping a vector of selectable/not selectable points with a moving limit: When you have to fill a gap, do it immediately by moving one from the border to the selectable area, sounds the best for me. But, how do you handle draws with different probabilities ?? Of course, it is trivial (but slow) if you add them all and keep an array of accumulated probabilities. I created something I call a ticket based lottery. Moves (legal in my case) "buy" tickets. An average move buys, say 10 tickets, the worst possible move buys just 1 and the most urgent buys 100. Of course these numbers should be tested empirically, because, the higher, the slower. (About 20 clockcycles per ticket. ~6ns·n is the difference between allocating 1 and allocating n (5 asm instructions)). And tickets are allocated in something similar to Don's idea. I have also considered doing multiple tickets just like coins. Having tickets of x1 and a separate tickets of x5 or some other value. Any ideas ? Jacques. _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
