Random Number Generation PDF
Random Number Generation PDF
UTK
Simulation
Random-Number
Generation
Dr. Xueping Li
University of Tennessee
Based on
Banks, Carson, Nelson & Nicol
Discrete-Event System Simulation
Purpose & Overview
2
Random Numbers
3
Properties of Random Numbers
Two important statistical properties:
Uniformity
Independence.
⎧1, 0 ≤ x ≤ 1
f ( x) = ⎨
⎩0, otherwise
1
2
1 x
∫
1
E ( R) = xdx = =
0 2 2
0
Figure: pdf for
random numbers
4
Properties of
Random Numbers
31 2
1 x ⎛ 1⎞ 1 1 1
V ( R ) = ∫ x dx − [ E ( R )] =
2 2
−⎜ ⎟ = − =
0 3 0 ⎝2⎠ 3 4 12
5
Generation of Pseudo-Random Numbers
“Pseudo”, because generating numbers using a known
method removes the potential for true randomness.
Goal: To produce a sequence of numbers in [0,1] that
simulates, or imitates, the ideal properties of random numbers
(RN).
Important considerations in RN routines:
Fast
Portable to different computers
Have sufficiently long cycle
Replicable
Closely approximate the ideal statistical properties of uniformity
and independence.
6
Techniques for Generating Random
Numbers
Midsquare Generator
Linear Congruential Method (LCM).
Combined Linear Congruential Generators (CLCG).
Random-Number Streams.
7
Midsquare Generator
8
Midsquare Generator -
Example
Let X0 = 5497
X1 = (5497)2 = 30217009 X1 = 2170, R1 = 0.2170
X2 = (2170)2 = 04708900 X2 = 7089, R2 = 0.7089
X3 = (7089)2 = 50253921 X3 = 2539, R3 = 0.2539
...and so on...
9
Midsquare Generator -
Poor Examples
Let X0 = 5197
X1 = (5197)2 = 27008809 X1 = 0088, R1 = 0.0088
X2 = (0088)2 = 00007744 X2 = 0077, R2 = 0.0077
X3 = (0077)2 = 00005929 X3 = 0059, R3 = 0.0059
X4 = (0059)2 = 00003481 X4 = 0034, R4 = 0.0034
0 Let X0 = 6500
X1 = (6500)2 = 42250000 X1 = 2500, R1 = 0.2500
X2 = (2500)2 = 06250000 X2 = 2500, R2 = 0.2500
10
More Examples
Seed = 9713
1 94342369 2369
2 11716929 6929
Seed = 2784 51394561 4561
3
1 7750656 7506 4 15563025 3025
2 56340036 3400 5 31696900 6900
6 48566961 6961
3 11560000 5600 *
7 32137561 7561
4 31360000 3600 8 1890625 625
5 12960000 9600 9 79316836 6836
6 92160000 1600 10 10036224 6224
11 131044 1044
7 2560000 5600 * 1716100 6100
12
8 31360000 3600
9 12960000 9600 84 7290000 2900
85 8410000 4100 *
10 92160000 1600 86 16810000 8100
11 2560000 5600 * 87 65610000 6100
88 37210000 2100
89 4410000 4100 *
11
Linear Congruential Method [Techniques]
12
Example [LCM]
13
Another example
a= 17 c = 9
seed= 27 m = 10000
Frequency
6 81745 1745 0.1745
100
7 29674 9674 0.9674
8 164467 4467 0.4467 80
9 75948 5948 0.5948 60
10 101125 1125 0.1125 40
11 19134 9134 0.9134 20
12 155287 5287 0.5287
0
13 89888 9888 0.9888
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 More
14 168105 8105 0.8105
15 137794 7794 0.7794 Random Number
16 132507 2507 0.2507
17 42628 2628 0.2628
18 44685 4685 0.4685
19 79654 9654 0.9654
20 164127 4127 0.4127
Period = 2000
14
Other Types of Generators
15
Characteristics of a Good Generator
[LCM]
Maximum Density
Such that he values assumed by Ri, i = 1,2,…, leave no large
gaps on [0,1]
Problem: Instead of continuous, each Ri is discrete
Solution: a very large integer for modulus m
Approximation appears to be of little consequence
Maximum Period
To achieve maximum density and avoid cycling.
Achieve by: proper choice of a, c, m, and X0.
Most digital computers use a binary representation of
numbers
Speed and efficiency are aided by a modulus, m, to be (or close
to) a power of 2.
16
Combined Linear Congruential Generators
[Techniques]
17
Combined Linear Congruential Generators
[Techniques]
Suggested form:
⎧ Xi
⎪⎪ m , Xi ; 0
⎛ k ⎞
X i = ⎜ ∑ (−1) X i , j ⎟⎟ mod m1 − 1
⎜ j −1
Hence, Ri = ⎨ 1
⎝ j =1 ⎠ m −1
⎪ 1 , Xi = 0
⎪⎩ m1
The coefficient:
Performs the
subtraction Xi,1-1
18
Combined Linear Congruential Generators
[Techniques]
Example: For 32-bit computers, L’Ecuyer [1988] suggests combining
k = 2 generators with m1 = 2,147,483,563, a1 = 40,014, m2 =
2,147,483,399 and a2 = 20,692. The algorithm becomes:
Step 1: Select seeds
X1,0 in the range [1, 2,147,483,562] for the 1st generator
20
Tests for Random Numbers
Two categories:
Testing for uniformity:
H0: Ri ~ U[0,1]
H1: Ri ~/ U[0,1]
Failure to reject the null hypothesis, H0, means that evidence of
non-uniformity has not been detected.
Testing for independence:
H0: Ri ~ independently
H1: Ri ~/ independently
Failure to reject the null hypothesis, H0, means that evidence of
dependence has not been detected.
Level of significance α, the probability of rejecting H0 when it
is true: α = P(reject H0|H0 is true)
21
Tests for Random Numbers
When to use these tests:
If a well-known simulation languages or random-number
generators is used, it is probably unnecessary to test
If the generator is not explicitly known or documented, e.g.,
spreadsheet programs, symbolic/numerical calculators, tests
should be applied to many sample numbers.
Types of tests:
Theoretical tests: evaluate the choices of m, a, and c without
actually generating any numbers
Empirical tests: applied to actual sequences of numbers
produced. Our emphasis.
22
Frequency Tests [Tests for RN]
Test of uniformity
Two different methods:
Kolmogorov-Smirnov test
Chi-square test
23
Kolmogorov-Smirnov Test [Frequency Test]
24
Kolmogorov-Smirnov Test [Frequency Test]
25
Chi-square test [Frequency Test]
26
Tests for Autocorrelation [Tests for RN]
Hypothesis:
H 0 : ρ im = 0, if numbers are independen t
H 1 : ρ im ≠ 0, if numbers are dependent
27
Tests for Autocorrelation [Tests for RN]
28
Example [Test for Autocorrelation]
Test whether the 3rd, 8th, 13th, and so on, for the
following output on P. 265.
Hence, α = 0.05, i = 3, m = 5, N = 30, and M = 4
30
Summary
In this chapter, we described:
Generation of random numbers
Testing for uniformity and independence
Caution:
Even with generators that have been used for years, some of
which still in used, are found to be inadequate.
This chapter provides only the basic
Also, even if generated numbers pass all the tests, some
underlying pattern might have gone undetected.
31