Uniform Random Number Generators

Similar documents
A Repetition Test for Pseudo-Random Number Generators

CPSC 531: Random Numbers. Jonathan Hudson Department of Computer Science University of Calgary

Review of Statistical Terminology

How does the computer generate observations from various distributions specified after input analysis?

Pseudo-Random Numbers Generators. Anne GILLE-GENEST. March 1, Premia Introduction Definitions Good generators...

2008 Winton. Review of Statistical Terminology

B. Maddah ENMG 622 Simulation 11/11/08

Random Number Generation. Stephen Booth David Henty

How does the computer generate observations from various distributions specified after input analysis?

2 P. L'Ecuyer and R. Simard otherwise perform well in the spectral test, fail this independence test in a decisive way. LCGs with multipliers that hav

Uniform Random Binary Floating Point Number Generation

Tae-Soo Kim and Young-Kyun Yang

Generating Uniform Random Numbers

Generating Uniform Random Numbers

( ) ( ) Monte Carlo Methods Interested in. E f X = f x d x. Examples:

Random Numbers. Pierre L Ecuyer

Generating Uniform Random Numbers

Generating pseudo- random numbers

2 Random Variable Generation

Uniform and Exponential Random Floating Point Number Generation

Random Number Generation. CS1538: Introduction to simulations

Systems Simulation Chapter 7: Random-Number Generation

Lehmer Random Number Generators: Introduction

A NEW RANDOM NUMBER GENERATOR USING FIBONACCI SERIES

Construction of Equidistributed Generators Based on Linear Recurrences Modulo 2

Sources of randomness

Resolution-Stationary Random Number Generators

Independent Events. Two events are independent if knowing that one occurs does not change the probability of the other occurring

METHODS FOR GENERATION OF RANDOM NUMBERS IN PARALLEL STOCHASTIC ALGORITHMS FOR GLOBAL OPTIMIZATION

Uniform Random Number Generation

Random Number Generators

14 Random Variables and Simulation

Modern Methods of Data Analysis - WS 07/08

Random Number Generators - a brief assessment of those available

Some long-period random number generators using shifts and xors

Random numbers and generators

Algorithms and Networking for Computer Games

Some long-period random number generators using shifts and xors

Monte Carlo Methods. Dirk P. Kroese. Department of Mathematics School of Mathematics and Physics The University of Queensland

Slides 3: Random Numbers

Lecture 20. Randomness and Monte Carlo. J. Chaudhry. Department of Mathematics and Statistics University of New Mexico

MATH5835 Statistical Computing. Jochen Voss

Stream Ciphers. Çetin Kaya Koç Winter / 20

Physics 403 Monte Carlo Techniques

Some long-period random number generators using shifts and xors

Numerical methods for lattice field theory

Stochastic Simulation of Communication Networks

Stochastic Simulation of

UNIT 5:Random number generation And Variation Generation

Chapter 4: Monte Carlo Methods. Paisan Nakmahachalasint

Physics 403. Segev BenZvi. Monte Carlo Techniques. Department of Physics and Astronomy University of Rochester

Generating the Sample

Sum-discrepancy test on pseudorandom number generators

DUBLIN CITY UNIVERSITY

Contents Functions Remarks and examples Methods and formulas Acknowledgments References Also see

Class 12. Random Numbers

Statistics, Data Analysis, and Simulation SS 2013

COMBINED LFSR GENERATORS PIERRE L'ECUYER. 1. Introduction. Tausworthe generators, are based on linear recurrences modulo 2 with primitive

The performance of a maximum-period multiple recursive generator (MRG) depends on the choices of the

Lecture 5: Random numbers and Monte Carlo (Numerical Recipes, Chapter 7) Motivations for generating random numbers

Workshop on Heterogeneous Computing, 16-20, July No Monte Carlo is safe Monte Carlo - more so parallel Monte Carlo

Finite Fields. SOLUTIONS Network Coding - Prof. Frank H.P. Fitzek

Hands-on Generating Random

Random number generators

Malvin H. Kalos, Paula A. Whitlock. Monte Carlo Methods. Second Revised and Enlarged Edition WILEY- BLACKWELL. WILEY-VCH Verlag GmbH & Co.

TABLES OF MAXIMALLY EQUIDISTRIBUTED COMBINED LFSR GENERATORS

Random Number Generation: RNG: A Practitioner s Overview

More General Functions Is this technique limited to the monomials {1, x, x 2, x 3,...}?

Introduction, basic but important concepts

Random processes and probability distributions. Phys 420/580 Lecture 20

Quantum Monte Carlo. Matthias Troyer, ETH Zürich

Pseudo-random Number Generation. Qiuliang Tang

Comparison of Random Number Generators in Particle Swarm Optimization Algorithm

Monte Carlo Techniques

Uniform random numbers generators

arxiv:hep-lat/ v2 10 Aug 1993

Comparison of Random Number Generators in Particle Swarm Optimization Algorithm

Random number generators and random processes. Statistics and probability intro. Peg board example. Peg board example. Notes. Eugeniy E.

Random and Quasi-Random Point Sets

A TEST OF RANDOMNESS BASED ON THE DISTANCE BETWEEN CONSECUTIVE RANDOM NUMBER PAIRS. Matthew J. Duggan John H. Drew Lawrence M.

Generating Random Variables

B.N.Bandodkar College of Science, Thane. Random-Number Generation. Mrs M.J.Gholba

On the influence of non-perfect random numbers on probabilistic algorithms

Simulated Annealing for Constrained Global Optimization

A fast random number generator for stochastic simulations

Contents. 1 Probability review Introduction Random variables and distributions Convergence of random variables...

Topics in Computer Mathematics

We examine some properties of the points produced by certain classes of long-period linear multiple recursive

Notes. Number Theory: Applications. Notes. Number Theory: Applications. Notes. Hash Functions I

Number Theory: Applications. Number Theory Applications. Hash Functions II. Hash Functions III. Pseudorandom Numbers

SOFTWARE FOR UNIFORM RANDOM NUMBER GENERATION: DISTINGUISHING THE GOOD AND THE BAD. Pierre L Ecuyer

An Introduction to Monte Carlo

Computer Applications for Engineers ET 601

Adam Blank Spring 2017 CSE 311. Foundations of Computing I. * All slides are a combined effort between previous instructors of the course

Uniform Pseudo-Random Number Generation

( x) ( ) F ( ) ( ) ( ) Prob( ) ( ) ( ) X x F x f s ds

Random Number Generation and Quasi-Monte Carlo

Chapter 7 Random Numbers

Traversing a n-cube without Balanced Hamiltonian Cycle to Generate Pseudorandom Numbers

Simulation. Where real stuff starts

Transcription:

JHU 553.633/433: Monte Carlo Methods J. C. Spall 25 September 2017 CHAPTER 2 RANDOM NUMBER GENERATION Motivation and criteria for generators Linear generators (e.g., linear congruential generators) Multiple recursive generators (e.g., Mersenne twister) Nonlinear, Fibonacci,. Inverse transforms Accept reject and related methods Normal distribution methods Multivariate distributions Markov chains Uniform Random Number Generators Want sequence of independent, identically distributed uniform (U(0,1)) random variables U(0,1) random numbers of direct interest in some applications More commonly, U(0,1) numbers transformed to random numbers having other distributions (e.g., in Monte Carlo simulation) Computer-based random number generators (RNGs) produce deterministic and periodic sequence of numbers Pseudo random numbers Want pseudo random numbers that look random Should be able to pass all relevant statistical tests for randomness 2 1

Overall Framework for Generating Random Numbers State at step k given transition function f k : X f ( X, X,..., X ), r 1 k k k1 k2 kr Output function, g, produces pseudo random numbers as U g X k Output sequence of RNG is {U k, k 1} Period of an RNG is number of iterations before RNG output (U k ) repeats itself k 3 Criteria for Good Random Number Generators Long period Strong theoretical foundation Able to pass empirical statistical tests for independence and distribution (next slide) Speed/efficiency Portability: can be implemented easily using different languages and computers Repeatability: should be able to generate same sequence from same seed Be cryptographically strong to external observer: unable to predict next value from past values Good distribution of points throughout domain (low discrepancy) (also related to quasi-random sequences, not covered here) 4 2

Criteria for Good Random Number Generators (cont d): Statistical Tests Ideal aim is that no statistical test can distinguish RNG output from i.i.d. U(0,1) sequence Not possible in practice due to limits of testing and limits of finite-period generators Fundamental limitation: Impossible to rule out existence of pattern just because pattern has not been found More realistic goal is passing only key (relevant) tests Null hypothesis: sequence of random numbers is realization of i.i.d. U(0,1) stochastic process Almost limitless number of possible tests of this hypothesis Failing to reject null hypothesis improves confidence in generator but does not guarantee random numbers will be appropriate for all applications Bad RNGs fail simple tests; good RNGs fail only complicated and/or obscure tests 5 Types of Random Number Generators Linear: commonly used (LCG, MRG, Mersenne twister, etc.) Combined: Uses weighted combination of output of multiple generators; can increase period and improve statistical properties (L'Ecuyer, 2012) Nonlinear: structure is less regular than linear generators but more difficult to implement and analyze Physical processes: e.g., timing in atomic decay, internal system noise, atmospheric noise, etc. Not as widely used as computer-based generators due to costliness of implementation, lack of speed, and inability to reproduce same sequence Digits of : Digits appear to pass all reasonable statistical tests (in contrast, e and 2 fail) (Dodge, Y. (1996), A Natural Random Number Generator, International Statistical Review, vol. 64, pp. 329344); research ongoing 6 3

Linear Congruential Generators (LCGs) Linear congruential generators (LCGs) produce U(0,1) numbers via Xk axk1 c mod m Xk Uk, m where a, c, and m are user-specified constants LCG appears to be most widely studied random number generator Commonly used, but less so than in past due to fundamental limits in length of period and subtle correlations Values a, c, m, and X 0 should be carefully chosen nonnegative integers: 0 a m, 0c m 0 X m, X 0,1,, m1 ; period m1 0 (LCG output may be modified to avoid 0 for U k ) k 7 Supplement: Conditions for Full Period (m 1) of LCGs Performance of LCG sensitive to choice of a, c, and m Useful to know how to pick a, c, and m to obtain full period Conditions below are necessary and sufficient conditions LCG has full period if and only if all three following conditions hold (Hull-Dobell Theorem, 1962): 1. The only integer that divides both m and c is 1 (i.e., c is relatively prime to m); 2. a 1 is divisible by all prime factors of m; 3. a 1 is divisible by 4 if m is divisible by 4. Note that generator with c = 0 cannot be full period; violates condition 1 in Hull-Dobell Theorem Note: c = 0 corresponds to special case of multiplicative recursive generators (next slide) 8 4

Examples of LCGs Famous values for a and m (assuming c = 0; MRG case) a = 23, m = 10 8 + 1 (first LCG/MRG; original 1951 version ) a = 65539, m = 2 31 (RANDU generator of 1960s; poor because of correlated output) a = 16807, m = 2 31 1 (has been discussed as minimum standard for RNGs; used in Matlab version 4) Example of full-period generator: a = 4, m = 9, c = 2 (try it!) Full period generators: any choice X 0 produces full cycle; non-full period generators: cycle length depends on X 0 Non-full period generator: X k = (3X k 1 +2) mod 9 with X 0 = 7 Then X 1 = 5, X 2 = 8, X 3 = 8,, X k = 8 for all k = 3, 4, 5, 6, Lehmer, D. H. (1951), Mathematical Methods in Large-Scale Computing Units, Annals of the Computation Laboratory of Harvard University, no. 26, pp. 141 146. 9 Example of Minimal Statistical Test for LCG: Is Sample Mean Close to 0.5? 0.58 0.56 0.54 Sample Mean 0.52 0.5 0.48 0.46 m = 27, a = 26, c = 5 m = 2 31 1, a = 4, c = 1 m = 482, a = 13, c = 14 0.44 0.42 0 500 1000 1500 2000 Number of Samples m = 9, a = 4, c = 1 10 5

What do you see? 11 LCG output: a = 23, c = 0, and m = 97 12 6

LCG output: a = 23, c = 0, and m = 97 Lattice Structure All LCGs have points lying in hyperplanes 13 Multiplicative Recursive Generators Multiplicative recursive generators (MRGs) are natural extension of LCGs with c = 0 MRGs defined by Xk a1xk 1 akxkr mod m Xk Uk, m where the a i belong to {0,1,,m 1} Maximal period is m r 1 for prime m and properly chosen a i Potential for very large period with even modest value of m Choosing m = 2 is popular since floating point operations (adds/multiplies) replaced by faster binary operations (XOR) For r = 1, MRG reduces to LCG with c = 0 A popular form of MRG is Mersenne twister (see below) 14 7

Popular MRG: Mersenne Twister Mersenne twister (MT) is popular state-of-art method used as default generator in Matlab, R, SAS, Python, etc. based on ideas in Matsumoto and Nishimura (1998) Some explanation in textbook, Sect. 2.2.2 (but not that easy to understand!) MT is modulo 2 (m = 2) generator with huge period: 2 19937 1 As mod 2 generator, MT works exclusively with binary bit strings such as 1 1 0 1 1 0 0 1 0..; based on simple XOR operations (e.g., 1 + 1 = 0) MT passes standard tests for statistical randomness ( Diehard tests), but fails some more sophisticated tests Some criticisms and defenses of MT in https://cs.stackexchange.com/questions/50059/why-is-themersenne-twister-regarded-as-good 15 Nonlinear Generators Nonlinearity sometimes used to enhance performance of RNGs Nonlinearity may appear in transition function f n and/or in output function g (see earlier slide Overall Framework for Generating Random Numbers ) Have some advantage in reducing lattice structure (Exercise D.2 in Spall, 2003) and in reducing discrepancy Two examples (L Ecuyer, 1998) Nonlinear f = f k via quadratic recursion: 2 Xk ( axk 1 Xk 1c) mod m U X m k Nonlinear f k via inversive generator: m2 Xk ak c mod m U X m k k k 16 8

Combining Generators to Produce U(0, 1) Numbers Used to increase period length and improve statistical properties Shuffling: uses second generator to choose random order for numbers produced by final generator Bit mixing: combines numbers in two sequences using some logical or arithmetic operation (addition and subtraction are preferred) Can use one RNG to initialize (seed) another RNG 17 Random Number Generators Used in Common Software Packages Important to understand types of generators used in statistical software packages and their limitations MATLAB: Versions before 5: LCG with a = 75 = 16807 and m = 2 31 1 Versions 5 to 7.3: lagged Fibonacci generator combined with shift register random integer generator with period 2 1492 ( ziggurat algorithm ) Versions 7.4 and later: Mersenne twister (sophisticated linear algorithm with huge period 2 19937 1) R (default selection): Mersenne twister EXCEL 2010: Generate three numbers on [0,1) by MRGs (w/ r = 1), sum them and take fractional part of sum; fractional part is uniform on [0,1]; period = 2.78 10 13 = 1.58 2 44 Equivalent to one MRG with r = 1 (i.e., LCG), a = 16,555,425,264,690 and m = 27,817,185,604,309 (Zeisel, 1986) SAS (vers. 9; two core generators): MRG with period 2 31 2 and Mersenne twister 18 9

Inverse-Transform Method for Generating Non-U(0,1) Random Numbers Let F(x) be distribution function of X Define inverse function of F by F 1 ( y) inf x: F( x) y,0 y 1 Generate X by X F 1 ( U) (*) Example: exponential distribution Fx ( ) 1e x 1 1 X F ( U) log(1 U) Above works for discrete distributions as well: If X {x 1, x 2,, }, then (*) operates according to: Find smallest integer k 0 such that U F(x k ); then X = x k 19 AcceptReject Method Let f(z) be density function of Z; want to generate Z ~ f(z) We start by generating an X and then converting it to a Z Find function (x) that majorizes (dominates) f(x) at all x Have (x) = Cg(x), C 1, g is proposal density function that is easy to generate outcomes X from Support (within 1 ) for g is at least as large as support for f Acceptreject method generates X by following steps: Generate X from g(x). (*) Generate U from U(0,1), independent of X. f( X) If U, then set Z = X. Otherwise, go back to (*). ( X ) Probability of acceptance (efficiency) = 1/C Related to Markov chain Monte Carlo (MCMC) (see Exercise 16.4 of Spall, 2003) Example to follow next two slides (f(z) = beta density). 20 10

3 2 60 z (1 z) if 0 z 1 f( z) 0 otherwise X ~ g( x) U(0,1) 3 2 60 X (1 X) U 2.0736 2.5 2.0 1.5 ( x) Cg( x) 2.0736 U(0,1) f 1.0 g = U(0,1) 0.5 0 0.2 0.4 0.6 0.8 1.0 1.2 Note: This example adapted from Law (2007, p.438) 21 X ~ g(x) U(0,1): 0.7621, 0.4565, 0.0185, 0.8214, 0.4447, U ~ U(0,1): 0.9501, 0.2311, 0.6068, 0.4860, 0.8913, f( X) : 0.7249, 0.8131, 0.00018, Cg( X ) Accept/reject: Is U value above ratio? Z ~ f(z) : 0.7621, 0.4565, 0.0185, reject accept reject Accepted values represent realization of random numbers from f(z) 22 11

Generating Normal Random Variables Generating N(0, 1) random variables is critical capability Perhaps oldest method is to generate 12 independent U(0,1) random numbers (variance = 1/12), and then add them up and subtract 6: Sum is approximately normal by CLT and has mean = 0 and variance = 1 Box-Muller approach (textbook p. 63) is among more sophisticated and faster ways of generating N(0, 1) random variables Modern implementations: Matlab: Earlier versions of used polar coordinates method (modified Box-Muller method); current version of Matlab uses ziggurat algorithm : faster and longer period than former version R: Flexibility to specify inversion (default), Box-Muller, etc. 23 Random Vector Generation Consider each setting on case-by-case basis. Important special cases: Acceptreject method (next slide) Multivariate normal (below) Generating on simplex (convex hull containing n+1 points not lying on same hyperplane in n ); all points on line segments connecting any two points in set must also lie in set) Generating points on or in an n-dimensional hypersphere (direct method or A-R method [next slide]) Example of multivariate normal. First, generate vector of n i.i.d. scalar N(0, 1) random variables X i. Then, form Z ~ N(, ) according to Z = BX +, where B is any square matrix such that = BB T (textbook mentions special case of B = Cholesky factorization) 24 12

Vector AcceptReject Method Case-by-case for generating random vector Z One case of practical interest is in generating points uniformly in some bounded subspace of n Two step procedure A-R procedure: Generate X uniformly in some hypercube W n that contains region of interest, say G n Set Z = X if X lies in G (Source: Fig. 2.7 in Rubinstein and Kroese, 2017) Special case of practical interest is in generating points in or on a hypersphere in n dimensions Unfortunately, extreme inefficiency for n >> 1. E.g., for in : n /2 vol(hypersphere) # accepted points O 1 vol(hypercube) 4 ( n/2)! An alternative method based on generating normal random variables discussed in text, Sect. 2.5.4 25 Generating from Markov Chains Wish to generate sequence {X t } satisfying Markov property (Sect. 1.12 in textbook) Algorithm for generating from Markov chains is straightforward: 1. Generate X 0 {1, 2,,m} from (0) 2. Given X t = i, generate X t+1 from the ith row of P 3. Increment t to t+1 and repeat step 2 26 13

References for Further Study Law, A. M. (2007), Simulation Modeling and Analysis (4th ed.), McGraw-Hill, New York, Chap. 8. L Ecuyer, P. (1998), Random Number Generation, in Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice (J. Banks, ed.), Wiley, New York, Chap. 4. L'Ecuyer, P. (2012), Random Number Generation, in Handbook of Computational Statistics (J. E. Gentle, W. Härdle, and Y. Mori, eds.), Springer, Chap. 3 (pp. 3571). Matsumoto, M. and Nishimura, T. (1998), Mersenne Twister: A 623- dimensionally equidistributed uniform pseudorandom number generator, ACM Transactions on Modeling and Computer Simulation, vol. 8, pp. 3 30. Moler, C. (2004), Numerical Computing with MATLAB (Chap. 9: Random Numbers), SIAM, Philadelphia (online at www.mathworks.com/moler/chapters.html). Neiderreiter, H. (1992), Random Number Generation and Quasi-Monte Carlo Methods, SIAM, Philadelphia. Rubinstein, R. Y. and Kroese, D. P. (2017), Simulation and the Monte Carlo Method (3rd ed.), Wiley, New York. [Course text] Zeisel, H. (1986), A Remark on Algorithm AS 183. An Efficient and Portable Pseudo-Random Number Generator, Journal of the Royal Statistical Society. Series C (Applied Statistics), vol. 35, p. 89. 27 14