Don Dailey wrote:


Jason House wrote:
On May 13, 2008, at 1:51 PM, Mark Boon <[EMAIL PROTECTED]> wrote:


On 13-mei-08, at 14:10, Álvaro Begué wrote:
What others do is the right thing to do. Your method will introduce
some biases.

Could you elaborate what bias it could lead to? I also do the same as Jason. I did consider the possibility of a bias but couldn't immediately think of one.

And I was thinking "let's not repeat this topic"...

The probability of picking a point is proportional to 1 + number of illegal points before it.

In practice, illegal moves are pretty rare until endgame. At that point, it's a trade off between bias and speed. Random number generation is not cheap. I have yet to see empirical proof that the pick and scan is bad. I've tried both methods in the past and saw no measurable difference in strength.
I may perhaps take a look at this myself. I think there is a way to deal with this issue and get the best of both worlds or at least approach it. If this method does not degrade the quality, it's a moot point. Otherwise, here is an idea:

1. For each move list size, pre-compute N tables of move list traversal orderings.
  2. At move selection time alternative between them.

So you would have something in the C language like:

    int *order[S][C]

I forget to mention that S is the move list size (number of empty points you are interested in) and C is the number of list orderings you want to alternate between. And a list is returns that is of size S-1 (since your first move is selected by calling the random number generater.) A number like 8 or 16 is good (a power of two) because each time you using the list to select a move, you can increment a counter so that you use a different move list ordering the next time you are confronted with a move list of this same exact size.


Your first move is selected randomly, then from then on you use the array returned to form an offset from this. This would pay off if you really wanted something very close to uniform random and your random number generator was clearly expensive. I think there is a great deal of chaos that would make this "almost" perfectly uniform. The first move would be selected as you already do, using the random number generator but after this you traverse the list in random order as specified by this pre-computed table. Even though the bias is still there for any given move, it's basically non-predictable. On the very next move you will using a different table which you choose from in round robin fashion. Don't know how flawed this idea is. I believe it is would come close to uniformly random but wouldn't be perfect. There would be a minor bias when measured over a lot of games, it would probably occur that a certain move was being chosen slightly more often, but nothing like the bias in the current method. Is it worth it? Probably not, but just a crazy idea. Likely there are simpler ways to eliminate most of the bias while still minimizing the number of random move generations.
- Don




What good does moving it to the end of the list do? Next time around it's just as likely to be picked as when left in place. Or do you only process the 'end' after the 'front' moves are all tried?

The range of the random number is reduced by one after each failed lookup. Shuffled data has no impact on future use of the array of empty points.




Mark

_______________________________________________
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/
_______________________________________________
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