A plug-in-based architecture for random number generation in simulation systems

Simulations often depend heavily on random numbers, yet the impact of random number generators is recognized seldom. The generation of random numbers for simulations is not trivial, as the quality of each algorithm depends on the simulation scenario. Therefore, simulation environments for large-scale experimentation with safety-critical models require a reliable mechanism to cope with this aspect. We show how to address this problem by realizing a random number generation architecture for a general-purpose simulation system. It provides various random number generators (RNGs), probability distributions, and RNG tests. It is open to future additions, which allows the assessment of new generators in a simulation context and the re-validation of past simulation studies. We present a short example that illustrates why the features of such an architecture are essential for getting valid results.

[1]  Bernard P. Zeigler,et al.  Parallel DEVS: a parallel, hierarchical, modular modeling formalism , 1994, Proceedings of Winter Simulation Conference.

[2]  D. Gillespie Exact Stochastic Simulation of Coupled Chemical Reactions , 1977 .

[3]  P. L'Ecuyer,et al.  Fast combined multiple recursive generators with multipliers of the form a=/spl plusmn/2/sup q//spl plusmn/2/sup r/ , 2000, 2000 Winter Simulation Conference Proceedings (Cat. No.00CH37165).

[4]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[5]  G. Marsaglia Random numbers fall mainly in the planes. , 1968, Proceedings of the National Academy of Sciences of the United States of America.

[6]  P. Hellekalek Good random number generators are (not so) easy to find , 1998 .

[7]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[8]  Pierre L'Ecuyer,et al.  Fast combined multiple recursive generators with multipliers of the form a = ±2q ±2r , 2000, WSC '00.

[9]  Michael Mascagni,et al.  Parameterizing parallel multiplicative lagged-Fibonacci generators , 2004, Parallel Comput..

[10]  Lawrence Leemis,et al.  A test of randomness based on the distance between consecutive random number pairs , 2005, Proceedings of the Winter Simulation Conference, 2005..

[11]  George Marsaglia,et al.  Seeds for random number generators , 2003, CACM.

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[14]  Pierre L'Ecuyer,et al.  Simulation in Java with SSJ , 2005, Proceedings of the Winter Simulation Conference, 2005..

[15]  Makoto Matsumoto,et al.  Common defects in initialization of pseudorandom number generators , 2007, TOMC.

[16]  Adelinde M. Uhrmacher,et al.  Plug'n Simulate , 2007, 40th Annual Simulation Symposium (ANSS'07).

[17]  Michael Mascagni,et al.  SPRNG: A Scalable Library for Pseudorandom Number Generation , 1999, PP.

[18]  Pierre L'Ecuyer,et al.  TestU01: A C library for empirical testing of random number generators , 2006, TOMS.

[19]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[20]  Michael Mascagni,et al.  Testing parallel random number generators , 2003, Parallel Comput..

[21]  Jon Louis Bentley,et al.  Programming pearls , 1987, CACM.

[22]  Peter Grassberger,et al.  On correlations in “good” random number generators , 1993 .

[23]  Pierre L'Ecuyer,et al.  Random numbers for simulation , 1990, CACM.

[24]  Robert Rönngren,et al.  A comparative study of parallel and sequential priority queue algorithms , 1997, TOMC.

[25]  Jean G. Vaucher,et al.  SSJ: a framework for stochastic simulation in Java , 2002, Proceedings of the Winter Simulation Conference.

[26]  Pierre L'Ecuyer Uniform random number generators: a review , 1997, WSC '97.

[27]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.