And correct me if I'm wrong, but there are some algorithms in which
using a prime number would be a bad idea. Anyway, it seems to me that
any decent random stream generator should be able to take an arbitrary
seed and produce a good result. (For instance, if the algorithm wants
a prime number, that number has to be calculated someway, why not do
that in the algorithm? OTOH, if it *needs* a prime number that's a bit
scary.) I usually just use System.currenttimeinmillis and record that
as you know it will be unique.
As a random observation my thinking is that ABMs are (generally!) less
sensitive to RNG issues than other modeling techniques. Interesting
models should have fewer regularities and over (minimal) time the
state diverge based on small changes. For example, if one agent dies
under one seed and not another, every subsequent agent will get a
completely different draw. Sensitive to initial (and subsequent!)
conditions, right?
Interesting article -- only scanned it just now, but there is a
related and pretty neat point that Rob Axtell made a long time ago
about giving each agent its own random stream -- say when exploring
variations using the same seed. This way if one agent has a different
outcome it doesn't immediately cause radical changes across the model;
it is only when the local changes propagate that you might see more
distant agents affected.
Now, a perhaps somewhat niave question, but for the case described in
the paper, why not just use a random stream to seed a set of other
random streams?
-Miles
On Feb 3, 2009, at 12:48 PM, Pelle Evensen wrote:
> Randy Casstevens wrote:
>> Do some random seeds give better quality results for
>> MersenneTwisterFast? I have heard that random seeds should be odd
>> numbers, large numbers, and/or prime numbers, but does it matter for
>> MersenneTwisterFast?
>>
> In short, for any good quality PRNG (the MersenneTwister would be
> one) the choice of seed does not matter at all as far as "quality"
> goes.
>
> The only thing to possibly worry about is if you start many
> different simulations with nearby seeds. For some generators
> (depending on how the seed is expanded to the internal state of the
> generator) this will be a problem and for some others, it won't be.
> What the state of the Mersenne Twister as implemented in MASON is, I
> don't know.
>
> A better (or at least safer) approach than the Mersenne Twister
> would be to have a generator that generates distinct streams. This
> article discusses the desirability of distinct streams; http://www.iro.umontreal.ca/~lecuyer/myftp/papers/rstream.pdf
>
> Regards,
> Pelle
|