Stochastic Simulation Random number generation Bo Friis Nielsen Applied Mathematics and Computer Science Technical University of Denmark 2800 Kgs. Lyngby – Denmark Email: bfn@imm.dtu.dk
Random number generation Random number generation • Uniform distribution • Number theory • Testing of random numbers • Recommendations of random number generators DTU 02443 – lecture 2 2
Summary Summary • We talk about generating pseudo random numbers • There exist a large number of RNG’s • ... of varying quality • Don’t implement your own, except for fun or as a research project. • Built-in RNG’s should be checked before use • ... at least in general-purpose development environments. • Scientific computing environments typically have state-of-the-art RNG’s that can be trusted. • Any RNG will fail, if the circumstances are extreme enough. DTU 02443 – lecture 2 3
History/background History/background • The need for random numbers evident • Tables • Physical generators. Lottery machines • Need for computer generated numbers DTU 02443 – lecture 2 4
Definition Definition • Uniform distribution [0; 1] . • Randomness (independence). • One basic problem is computers do not work in R Random numbers: A sequence of independent random variable, U i , uniformly distributed on ]0 , 1[ 1 0 1 • Generate a sequence of independently and identically distributed U (0 , 1) numbers. DTU 02443 – lecture 2 5
Random generation Random generation Mechanics devices: Other devices: • Coin (head or tail) • electronic noise in a diode or resi- • Dice (1-6) stor • Monte-Carlo (Roulette) wheel • tables of random numbers • Wheel of fortune • Deck of cards • Lotteries (Dansk tipstjeneste) DTU 02443 – lecture 2 6
Definition of a RNG Definition of a RNG An RNG is a computer algorithm that outputs a sequence of reals or integers, which appear to be • Uniformly distributed on [0; 1] or { 0 , . . . , N − 1 } • Statistically independent. Caveats: Caveats: • “Appear to be” means: The sequence must have the same relevant statistical properties as I.I.D. uniformly distributed random variables • With any finite precision format such as double , uniform on [0; 1] can never be achieved. DTU 02443 – lecture 2 7
1. Four digit integer (output divide by 10000) 2. square it. Z 2 i Z i U i i 3. Take the middle four digits 0 7182 0.7182 51,581,124 4. repeat 1 5811 0.5811 33,767,721 2 7677 0.7677 58,936,329 3 9363 0.9363 87,665,769 4 6657 0.6657 44,315,649 5 3156 0.3156 09,960,336 . . . . . . . . . . . . Might seem plausible - but rather dubious DTU 02443 – lecture 2 8
Fibonacci Fibonacci Leonardo of Pisa (pseudonym: Fibonacci) dealt in the book ”Liber Abaci”(1202) with the integer sequence defined by: x i = x i − 1 + x i − 2 i ≥ 2 x 0 = 1 x 1 = 1 Fibonacci generator. Also called an additive congruential method. U i = x i x i = mod ( x i − 1 + x i − 2 , M ) M where x = mod ( y, M ) is the modulus after division ie. y − nM where n = ⌊ y/M ⌋ Notice x i ∈ [0 , M − 1] . Consequently, there is M 2 − 1 possible starting values. Maximal length of period is M 2 − 1 which is only achieved for M = 2 , 3 . DTU 02443 – lecture 2 9
Congruential Generator Congruential Generator The generator U i = mod ( aU i − 1 , 1 ) U i ∈ [0 , 1] illustrates the principle provided a is large, the last digits are retained. Can be implemented as ( x i is an integer) U i = x i x i = mod ( ax i − 1 , M ) M Examples are a = 23 and M = 10 8 + 1 . DTU 02443 – lecture 2 10
Mid conclusion Mid conclusion • Initial state determine the whole sequence • How many different cycles • Length of each cycle If x i can take N values, then the maximum length of a cycle is N . DTU 02443 – lecture 2 11
Properties for a Random generator Properties for a Random generator • Cycle length • Randomness • Speed • Reproducible • Portable DTU 02443 – lecture 2 12
Linear Congruential Generator Linear Congruential Generator LCG are defined as U i = x i x i = mod ( ax i − 1 + c, M ) M for a multiplier a , shift c and modulus M . We will take a , c and x 0 such x i lies in (0 , 1 , ... , M − 1) and it looks random. Example: M = 16 , a = 5 , c = 1 With x 0 = 3: 0 1 6 15 12 13 2 11 8 9 14 7 4 5 10 3 DTU 02443 – lecture 2 13
Theorem 1 Theorem 1 Maximum cycle length The LCG has full length if (and only if) • M and c are relative prime. • For each prime factor p of M , mod ( a, p ) = 1 . • if 4 is a factor of M , then mod ( a, 4) = 1 . Notice, If M is a prime, full period is attained only if a = 1 . DTU 02443 – lecture 2 14
Shuffling Shuffling eg. XOR between several generators. • To enlarge period • Improve randomness • But not well understood • LCGs widespread use, generally to be recommended DTU 02443 – lecture 2 15
Mersenne Twister Mersenne Twister Matsumoto and Nishimura, 1998 • A large structured linear feedback shift register • Uses 19,937 bits of memory • Has maximum period, i.e. 2 19937 − 1 • Has right distribution • ... also joint distribution of 623 subsequent numbers • Probably the best PRNG so far for stochastic simulation (not for cryptography). DTU 02443 – lecture 2 16
RNGs in common environments RNGs in common environments R : The Mersenne Twister is the default, many others can be chosen. Python : Mersenne Twister chosen. S-plus : XOR-shuffling between a congruential generator and a (Tausworthe) feedback shift register generator. The period is about 2 62 ≈ 4 · 10 18 , but seed dependent (!). Matlab 7.4 and higher : By default, the Mersenne Twister. Also one other available. DTU 02443 – lecture 2 17
Characteristics Characteristics Definition: A sequence of pseudo-random numbers U i is a deterministic sequence of numbers in ]0 , 1[ having the same relevant statistical properties as a sequence of random numbers. The question is what are relevant statistical properties. • Distribution type • Randomness (independence, whiteness) DTU 02443 – lecture 2 18
Recommend
More recommend