Random Number Generation
I. Introduction
A. What are random numbers and what is
randomness?
1.
Independence aspect of randomness -> pseudorandom numbers
2.
Unpredictability aspect of randomness -> cryptographic random numbers
3. Uniformity
aspect of randomness -> quasirandom numbers
4. Real
(physically based) random numbers
B. Applications that use random numbers
1. Statistics
and simulation (randomness is a metaphor for lack of information)
2. Monte
Carlo methods
a. Numerical integration
b. Transport Monte Carlo
c. Integral and partial differential equations
d. Quantum mechanics
e. Statistical mechanics
f. Financial computing
3.
Applications and random numbers interact differently
II. Pseudorandom Number Generation
A. Desirable properties for pseudorandom
numbers
1.
Determinism and reproducibility
2.
Periodicity and known period length
3.
Recurrences that can be analyzed (theoretical results)
4.
Passing a suite of statistical tests (more below)
B. Well known pseudorandom number
generators and some of their properties
1. The
history of the middle-square method (obsolete)
2. The
(Lehmer) linear congruential generator (LCG)
3. The
shift-register generator (SRG)
4. The
additive lagged-Fibonacci generator (ALFG)
C. More recent pseudorandom number
generators and their properties
1.
Linear pseudorandom generators
a. Multiple recursive generators (MRG) and L'Ecuyer's implementation
b. Marsaglia's generators
i. Superduper
ii. Add-with-carry and subtract-with-borrow generators
c. Twisted generators
i. Twisted GFSRs
ii. Mersenne Twister
iii. Twisted Canadian generators
2.
Nonlinear generators
a. Multiplicative lagged-Fibonacci generator (MLFG)
b. Quadratic congruential generator
c. Inversive congruential generators (ICG)
i. Implicit inversive congruential generator (IICG)
ii. Explicit inversive congruential generator (EICG)
3. Combining
generators
D. Quality and testing of pseudorandom number
generators
1.
Theoretical tests
a. Exponential sum-based tests for equidistribution and discrepancy
b. Discrepancies
i. Star discrepancy
ii. Mean-square discrepancy
c. The spectral test
2. Empirical
tests
a. Equidistribution tests
b. The DIEHARD test suite
c. Other suites
d. Applications are the best tests
III. Other Random Numbers for Applications (See
Monte Carlo Methods course!)
A. Cryptographic random numbers
B. Quasirandom numbers
1. Numerical
quadrature
a. The curse of dimensionality and complexity
b. The Koksma-Hlawka inequality
2. Financial
applications
3.
Markov-chain-based applications
IV. Issues for Parallel, Distributed, and Grid-based Applications
A. Methods of generating concurrent streams
1. Cycle splitting
with leap-ahead
a. Leap-frog
b. Blocking
c. Recursive halving leap ahead
2.
Parameterization
B. Reproducibility and spawning
C. Quality and testing
V. Available Random Number Software
A. Serial applications
B. Parallel applications
VI. Conclusions
A. Best practices
1. Sufficient
random number generators
2. Testing
generators and applications
B. The future of random number generation
1. In
practice, many pseudorandom number generators are superior
2. Current
application requirements are met with current generators
3. However,
optimization and specialized requirements drive future applied work
4. Advancing
testing, in theory and practice, remains important
5. New
generators should still be sought after