* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download UNIFORM RANDOM NUMBER GENERATION Chapter 7 (first half)
Location arithmetic wikipedia , lookup
Law of large numbers wikipedia , lookup
Positional notation wikipedia , lookup
Elementary arithmetic wikipedia , lookup
Approximations of π wikipedia , lookup
List of prime numbers wikipedia , lookup
Proofs of Fermat's little theorem wikipedia , lookup
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?