Chapter 8: Random-Variant Generation
Download
Report
Transcript Chapter 8: Random-Variant Generation
Random-Number
Generation
Properties of Random Numbers
Random Number, Ri, must be independently drawn from a
uniform distribution with pdf:
U(0,1)
1, 0 x 1
f ( x)
0, otherwise
1
2
x
E ( R ) xdx
0
2
1
0
1
2
Figure: pdf for
random numbers
Two important statistical properties:
Uniformity
Independence.
2
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.
3
Linear Congruential Method
[Techniques]
To produce a sequence of integers, X1, X2, … between 0
and m-1 by following a recursive relationship:
X i 1 (aXi c) modm, i 0,1,2,...
The
multiplier
The
increment
The
modulus
The selection of the values for a, c, m, and X0 drastically
affects the statistical properties and the cycle length.
The random integers are being generated [0,m-1], and to
convert the integers to random numbers:
Ri
Xi
, i 1,2,...
m
4
Examples
[LCM]
Use X0 = 27, a = 17, c = 43, and m = 100.
The Xi and Ri values are:
X1 = (17*27+43) mod 100 = 502 mod 100 = 2,
X2 = (17*2+43) mod 100 = 77,
X3 = (17*77+43) mod 100 = 52,
X4 = (17* 52 +43) mod 100 = 27,
R1 = 0.02;
R2 = 0.77;
R3 = 0.52;
R3 = 0.27
“Numerical Recipes in C” advocates the generator
a = 1664525, c = 1013904223, and m = 232
Classical LCG’s can be found on
http://random.mat.sbg.ac.at
5
Characteristics of a Good Generator
[LCM]
Maximum Density
Such that the 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
Maximum Period
Approximation appears to be of little consequence
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.
6
A Good LCG Example
X=2456356; %seed value
for i=1:10000,
X=mod(1664525*X+1013904223,2^32);
U(i)=X/2^32;
end
edges=0:0.05:1;
M=histc(U,edges);
bar(M);
hold;
figure;
hold;
for i=1:5000,
plot(U(2*i-1),U(2*i));
end
7
Randu (from IBM, early 1960’s)
X=1; %seed value
for i=1:10000,
X=mod(65539*X+57,2^31);
U(i)=X/2^31;
end
edges=0:0.05:1;
M=histc(U,edges);
bar(M);
hold;
figure;
hold;
for i=1:3333,
plot3(U(3*i-2),U(3*i-1),U(3*i));
end
Marsaglia
Effect (1968)
8
Random-Numbers Streams
[Techniques]
The seed for a linear congruential random-number generator:
Is the integer value X0 that initializes the random-number sequence.
Any value in the sequence can be used to “seed” the generator.
A random-number stream:
Refers to a starting seed taken from the sequence X0, X1, …, XP.
If the streams are b values apart, then stream i could defined by starting
seed:
S X
i
b ( i 1)
Older generators: b = 105; Newer generators: b = 1037.
A single random-number generator with k streams can act like k
distinct virtual random-number generators
To compare two or more alternative systems.
Advantageous to dedicate portions of the pseudo-random number
sequence to the same purpose in each of the simulated systems.
9
Random-Variate
Generation
Purpose & Overview
Develop understanding of generating samples
from a specified distribution as input to a
simulation model.
Illustrate some widely-used
generating random variates.
techniques
for
Inverse-transform
technique
Convolution technique
Acceptance-rejection technique
A special technique for normal distribution
11
Inverse-transform Technique
The concept:
For cdf function: r = F(x)
Generate R sample from uniform (0,1)
Find X sample:
r = F(x)
r1
X = F-1(R)
x1
1
P
r
(
X
x
)
P
r
(
F
(
R
)
x
)
P
r
(
R
F
(
x
)
)(
F
x
)
12
Exponential Distribution
[Inverse-transform]
Exponential Distribution:
Exponential cdf:
r = F(x) = 1 – e-x
for x 0
To generate X1, X2, X3 ,…
generate R1, R2, R3 ,…
Xi = F-1(Ri) = -(1/ ln(1-Ri)
Figure: Inverse-transform
technique for exp( = 1)
13
Exponential Distribution
[Inverse-transform]
Example: Generate 200 variates Xi with distribution
exp(= 1)
Matlab Code
for i=1:200,
expnum(i)=-log(rand(1));
end
R and (1 – R) have
U(0,1) distribution
14
Uniform Distribution
[Inverse-transform]
Uniform Distribution:
Uniform cdf:
xa
0
xa
rFx
( )
axb
ba
bx
1
To generate X1, X2, X3 ,…, generate R1, R2, R3 ,…
X
a
(b
aR
)i
i
15
Uniform Distribution
[Inverse-transform]
Example: Generate 500 variates Xi with distribution
Uniform (3,8)
Matlab Code
for i=1:500,
uninum(i)=3+5*rand(1);
end
16
Discrete Distribution
[Inverse-transform]
All discrete distributions can be generated by the
Inverse-transform technique.
F(x)
x
p(x)
a
b
c
p1
p2
p3
p1 + p 2 + p 3
p1 + p 2
R1
p1
General Form
X
m
in
{
xF
: ()
x
r
}
a
b
c
17
Discrete Distribution
[Inverse-transform]
Example: Suppose the number of shipments, x, on the
loading dock of IHW company is either 0, 1, or 2
Data - Probability distribution:
x
p(x)
F(x)
0
1
2
0.50
0.30
0.20
0.50
0.80
1.00
Method - Given R, the generation
scheme becomes:
,
R0
.5
0
x
1
, 0
.5R0
.8
2
.8R1
.0
, 0
Consider R1 = 0.73:
F(xi-1) < R <= F(xi)
F(x0) < 0.73 <= F(x1)
Hence, x1 = 1
18
Convolution Technique
Use for X = Y1 + Y2 + … + Yn
Example of application
Erlang
distribution
Generate samples for Y1 , Y2 , … , Yn and then
add these samples to get a sample of X.
19
Erlang Distribution
[Convolution]
Example: Generate 500 variates Xi with distribution
Erlang-3 (mean: k/
Matlab Code
for i=1:500,
erlnum(i)=-1/6*(log(rand(1))+log(rand(1))+log(rand(1)));
end
20
Acceptance-Rejection technique
Useful particularly when inverse cdf does not exist in closed form
a.k.a. thinning
Steps to generate X with pdf f(x)
Step 0: Identify a majorizing function g(x) and a pdf h(x) satisfying
x, g(x) f (x)
Efficiency parameter is c
c g(x)dx
g(x)
h(x)
c
Generate Y,U
no
Step 1: Generate Y with pdf h(x)
Step 2: Generate U ~ Uniform(0,1) independent of Y
f(Y
)
Step 3:
U
se
tX
Y
Condition
yes
Output X=Y
g
(Y
)
e
lsere
p
e
a
tfro
m
S
te
p1
.
21
Triangular Distribution
[Acceptance-Rejection]
Generate Y~U(0,0.5)
and U~U(0,1)
no
yes
Output X = Y
22
Triangular Distribution
[Acceptance-Rejection]
Matlab Code: (for exactly 1000 samples)
i=0;
while i<1000,
Y=0.5*rand(1);
U=rand(1);
if Y<=0.25 & U<=4*Y | Y>0.25 & U<=2-4*Y
i=i+1;
X(i)=Y;
end
end
180
160
140
120
100
80
60
40
20
0
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
23
Poisson Distribution
[Acceptance-Rejection]
e n
p ( n) P ( N n )
, n 0,1, 2, ...
n!
– N can be interpreted as number of arrivals from a
Poisson arrival process during one unit of time
– Then, the time between the arrivals in the process are
exponentially distributed with rate
N n
n
A
i 1
i
n 1
1 Ai
i 1
Poisson Distribution
n
A
i 1
i
n 1
n
1 Ai
i 1
i 1
[Acceptance-Rejection]
1
n 1
ln Ri 1
i 1
n
n 1
i 1
i 1
1
ln Ri
Ri e Ri
• Step 1. Set n = 0, and P = 1
• Step 2. Generate a random number Rn+1 and let P =
P. Rn+1
• Step 3. If P < e-, then accept N = n. Otherwise,
reject current n, increase n by one, and return to step 2
• How many random numbers will be used on the
average to generate one Poisson variate?
Normal Distribution
[Special Technique]
Approach for normal(0,1):
Consider two standard normal random variables, Z1 and Z2,
plotted as a point in the plane:
Uniform(0,2
In polar coordinates:
Z1 = B cos
Z2 = B sin
B2 = Z21 + Z22 ~ chi-square distribution with 2 degrees of freedom
2ln
R
)1/2
= Exp( = 1/2). Hence, B(
The radius B and angle are mutually independent.
1
/
2
Z
(
2
l
n)
R
o
s
(
2
R
)
1
1 c
2
1
/
2
Z
(
2
l
n)
R
i
n
(
2
R
)
2
1 s
2
26
Normal Distribution
[Special Technique]
Approach for normal(,):
Generate
Zi ~ N(0,1)
Xi = + Zi
Approach for lognormal(,):
Generate
X ~ N(,)
Yi = eXi
27
Normal Distribution
[Special Technique]
Generate 1000 samples of Normal(7,4)
Matlab Code
for i=1:500,
R1=rand(1);
R2=rand(1);
Z(2*i-1)=sqrt(-2*log(R1))*cos(2*pi*R2);
Z(2*i)=sqrt(-2*log(R1))*sin(2*pi*R2);
end
for i=1:1000,
Z(i)=7+2*Z(i);
end
28