[Computer-go] fast + good RNG

Petr Baudis pasky at ucw.cz
Sun Mar 29 04:36:13 PDT 2015

On Sun, Mar 29, 2015 at 01:08:20PM +0200, Kahn Jonas wrote:
> Why not xorshift+128 ?

Because I wasn't aware of it.  Nice!

But I probably won't remember the code by heart like I do
seed * prime_near_2^14.  ;-)

> Period is $2^128 - 1$, more than sufficient for go. (If you need longer periods, use longer keys, I guess). And the code is easy.

I just think Go (except trivial implementation cases) should be very
insensitive to RNGs.  It is not like many Monte Carlo applications where
you just call the RNG in a tight loop in regular manner to move in the
same state space.  In a Go program, you call the RNG from playouts in
all sorts of irregular cases to pick out of available patterns
/liberties/neighbor groups, to check whether to apply a given
heuristic, and the set of moves to pick from shift-shapes continuously.
Even with a short-period RNG, you always use that number to decide
something else.

One of these times, I'll check if Pachi can still play Go with RNG
being (seed += 1313) % max.

				Petr Baudis

More information about the Computer-go mailing list