UNIFORM RANDOM NUMBER GENERATION Chapter 7 (first half)
Download
Report
Transcript UNIFORM RANDOM NUMBER GENERATION Chapter 7 (first half)
UNIFORM RANDOM NUMBER
GENERATION
The goal is to generate a sequence of
Uniformly distributed
Independent
X1, X2, …. IID Unif[0, 1]
These are the basis of generating all random variates in
simulations
UNIFORM [0,1]
f(x)
Every real number beteween
0 and 1 is equally likely…
1
x
0
1
EARLY METHODS USED PHYSICAL
PHENOMENON
Spinning disks with digits on them
Dice (generate on 1/6, 2/6, …, 1)
Picking people out of the phone book
Picking the nth (n = 1200, 1201, …) digit
in p
Gamma ray photon counting
SEQUENCIAL COMPUTER-BASED
METHODS
Antique Mid-Square Method (Von Neumann)
Z0 is a four-digit number
Z1 = middle four digits of Z02
Z2 = middle four digits of Z1
Ui = Zi/10000
SAMPLE MID-SQUARE
i
Zi
Zi^2
Ui
0
7182
51581124
1
5811
33767721
0.5811
2
7677
58936329
0.7677
3
9363
87665769
0.9363
4
6657
44315649
0.6657
5
3156
9960336
0.3156
MID-SQUARE PROPERTIES
Once you know a Z, you can accurately predict
the entire future sequence (not really random)
If a Z ever repeats, the whole sequence starts
over
Only generate 9999 numbers (not dense in [0, 1]
Turns out, we LIKE some of these properties for
computer simulations (Repeatability enables
debugging)
DESIRABLE PROPERTIES
Appear Unif[0, 1]
Fast algorithm
Reproducible stream
Debugging
Contrast in comparison (Variance Reduction)
Lots of numbers before a repeat
PRELIM: MODULUS ARITHMETIC
mod is a mathematical operator
producing a result from two inputs (+, x, ^)
mod == “remainder upon division”
10 mod 6 = 4
12 mod 6 = 0
68 mod 14 = 56 mod 14 + 12 mod 14 = 12
LINEAR CONGRUENTIAL
GENERATOR (Lehmer, 1954)
Z0 is the SEED
m is the MODULUS
a is the MULTIPLIER
c is the INCREMENT
(forget this one)
U’s in (0, 1)
Z i (aZ i 1 c) mod m
Zi
Ui
m
PROPERTIES
Can generate at most m-1 samples before
repeat
Length of non-repeating sequence called the PERIOD
of the generator
If you get m-1, you have a full cycle generator
Divides [0, 1] into m equal slices
unif.xls
observe the basic functions of the seed,
multiplier, and modulus
experiment with multipliers for
m = 17
m = 16
HISTORY
Necessary for full cycle
a and m relatively prime
q (prime) divides m and a-1
m = 2,147,483,648 = 231-1 is everybody’s favorite 32-bit
generator (SIMAN, SIMSCRIPT, GPSS/H, Arena)
Fishman, G. S. (1972). An Exhaustive Study of Multipliers
for Modulus 231-1, RAND Technical Series.
a = 630,360,647
HISTORICAL COMPETITION FOR
LINEAR CONGRUENTIAL
GENERATORS
Zi (a1Zi 1 a2 Zi 2 ... an Zi n ) mod m
add or multiply some combination of
variates from the stream’s recent history
WHAT IS GOOD
Full, Long Cycle
Seemingly Independent
We can test this, but our simple tests stink
2
c
Test for U[0, 1]
U1, U2, ...Un a sequence of U[0, 1] samples
Let us divide [0, 1] into k equally-sized intervals
Let oi = observations in [(i-1)/k, i/k]
ei = n/k is the expected number of Ui’s that fall
in [(i-1)/k, i/k] for each i
c n 1
2
(oi ei )
ei
2
TESTING
cn12 follows the Chi-Squared distribution with n1 degrees of freedom
DUMB TEST
any full-cycle generator is exactly AOK
expand to two or more dimensions using n- tuples
(Ui, Ui+1, ..., Ui+n)
maybe a picture would be better?