Re: [cgsuite-devel] ArithmetoPeriodicSequence
A computer algebra system for research in combinatorial game theory.
Brought to you by:
asiegel
From: Aaron S. <aar...@gm...> - 2006-10-23 22:07:36
|
Sampling from the first period + preperiod bits won't work for the reasons described above - two sequences might be equal even though they are annotated with different periods and/or preperiods. By "index modulo period", I really mean "(index + preperiod) % period". Hashing based on random seeds is fairly standard procedure (e.g. Zobrist hash codes are widely used by chess AI software). It really doesn't matter that it's random; we could just hard code some "reasonably random-looking" seed into the software; but it's just as easy to use System.currentTimeMillis(). One could contrive seeds that are "bad" for particular applications, but the probability that two random seeds will differ appreciably in performance is negligible. (I'd be that it's significantly less than the probability that, in a given microsecond, the user's hardware will fail in a way that makes it look like a bug in cgsuite.) -a On 10/23/06, Dan Hoey <Ho...@ai...> wrote: > > > But [thinking out loud] it would work to just pick random positive > 32-bit > > integers, and then just take the value of the sequence mod its > period. Even > > if two APSequences are marked as having different periods, if they're > > identical then their modular behavior must be identical . . . > > That might make collisions likely for sequences that differ only in > their preperiods. I think you're better off sampling from the first > preperiod+period elements. > > I don't really see the point in initializing with a random seed. If > it doesn't affect the performance, why bother; if it _does_ affect the > performance, then cgsuite's performance on a particular problem would > depend on the phase of the moon. I'm concerned that that might give > the impression that the software is buggy. > > Dan > |