skip to main content
article
Free Access

Random numbers for simulation

Published:01 October 1990Publication History
Skip Abstract Section

Abstract

In the mind of the average computer user, the problem of generating uniform variates by computer has been solved long ago. After all, every computer :system offers one or more function(s) to do so. Many software products, like compilers, spreadsheets, statistical or numerical packages, etc. also offer their own. These functions supposedly return numbers that could be used, for all practical purposes, as if they were the values taken by independent random variables, with a uniform distribution between 0 and 1. Many people use them with faith and feel happy with the results. So, why bother?

Other (less naive) people do not feel happy with the results and with good reasons. Despite renewed crusades, blatantly bad generators still abound, especially on microcomputers [55, 69, 85, 90, 100]. Other generators widely used on medium-sized computers are perhaps not so spectacularly bad, but still fail some theoretical and/or empirical statistical tests, and/or generate easily detectable regular patterns [56, 65].

Fortunately, many applications appear quite robust to these defects. But with the rapid increase in desktop computing power, increasingly sophisticated simulation studies are being performed that require more and more “random” numbers and whose results are more sensitive to the quality of the underlying generator [28, 40, 65, 90]. Sometimes, using a not-so-good generator can give totally misleading results. Perhaps this happens rarely, but can be disastrous in some cases. For that reason, researchers are still actively investigating ways of building generators. The main goal is to design more robust generators without having to pay too much in terms of portability, flexibility, and efficiency. In the following sections, we give a quick overview of the ongoing research. We focus mainly on efficient and recently proposed techniques for generating uniform pseudorandom numbers. Stochastic simulations typically transform such numbers to generate variates according to more complex distributions [13, 25]. Here, “uniform pseudorandom” means that the numbers behave from the outside as if they were the values of i.i.d. random variables, uniformly distributed over some finite set of symbols. This set of symbols is often a set of integers of the form {0, . . . , m - 1} and the symbols are usually transformed by some function into values between 0 and 1, to approximate the U(0, 1) distribution. Other tutorial-like references on uniform variate generation include [13, 23, 52, 54, 65, 84, 89].

References

  1. 1 Afflerbach, L. The sub-lattice structure of linear congruential random number generators. Manzcsc. Math. 55 (1986), 455-465.]]Google ScholarGoogle ScholarCross RefCross Ref
  2. 2 Afflerbach, L. and Grothe, H. Calculation of Minkowski-reduced lattice bases. Computing 35 (1985), 269-276.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Afflerbach, L. and Grothe, H. The lattice structure of pseudorandom vectors generated by matrix generators. J. of Comput. and Applied Math. 23 (1988), 127- 13 1.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Afflerbach, L. and Weilbacher, R. On Using Discrepancy for the Assessment of Pseudorandom Num-ber Generators. Submitted for publication, 1988.]]Google ScholarGoogle Scholar
  5. 5 Afflerbach, L. and Weilbacher, R. The exact determination of rectangle discrepancy for linear congruential pseudorandom numbers. Math. of Comput. 53, 187 (July 1989) 343-354.]]Google ScholarGoogle ScholarCross RefCross Ref
  6. 6 Alexi, W., Chor, B., Goldreich, 0. and Schnorr, C. P. RSA and Rabin Functions: Certain parts are as hard as the whole. SIAM J. on Comput. 17, 2 (1988) 194-209.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Andre, D. L., Mullen, G. L., and Niederreiter, H. Figures of merit for digital multistep pseudorandom numbers. Math. of Comput. To be published, 1990.]]Google ScholarGoogle Scholar
  8. 8 Arvillias, A. C. and Maritsas, D. G. Partitioning the period of a class of m-sequences and application to pseudorandom number generation. J. ACM 25,4 (1978) 675-686.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Blum, L., Blum, M. and Schub, M. A simple unpredictable pseudorandom number generator. SIAM J. Cornput. 15, 2 (1986) 364-383.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Boyar, J. Inferring sequences produced by pseudo-random number generators. J. ACM 36, 1 (1989) 129-141.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 Brassard, G. and Bratley P. Algorithmics, Theory and Practice. Prentice-Hall, Englewood Cliffs, N.J., 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Bratley, P. and Fox, B. L. Algorithm 659: Implementing Sobol's quasirandom sequence generator. ACM Trans. on Math. Softw. 14, 1 (Mar. 1988) 88-100.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Bratley, P., Fox, B. L. and Schrage, L. E. A Guide to Simulation. 2d ed. Springer-Verlag, New York, 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Brown, M. and Solomon, H. On combining pseudorandom number generators. Ann. Stat. I (1979) 691-695.]]Google ScholarGoogle ScholarCross RefCross Ref
  15. 15 Carta, D. G. Two fast implementations of the "minimal standard" random number generator. Commm. ACM 33, 1 (Jan. 1990) 87-88. Celmaster, W. and Moriarty,]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 K. J. M. A method for vectorized random number generators. J. Comput. Phy. 64 (1986) 271-275.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 Chassaing, P. An optimal random number generator on Z,. Stat. and Prob. Lett. 7 (1989) 307-309.]]Google ScholarGoogle ScholarCross RefCross Ref
  18. 18 Chor, B. and Goldreich, 0. Unbiased bits from sources of weak randomness and probabilistic communication complexity. SZAM J. Comput. 17, 2 (1988) 230-261.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 Chung, F. R. K., Diaconis, P., and Graham, R. L. Random walks arising in random number generation. Ann. Probab. 15, 3 (1987) 1148-1165.]]Google ScholarGoogle ScholarCross RefCross Ref
  20. 20 Collings, B. J. Compound random number generators. J. Am. Stat. Assoc. 82, 398 (1987) 525-527.]]Google ScholarGoogle ScholarCross RefCross Ref
  21. 21 Collings, B. J. and Hembree, G. B. Initializing generalized feedback shift register pseudorandom number generators. J. ACM 33 (1986) 706-7 11. A, also in J. ACM, 35, 4 (1988) 1001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Compagner, A. and Hoogland, A. Maximum length sequences, cellular automata, and random numbers. J. Comput. Phys. 71 (1987) 391-428.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 Dagpunar, J. Principles of Random Variate Generation. Oxford University Press, 1988.]]Google ScholarGoogle Scholar
  24. 24 De Matteis, A. and Pagnutti, S. Parallelization of random number generators and long-range correlations. Numerische Mathematik 53 (1988) 595-608.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Devroye, L. Non-Uniform Random Variate Generation. Springer- Verlag, New York, 1986.]]Google ScholarGoogle ScholarCross RefCross Ref
  26. 26 Dieter, U. How to calculate shortest vectors in a lattice. Math. Comput., 29, 131 (1975) 827-833.]]Google ScholarGoogle ScholarCross RefCross Ref
  27. 27 Dudewicz, E. J. and Ralley, T. G. The Handbook of Random Number Generation and Testing with TESTRAND Computer Code. American Sciences Press, Columbus, Ohio, 1981.]]Google ScholarGoogle Scholar
  28. 28 Durst, M. J. Using linear congruential generators for parallel random number generation. In Proceedings of the I989 Winter Simulation Conference. IEEE Press (1989) pp. 462-466.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Eichenauer, J. and Lehn, J. A Nonlinear congruential pseudorandom number generator. Statist&he Hefie, 27 (1986) 3 15- 326.]]Google ScholarGoogle Scholar
  30. 30 Eichenauer, J. and Lehn, J. On the structure of quadratic congruential sequences. Manux. Math., 58 (1987) 129-140.]]Google ScholarGoogle ScholarCross RefCross Ref
  31. 31 Eichenauer. J., Grothe, H., Lehn. J. and Topuzoglu, A. A multiple recursive nonlinear congruential pseudorandom number generator. Manw. Math. 59 (I 987) 33 I - 346.]]Google ScholarGoogle Scholar
  32. 32 Eichenauer, J., Lehn, J. and Topuzoglu, A. .4 nonlinear congruential pseudorandom number generator with power of two modulus. Math. Comput. 51, 184 (1988) 757-759.]]Google ScholarGoogle ScholarCross RefCross Ref
  33. 33 Eichenauer-Herrmann, J., Grothe, H. and Lehn, J. On the period length of pseudorandom vector sequences generated by matrix generators. Math. Comput. 52, 185 (1989) 145-148.]]Google ScholarGoogle ScholarCross RefCross Ref
  34. 34 Eichenauer-Herrmann, J. lnversive congruential pseudorandom numbers avoid the planes. Math. Comput. (I 990). To be published.]]Google ScholarGoogle Scholar
  35. 35 Fishman, G. S. Multiplicative congruential random number generators with modulus 2P: an exhaustive analysis for /3 = 32 and a partial analysis for /3 = 48. Math. Comput. 54, 189 (Jan 1990) 331- 344.]]Google ScholarGoogle Scholar
  36. 36 Fishman, G. S. and Moore Ill, L. S. An exhaustive analysis of multiplicative congruential random number generators with modulus 2s' - 1. SIAM J. Sci. and Stat. Comput. 7, 1 (1986) 24-45.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37 Fushimi, M. Increasing the orders of equidistribution of the leading bits of the Tausworthe sequence. InJ hoc. Lett. 16 (1983) 189-192.]]Google ScholarGoogle Scholar
  38. 38 Fushimi, M. Designing a uniform random number generator whose subsequences are k-distributed. SIAM J. Comput. I 7, 1 (1988) 89- 99.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 39 Fushimi, M. An equivalence relation between Tausworthe and GFSR sequences and applications. Applied Math. Lett. :?, 2 (I 989) 135- 137.]]Google ScholarGoogle Scholar
  40. 40 Fushimi, M. Random number generation on parallel processors. In Proceedings of the 1989 Winter Simulation Conference. IEEE Press (1989) pp. 459~-461.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 41 Fushimi, M. Random number generation with the recursion X, = X,-jp @ X,--3y. In Comput. and Applied Math. (1990). To be published.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42 Fushimi, M. and Tezuka, S. The& distribution of generalized feedback shift register pseudorandom numbers. Commun. ACM 26, 7 (1983) 516-523.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 43 Goldreich, O., Goldwasser, S. and Micali, S. How to construct random functions. J. ACM ?3, 4 (1986) 792-807.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 44 Grothe, H. Matrix generators for pseudo-random vectors generation. Stat. Hefte 28 (I 987) 233-238.]]Google ScholarGoogle ScholarCross RefCross Ref
  45. 45 Grothe, H. Matrixgeneratoren zur Erzeugung gleichverteilter Pseudozufallsvektoren (in german). Dissertation (thesis), Tech. Hochschule Darmstadt, Germany, 1988.]]Google ScholarGoogle Scholar
  46. 46 Grube, A. Mehrfach rekursiverzeugte Pseudo-Zufallszahlen (in german). Zeitschrift fiir angewandte Math. und Mechanik 53 (1973) T223-T225.]]Google ScholarGoogle Scholar
  47. 47 Guinier, D. A fast uniform "Astronomical" random number generator. ACM SIGSAC Rev. 7, I (Spring 1989), l-13.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 48 Haas, A. The multiple prime random number generator. ACM Trans. Math. Softw. 13, 4 (1987) 368-381.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. 49 Halton, J. H. Pseudo-random trees: Multiple independent sequence generators for parallel and branching computations. J, Comput. Phys. 84 (1989) l-56.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. 50 Hosack, J. M. The use of cebysev mixing to generate pseudorandom numbers. J. Comput. Phys. 67 (1986) 482-486.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. 51 Kannan, R., Lenstra, A. K. and Lov&sz, L. Polynomial factorization and nonrandomness of bits of algebraic and some transcendental numbers. Math. Comput. 50, 181 (1988) 235-250.]]Google ScholarGoogle ScholarCross RefCross Ref
  52. 52 Knuth, D. E. The Art of Computer Programming Vol. 2 Seminumerical Algorithms, 2d ed. Addison-Wesley, 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. 53 Koniges, A. E. and Leith, C. E. Parallel processing of random number generation for Monte Carlo turbulence simulation. J. oJ Comput. Phys. 81 (1989) 230-235.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. 54 Law, A. M. and Kelton, W. D. Slmulation Modeling and Analysis, 2d ed., McGraw-Hill, 1991. To be published.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. 55 L'Ecuyer, P. A portable random number generat.or for 16.bit computers. Modelzng and Simulation on Microcomputers 1987. The Society for Computer Simulation (1987), pp. 45-49.]]Google ScholarGoogle Scholar
  56. 56 L'Ecuyer, P. Efficient and portable combined random number generators. Commun. ACM 31, 6 (1988) 742-749 and 774. Also see the correspondance in Commun. ACM 32, 8 (1989) 1019-1024.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. 57 L'Ecuyer, P. and Blouin, F. Linear congruential generators of order k > 1. In Proceedings of the 1988 Winter Simulation Conference, IEEE Press, (1988), pp. 432-439.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. 58 L'Ecuyer, P. and Blouin, F. Multiple Recursive and Matrix Linear Congruential Generators. Submitted for publication, 1990.]]Google ScholarGoogle Scholar
  59. 59 L'Ecuyer, P. and C&e, S. lmplementing a random number package with splitting facilities. ACM Trans. on Math. Softw. 1990. To be published.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. 60 L'Ecuyer, P. and Proulx, R. About Polynomial-Time "Unpredictable" Generators. In Proceedings of the 1989 Winter Simulation Conference, IEEE Press, (1989). pp. 467-476.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. 61 L'Ecuyer, P. and Tezuka, S. Structural Properties for Two Classes of Combined Generators. Submitted for publication, 1990.]]Google ScholarGoogle Scholar
  62. 62 Lewis, T. G. and Payne, W. H. Generalized feedback shift register pseudorandom number algorithm. J. ACM 20, 3 (1973) 456- 468.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. 63 Lidl, R. and Niederreiter, H. Introduction to Finite Fields and Their Applications. Cambridge University Press, Cambridge, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. 64 Marsaglia, G. Random numbers fall mainly in the planes. In Proceedings of the National Academy of Sciences of the United States of America 60 (1968) pp. 25-28.]]Google ScholarGoogle ScholarCross RefCross Ref
  65. 65 Marsaglia, G. A Current View of Random Number Generation. Computer science and statistics. In Proceedings of the Sixteenth Symposium on the Interface (Atlanta, March 1984). Elsevier Science Pub}., North-Holland, 1985, pp. 3-10.]]Google ScholarGoogle Scholar
  66. 66 Marsaglia, G. and Tsay, L.-H. Matrices and the structure of random number sequences. Linear Algebra and its Appl. 67 (1985) 147- 156.]]Google ScholarGoogle ScholarCross RefCross Ref
  67. 67 Marsaglia, G., Zaman, A., and Tsang, W. W. Towards a universal random number generator. Stat. and Prob. Lett. 8 (1990) 35-39.]]Google ScholarGoogle ScholarCross RefCross Ref
  68. 68 Marse, K. and Roberts, S. D. lmplementing a portable FORTRAN uniform (0,l) generator. Simulation 41, 4 (1983) 135-139.]]Google ScholarGoogle ScholarCross RefCross Ref
  69. 69 Modianos, D. T., Scott, R. C. and Cornwell, L. W. Testing intrinsic random number generators. Bytn .12, 1 (1987) 175-178.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. 70 Monahan, J. F. Accuracy in Random Number Generation. Math. of Corn& 45, 172 (1985) 559-568.]]Google ScholarGoogle Scholar
  71. 71 Morain, F. lmplementation of the Atkin-Goldwasser-Kilian primality testing algorithm. Rap. de recherthe 9 11, INRIA, Rocquencourt, France, 1988.]]Google ScholarGoogle Scholar
  72. 72 Mullen, G. L. and Niederreiter, H. Optimal characteristic polynomials for digital multistep pseudorandom numbers. Computing ?9 (1987) 155-163.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. 73 Nance, R. E. and Overstreet, C., Jr. Some experimental observations on the behavior of composite random number generators. Oper. Res. 26, 5 (1978) 915-935.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. 74 Narkiewicz, W. CJninz~orm Distribution of Sequences of Integers in Residue Classes. Lecture Notes in Mathematics, 1087, Springer-Verlag, 1984.]]Google ScholarGoogle Scholar
  75. 75 Niederreiter, H. Quasi-Monte Carlo methods and pseudorandom numbers. Bull. Am. Math. Sot. 84, 6 (1978) 957-1041.]]Google ScholarGoogle ScholarCross RefCross Ref
  76. 76 Niederreiter, H. A pseudorandom vector generator based on finite field arithmetic. Math. Japonica 31, 5 (1986) 759-774.]]Google ScholarGoogle Scholar
  77. 77 Niederreiter, H. A statistical analysis of generalized feedback shift register pseudorandom number generators. SIAM J. Sci. Stat. Comput. 8, 6 (1987) 1035-1051.]]Google ScholarGoogle ScholarCross RefCross Ref
  78. 78 Niederreiter, H. Remarks on nonlinear congruential pseudorandom numbers. Metriha 35 (1988) 321-328.]]Google ScholarGoogle Scholar
  79. 79 Niederreiter, H. Statistical independence of nonlinear congruential pseudorandom numbers. Monatshefte fiir Mathematik 106 (1988) 149- 159.]]Google ScholarGoogle Scholar
  80. 80 Niederreiter, H. The Serial Test for Digital k-Step Pseudorandom Numbers. Math. J. Okayama Univ. 30 (1988) 93-l 19.]]Google ScholarGoogle Scholar
  81. 81 Niederreiter, H. The serial test for congruential pseudorandom numbers generated by inversions. Math. of Comput. 52, 185 (1989) 135-144.]]Google ScholarGoogle ScholarCross RefCross Ref
  82. 82 Niederreiter, H. Lower bounds for the discrepancy of inversive congruential pseudorandom numbers. Math. Comput. 1990. To be published.]]Google ScholarGoogle Scholar
  83. 83 Niederreiter, H. Statistical independance properties of pseudorandom vectors produced by matrix generators. J. Cornput. Appl.Math. 1990. To be published.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. 84 Niederreiter, H. Recent trends in random number and random vector generation. Ann. Oper. Res. 1990. To be published.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. 85 Park, S. K. and Miller, K. W. Random number generators: Good ones are hard to find. Commun. ACM 31, 10 (1988) 1192-1201.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. 86 Percus, D. E. and Kales, M. Random number generators for MIMD parallel processors. J. Parallel and Distributed Comput. 6 (1989) 477-497.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. 87 Reif, J. H. and Tygar, J. D. Efficient parallel pseudorandom number generation. SIAM J. Comput. 17, 2 (1988) 404-411.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. 88 Ripley, B. D. The Lattice Structure of Pseudo-random Number Generators. In Proceedings of the Royal Society of London, 389 Ser. A, (1983) pp. 197-204.]]Google ScholarGoogle Scholar
  89. 89 Ripley, B. D. Stochastic Simulation. Wiley, New York, 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. 90 Ripley, B. D. Uses and abuses of statistical simulation. Math. Prog., 42 (1988) 53-68.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. 91 Stern, J. Secret linear congruential generators are not cryptographically secure. In Proceedings of the 28th IEEE Symposium on Foundations of Computer Science (1987) pp. 42 l-426.]]Google ScholarGoogle Scholar
  92. 92 Tausworthe, R. C. Random numbers generated by linear recurrence modulo two. Math. of Comput., 19 (1965) 201-209.]]Google ScholarGoogle ScholarCross RefCross Ref
  93. 93 Tezuka, S. Walsh-spectral test for GFSR pseudorandom numbers. Commun. ACM 30, 8 (Aug. 1987) 731-735.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. 94 Tezuka, S. On the discrepancy of GFSR pseudorandom numbers. J. ACM 34, 4 (Oct. 1987), 939-949.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. 95 Tezuka, S. On optimal GFSR pseudorandom number generators. Math. of Computat. 50, 182 (Apr. 1988) 531-533.]]Google ScholarGoogle ScholarCross RefCross Ref
  96. 96 Tezuka, S. Random number generation based on the polynomial airthmetic module two. Rep. RT- 0017, IBM Research, Tokyo Research Laboratory, Oct. 1989.]]Google ScholarGoogle Scholar
  97. 97 Tezuka, S. Analysis of L'Ecuyer's combined random number generator. RT-5014, IBM Research, Tokyo Research Laboratory, Nov. 1989.]]Google ScholarGoogle Scholar
  98. 98 Tindo, G. Automates cellulaires; apphcations B la modelisation de certains systemes discrets et a la conception d'une architecture parallele pour la generation de suites pseudo-aleatoires. These de doctorat en informatique, Universite de Nantes, France, Jan. 1990.]]Google ScholarGoogle Scholar
  99. 99 Wichmann, B. A. and Hill, 1. D. An Efficient and portable pseudorandom number generator. Appl. Stat. 31 (1982) 188-190. Also see corrections and remarks in the same journal by Wichmann and Hill 33 123; (1984) McLeod 34 (1985) 198-200; Zeisel 35 (1986) 89.]]Google ScholarGoogle ScholarCross RefCross Ref
  100. 100 Wichmann, B. A. and Hill, I. D. Building a random number generator. Byte 12, 3 (1987) 127-128.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. 101 Wikramaratna, R. S. ACORN-A new method for generating sequences of uniformly distributed pseudo-random numbers. J. Comput. Phys. 83 (1989) 16-31.]] Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Random numbers for simulation

      Recommendations

      Reviews

      Paul Adrian Luker

      The devotion of this issue of Communications of the ACM to simulation attests to the increasing importance of simulation as a tool to help understand and manage our increasingly complex world. This special issue is also evidence of a recognition that simulation poses interesting problems for the computer scientist. For example, many simulationists are concerned with the integration of artificial intelligence techniques and traditional simulations, while others, in a quest for speed, are developing simulations for distribution over multiprocessor systems, or LANs. For papers like those in this issue, the reader would normally have to consult specialist publications, such as those of the Society for Computer Simulation, or the proceedings of simulation conferences. This collection has been produced from reworkings of papers presented at the 1989 Winter Simulation Conference, an annual conference that primarily addresses discrete event simulation. The collection was compiled, edited, and introduced by the program chair of the conference, Philip Heidelberger. The introduction is quite short and is little more than a (good) summary of each paper. My only major concern with the special issue is that it lacks the glue to hold the components together. Each paper is excellent in its own way, but the reader who is not familiar with discrete event simulation may not find it easy to put each contribution into its proper context. I would have liked to see a longer introduction that provided a general overview of discrete event simulation and led into each paper at the appropriate point. Further, the ordering of the papers shows no clear logic. L'Ecuyer's paper, for example, is germane to all discrete event simulations, while Fujimoto's paper addresses distributed simulation which, though very interesting, is at present relevant to fewer would-be simulationists. Richard Fujimoto's paper is by far the longest contribution to the special issue. A well-known and respected author in the area of distributed simulation, Fujimoto has here produced an excellent introduction to parallel discrete event simulation, beginning with a review of the nature of discrete event simulation (which may justify the paper's position in the vanguard). Typically, discrete event systems are asynchronous. The simulation is decomposed into a set of concurrent processes that may be mapped onto different processor configurations, loosely or tightly coupled, to achieve a speedup in performance. The parallelization is data-dependent and is certainly not amenable to techniques such as vector processing. Consequently, parallel discrete event simulation is seen as a model for distributed computation in general. For all discrete event simulations, the key problem is to process events in increasing simulation time (or timestamp) order. If this order is violated, then causality errors can arise, in which an event could affect a past event—clearly no more acceptable in the simulation than in the system being simulated. In parallel discrete event simulation, each real-world process is represented in the simulation by a logical process, which communicates with other processes by sending messages that represent future events. However the simulation is implemented, each logical process has to process events in increasing order of event time. Herein lies the challenge. Fujimoto discusses at some length the two basic mechanisms, conservative and optimistic, to meet this challenge. He follows the description of each method with an assessment of its performance and a critique. Conservative mechanisms, as the name implies, avoid causality errors by only processing an event when it is safe to do so. This requires blocking processes, which in turn can lead to deadlock. Fujimoto describes schemes for overcoming deadlock and discusses a number of approaches to performance optimization. Optimistic mechanisms detect causality errors after the fact and then recover from them, which involves “undoing” any damage. The author describes Time Warp, the best known optimistic method, along with variations and alternative and hybrid approaches. In sum, Fujimoto's paper will interest anybody who wants to speed up a discrete event simulation and anybody curious about parallel and distributed computation in general. The second paper, by Jain, Barber, and Osterfeld, describes a specific application of discrete event simulation: plant floor scheduling in computer integrated manufacturing. Although specific in focus, this contribution has a general interest in that it describes the integration of an expert system with simulation software. The expert system is used to capture the human scheduling expertise, while the simulation is used to produce schedules and identify decision points. The authors discuss the expert system component first. They assess the limitations of existing packages and make the case for using the expert system. When constructing the expert system, the authors had access to a good human expert, who, from the description given, seems to have been a knowledge engineer's dream. Their simulation component employs backward simulation, analogous to backward reasoning, which starts with the same goal state and moves backwards in time to the initial state. Such a method makes it easier to accommodate just-in-time scheduling. Compatibility between the two components was achieved through the use of object orientation. Specifically, KEE was used for the expert system and LISP for the simulation. Having explained the architecture of their system, the authors explain and illustrate its role on the factory floor. They conclude by discussing some of the advantages of their system, which will interest those who wish to combine expert systems and simulations. One of the problems cited is the difficulty of interfacing AI hardware with general-purpose hardware: in particular, the communication overhead can be prohibitive. Among the advantages listed are the ability to perform rapid prototyping with the expert system shell and the flexibility of the frame-based knowledge representation scheme used. The next paper describes another specific application, NEST. Once again, though, the architecture of the system is of general appeal. NEST is a graphical environment, embedded within UNIX, for the simulation and rapid prototyping of distributed, networked systems. It can be used to investigate such things as performance, fault tolerance, and protocols. The structure of the problem is described graphically, while algorithms (for routing or other protocols) are written in C. The results of the simulations are displayed graphically. The authors contrast the basic approach of NEST to what they call the “traditional approaches,” which are either language-based or model-based. In the former approach, the simulation is specified in its entirety using a simulation language. While this allows maximum generality, it separates modeling and simulation from the processes of design and development. It is also tedious and error-prone. The model-based approach, using special-purpose packages such as RESQ, is less flexible, only allowing a limited scope, but it can lead to excellent run-time efficiency. Language- and model-based systems both require expertise of the user. These disadvantages led the authors (and many other workers) to adopt an environment-based approach, which provides the user with a high level of support without requiring a lot of expertise. NEST's architecture is interesting—NEST is configured as a simulation server with client monitors. The client monitors, which utilize windows and menus, are used to create, edit, and configure simulations and display the results of their executions. It is possible to reconfigure a simulation during a run, which makes the system highly suitable for analyzing the effect of system failures. These monitors will, typically, reside on separate workstations. The communication overhead between client and server is low, so the server can support clients over a wide area network. Each node is represented in the simulation server by a lightweight process (or thread) within a single UNIX process. This leads to a maximization of concurrency and, thereby, efficient execution. The authors describe the synchronization of events and discuss the relationship between simulation time and real time (which harks back to some of Fujimoto's discussion). They give an example of a simulation of the Routing Information Protocol, developed at Xerox PARC and UC Berkeley. The paper ends with a summary of other applications and further discussion of the implementation of NEST. I enjoyed this paper, which contains some good, widely applicable ideas. The fourth paper, by Peter Glynn, is the most specific of the six, and will only be useful if you are interested in optimizing stochastic systems. Glynn describes a technique for Monte Carlo gradient estimation, which he claims is very efficient. He begins by describing and elaborating two scenarios that motivate the development of efficient gradient estimation techniques. He then describes the underlying nature of the technique, specializes it for discrete-time stochastic processes, and derives a treatment of continuous-time (but discrete-event) systems. The derivations of all formulae are shown, and examples demonstrate the wide applicability of the technique. Although Glynn's method assumes that the simulations terminate, the final section discusses the extension of likelihood ratio gradient estimation to steady-state performance measurement. Regenerative stochastic systems are well suited to the technique, but non-regenerative systems remain a subject of research. As L'Ecuyer himself states in the fifth paper, many people believe that the problem of generating uniform “random” numbers has long been solved—and in some respects it has. Good theoretical treatments have been published, and random number generators that have excellent statistical properties are available. Nevertheless, some generators that have terrible properties are in use. With dependence on simulation increasing, it is especially important that there be robust, reliable, efficient, and portable random number generators. This paper offers a useful overview of techniques that are relevant to today's requirements on machines ranging from laptops to supercomputers. L'Ecuyer gives a base definition of a pseudorandom number generator and discusses the assessment of such generators. He then presents a detailed treatment of (matrix) linear congruential generators, into which category the majority of available generators fit. The discussion is comprehensive, well structured, and clear. Among the important issues addressed is the generation of (well separated) subsequences, including vectorization techniques for simultaneous subsequence generation on parallel computers. The author then considers the programming of linear congruential generators and goes on to discuss their statistical properties. A brief section on nonlinear generators leads into a discussion of hybrid generators, which attempt to obtain the best of both the linear and nonlinear worlds—a long period without regular patterns. Everybody undertaking discrete event simulations should read this excellent treatment of current concerns and techniques in random generation. The bibliography is outstanding. The final paper describes a simulation of a semiconductor fabrication line. In such a production line, turnaround time is of vital importance because it affects contamination, yield, and costs. The process is too complex to yield entirely to analytical techniques, so simulation is the only methodology that can be applied to studying the dynamics of semiconductor manufacture. Miller explains the main variables of the production process and then provides details of the model and simulation. The chosen implementation language, SIMAN, quite rightly enforces a separation of the model specification from the specification of the experiment to be performed. The paper describes the structure of both components of the simulation as well as the verification and validation procedures. Although the model is for a specific plant, it has been applied to other semiconductor fabrication lines. As has been found for models of many types of production line, the simulation described here led to improved production characteristics without the need for retooling or additional resources.

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Communications of the ACM
        Communications of the ACM  Volume 33, Issue 10
        Special issue on simulation
        Oct. 1990
        118 pages
        ISSN:0001-0782
        EISSN:1557-7317
        DOI:10.1145/84537
        Issue’s Table of Contents

        Copyright © 1990 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 1990

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!