Print

Print


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