Documente Academic
Documente Profesional
Documente Cultură
s s
=
otherwise , 0
1 0 , 1
) (
x
x f
2
1
2
) (
1
0
1
0
2
= = =
}
x
xdx R E
12
1
4
1
3
1
2
1
3
) (
2
1
0
1
0
3
2
= =
|
.
|
\
|
= =
}
x
dx x R V
x
f
(
x
)
0
1
PDF:
Independence
Independence: the probability of observing a
value in a particular interval is independent of
the previous value drawn.
Generation of Pseudo-Random
Numbers
Pseudo means fake
Pseudo, because we utilize known methods to
generate numbers which removes the potential for
true randomness.
Pseudo-random numbers: Deterministic sequence of
numbers with a repeat period but with the appearance
of randomness (if you dont know the algorithm).
Generation of Random Numbers
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.
Techniques for Generating Random
Numbers
Mid-square method
Linear Congruential Method
Combined Linear Congruential Method
Tausworthe generators (self study)
Extended Fibonacci generators (self study)
Mid-Square Method
Proposed by Von Neumann and Metropolis in
the 1940s
1. Start with an initial d-digit integer seed X
0
2. Square X
0
3. Take the middle d-digits as the next four-digit
number, X
1
4. Place a decimal point at the left of X
1
to get first
random number R
1
5. Square X
1
and continue process
SEED
Random number seed-initial random number
used to generate the next random number
which is in turn transformed into the new seed
value.
Example
Let X
0
= 5497
X1= (5497)
2
= 30217009 X
1
= 2170 R
1
= 0.2170
X2= (2170)
2
= 04708900 X
2
= 7089 R
2
= 0.7089
X3= (7089)
2
= 50253921 X
3
= 2539 R
3
= 0.2539
...and so on...
Example 2: Poor Mid-Square
Generator
Let X
0
= 5197
X1= (5197)
2
= 27008809 X1= 0088R1= 0.0088
X2= (0088)
2
= 00007744X2= 0077R2= 0.0077
X3= (0077)
2
= 00005929X3= 0059R3= 0.0059
X4= (0059)
2
= 00003481X4= 0034R4= 0.0034
Once zeros appear, they are carried in subsequent
numbers.
Example 3: Poor Mid-Square
Generator
Let X
0
= 6500
X
1
= (6500)
2
= 42250000X1= 2500R1= 0.2500
X2= (2500)
2
= 06250000X2= 2500R2= 0.25000
Cannot choose a seed that guarantees that the
sequence will not degenerate and will have a long
period.
Advantages and disadvantages of
the MID-SQUARE method
Advantages of the mid-square method
Rather simple to implement
Disadvantages of the mid-square method
Difficult to choose initial seed that will give good
sequence
Strong tendency to degenerate fairly rapidly to
zero
More Examples on the mid-square
Method
17
The Mid-product Method
Improved Variation of Mid-square method
Example: Start with two arbitrary 3-digit numbers
Z
0
= 123 Z
1
= 456
Z
0
Z
1
= (123)(456) = 56088 U
1
= 0.608 Z
2
= 608
Z
1
Z
2
= (456)(608) = 277248 U
2
= 0.772 Z
3
= 772
Z
2
Z
3
= (608)(772) = 469376 U
3
= 0.693 Z
4
= 693
Linear Congruential Method
by D. H. Lehmer, 1951
To produce a sequence of integers, X
1
, X
2
, between 0 and
(m-1) by following a recursive relationship:
If c0, the form is called the mixed congruential
method.
If c=0, the form is known as the multiplicative
congruential method
Linear Congruential Method
The random integers are being generated in the
interval [0, m-1], and to convert the integers to
random numbers:
For [0,1[
For [0,1]
,... 2 , 1 = = i
m
X
R
i
i
,... 2 , 1
1
=
= i
m
X
R
i
i
Example
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,R1= 0.02;
X2= (17*2+32) mod 100 = 77, R2= 0.77;
X3= (17*77+32) mod 100 = 52, R3= 0.52;
21
Example
For example,
Starting with x
0
=5:
The first 32 numbers obtained by the above procedure
10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5;
10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5.
By dividing x's by 16:
0.6250, 0.1875, 0.0000, 0.0625, 0.3750, 0.9375, 0.7500, 0.8125, 0.1250,
0.6875, 0.5000, 0.5625, 0.8750, 0.4375, 0.2500, 0.3125;
0.6250, 0.1875, 0.0000, 0.0625, 0.3750, 0.9375, 0.7500, 0.8125, 0.1250,
0.6875, 0.5000, 0.5625, 0.8750, 0.4375, 0.2500, 0.3125.
Selection of LCG Parameters
The selection of the values for a, c, m, and X
0
affects the statistical properties and the cycle
length.
Most natural choice for m is one that equals to
the capacity of a computer word.
m = 2
b
(binary machine), where b is the number of
bits in the computer word.
m = 10
d
(decimal machine), where d is the number
of digits in the computer word.
23
Selection of LCG Parameters
The modulus m should be large
All generated numbers, X
i
, are between 0 and m-1,
the period can never be more than m
For mod m computation to be efficient, m
must be a power of 2 Mod m can be
obtained by dropping the leftmost binary
digits in X
i+1
and using only the b rightmost
binary digits
24
Example
Use a 4-bit computer
Let m = 2
4
= 16, a = 5, c = 3, Z
0
= 7
Use Z
i
= (5 Z
i-1
+ 3) (mod 16)
Z
1
= (57+3) (mod 16) = 38 (mod 16) = 6
Z
2
= (56+3) (mod 16) = 33 (mod 16) = 1
Z
3
= (51+3) (mod 16) = 8 (mod 16) = 8
Z
1
= 38 (mod 16) binary (38) = 1 0 0 1 10 = 6
+
Integer overflow
Z
2
= 33 (mod 16) binary (33) = 1 0 0 0 0 1 = 1
Z
3
= 8 (mod 16) binary (8) = 0 0 1 0 0 0 = 8
No need to perform division!
Example
Using the multiplicative congruential method, find
the period of the generator for a = 13, m = 2
6
, and X
0
= 1, 2, 3, and 4. The solution is given in next slide.
When the seed is 1 and 3, the sequence has period 16.
However, a period of length eight is achieved when
the seed is 2 and a period of length four occurs when
the seed is 4.
Random Numbers 26
Solution
Period Determination Using Various seeds
i X
i
X
i
X
i
X
i
0 1 2 3 4
1 13 26 39 52
2 41 18 59 36
3 21 42 63 20
4 17 34 51 4
5 29 58 23
6 57 50 43
7 37 10 47
8 33 2 35
9 45 7
10 9 27
11 53 31
12 49 19
13 61 55
14 25 11
15 5 15
16 1 3
27
Selection of LCG Parameters for
Maximum Period
If c 0, the maximum possible period m
is obtained if and only if:
Integers m and c are relatively prime, that is, have no
common factors other than 1
Every prime number that is a factor of m is also a
factor of (a-1)
If integer m is a multiple of 4, a-1 should be a
multiple of 4
Notice that all of these conditions are met if m=2
b
,
a = 4k + 1, and c is odd.
Selection of LCG Parameters for
Maximum Period
For m a power of 2, say m = 2
b
, and c = 0, the
longest possible period is P = m / 4 = 2
b-2
, which is
achieved provided that the seed X
0
is odd and the
multiplier, a, is given by a = 3 + 8k or a = 5 + 8k, for
some k = 0, 1,...
29
Multiplicative LCG with m=2
k
m = 2
b
Maximum period achieved if:
multiplier a is of the form 8k3
the initial seed is an odd integer
Maximum possible period 2
b-2
the maximum possible period = One-fourth m,
may not be too small
30
Example
Using a seed of x
0
=1
5, 25, 29, 17, 21, 9, 13, 1, 5,
Period = 8 = 32/4
With x
0
=2, the sequence is
10, 18, 26, 2, 10,
Here, the period is only 4
31
Example
Multiplier not of the form 8i 3:
Using a seed of x
0
=1, we get the sequence
7, 17, 23, 1, 7,
The period is only 4
Selection of LCG Parameters for
Maximum Period
For m a prime number and c = 0, the longest possible
period is P = m - 1, which is achieved provided that
the multiplier, a, has the property that the smallest
integer k such that a
k
- 1 is divisible by m is k = m - 1
33
Multiplicative LCG with m=2
k
Modulus m = prime number
With a proper multiplier a, period = m-1
Maximum possible period = m
If and only if the multiplier a is a primitive root of the modulus m
a is a primitive root of m if and only if a
n
mod m =1
for n = 1, 2, , m-2
34
Example
Starting with a seed of x
0
=1
1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28, 22, 4, 12, 5,
15, 14, 11, 2, 6, 18, 23, 7, 21, 1,
The period is 30
3 is a primitive root of 31
With a multiplier of a = 5
1, 5, 25, 1,
The period is only 3 5 is not a primitive root of 31
Primitive roots of 31= 3, 11, 12, 13, 17, 21, 22, and 24
35
Full period generators
A generator that has the maximum possible period, m,
is called a full-period generator
Examples:
Combined Linear Congruential
Generators,
LEcuyer[1988]
Reason: Longer period generator is needed
because of the increasing complexity of
stimulated systems.
Approach: Combine two or more
multiplicative congruential generators.
Combined Linear Congruential
Generators
Suggested form:
Combined Linear Congruential
Generators
The maximum possible period is:
Example
Example: For 32-bit computers, LEcuyer [1988]
suggested combining k = 2 generators:
m
1
= 2,147,483,563, a
1
= 40,014
m
2
= 2,147,483,399, a
2
= 40,692.
The algorithm
Step 1: Select seeds
X
1,0
in the range [1, 2147483562] for the 1
st
generator
X
2,0
in the range [1, 2147483398] for the 2
nd
generator.
Step 2: For each individual generator:
X
1,j+1
= 40,014X
1,j
mod 2,147,483,563
X
2,j+1
= 40,692X
1,j
mod 2,147,483,399
Step 3: X
j+1
= (X
1,j+1
- X
2,j+1
) mod 2,147,483,562.
Step 4:Return
Example
The algorithm (contd)
Step 4:Return
Step 5: Set j = j+1, go back to step 2
Combined generator has period: (m11)(m21)/2 ~
2x10
18
Random-Numbers Streams
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 seedthe
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:
Random-Numbers Streams
A single random-number generator with k
streams can act like k distinct virtual random-
number generators
To compare two or more alternative systems it
is advantageous to dedicate portions of the
pseudo-random number sequence to the same
purpose in each of the simulated systems.