PowerPoint

advertisement
Pseudorandom Number
Generators
1
Random Number - Definition
• A random selection of a number from a set
or range of numbers is one in which each
number in the range is equally likely to be
selected.
2
Applications of Random Numbers
• Cryptography, games, and many statistical
models rely on random numbers.
• Example from cryptography – keys for
encryption of data.
• Example from games – the behavior of a
computer-controlled character.
• Example from statistics - the Monte Carlo
method.
3
Random Numbers
• True random numbers can only be
generated by observations of random
physical events, like dice throws or
radioactive decay.
• Generation of random numbers by
observation of physical events can be slow
and impractical.
4
Pseudorandom Numbers
• Instead, sequences of numbers that approximate
randomness are generated using algorithms.
• These numbers are inherently nonrandom because they
are generated by deterministic mathematical processes.
• “Anyone who considers arithmetical methods of
producing random digits is, of course, in a state of sin.” –
John von Neumann
• Hence, these numbers are known as pseudorandom
numbers.
• The algorithms used to generate them are called
pseudorandom number generators.
5
Pseudorandom Number
Generators
• Different PRNG’s approximate different
properties of random numbers, and desirable
properties vary with application.
• Therefore, different PRNG’s are suitable for
different applications.
• For example, a generator that produces
unpredictable but not uniformly distributed
number sequences may be useful in
cryptography but not in the Monte Carlo method.
6
Middle-Square Method - History
• The middle-square
method was first
suggested by John von
Neumann in 1946 for use
in models of neutron
collisions in nuclear
reactions.
• The method was flawed,
but it was simple and fast
enough to be
implemented using an
ENIAC computer.
John von Neumann
7
Middle-Square Method
• Begin with an n-digit seed
number x0.
• Square it to obtain a 2ndigit number, adding a
leading zero if necessary.
• Take the middle n digits
as the next random
number.
• Repeat.
• Numbers generated can
be scaled to any interval
by multiplication and/or
addition.
8
Middle-Square Method - Example
• Let’s generate four-digit numbers starting
with the seed 2041.
• Square the seed and a leading zero to
obtain 04165681.
• Take the middle four digits, 1656 as the
next random number.
• Repeat to get the following sequence:
2041,1656, 7423, 1009, 180, 324, 1049,
1004, 80, 64, 40,16, 2, 0, 0, 0, 0, 0…
9
Middle-Square Method - Flaw
• This sequence illustrates a serious flaw in
the middle-square method; it tends to
degenerate to zero. (It degenerates after a
number with n/2 or less digits is
generated.)
10
Middle-Square Method - Example
• Let’s try to generate numbers starting with
7600.
• 7600^2= 57,760,000, so the next number
is also 7600. If this is repeated, the same
number will be obtained indefinitely.
• This example illustrates the importance of
choosing good seed values (and good
parameters in general) for pseudorandom
number generators.
11
Linear Congruence Method
• Due to its tendency to quickly degenerate
to zero and/or repeat, the middle-square
method is not a very practical algorithm.
• The linear congruence method provides
more reliable results.
• Derrick H. Lehmer developed this method
in 1951. Since then, it has become one of
the most commonly used PRNG’s.
12
Linear Congruence Method
• The method uses the following formula:
Xn+1 = (a * Xn + b) mod c
given seed value X0 and integer values of
a, b, and c.
(“y mod z” means the remainder of the
division of y by z.)
13
Linear Congruence Method –
Example
• Let a = 1, b = 7, c = 10, and X0 = 7.
• X1 = (1 * 7 + 7) mod (10) = 4
• Repeat to get the following sequence:
7, 4, 1, 8, 5, 2, 9, 6, 3, 0, 7, 4, 1, 5, 2, 9…
 Note that the sequence cycles after every
ten terms.
 Pseudorandom numbers always cycle
eventually.
14
Linear Congruence Method –
Choosing Parameters
• Xn+1 = (a * Xn + b) mod c.
• The period (number of terms in a cycle)
depends on the choice of parameters .
• a, b, c and X0 can be chosen such that the
generator has a full period of c.
• Large values of c ensure long cycles.
15
Linear Congruence Method - Flaws
• The cycles of linear congruential generators may
be too short for some applications.
• Issues arise from the easily detectable statistical
interdependence of the members of sequences
generated with this method. For example, it
makes the method unsuitable for cryptography.
• The correlation of members of the sequences
results in the uneven distribution of points
generated in greater than 2 dimensions.
• Ordered triples of numbers generated by the
algorithm lie on a finite number of planes.
16
Linear Congruence MethodRANDU
• The linear congruential
generator RANDU is perhaps
the most infamous example of
a poorly chosen set of
parameters for a PRNG.
• The generator was used
widely throughout scientific
community until the fact that
ordered triples generated by it
fell into only fifteen planes was
taken into account.
• Many results produced using
RANDU are now doubted.
3000 triples generated by RANDU.
17
Recent PRNG’s – Mersenne
Twister
• The Mersenne Twister is now often used in place of the linear
congruential generator.
• The Mersenne Twister was developed by mathematicians
Makoto Matsumoto and Takuji Nishimura in 1997.
• The generator runs faster than all but least statistically sound
PRNG’s.
• It is distributed uniformly in 623 dimensions.
• The generator passes numerous tests for randomness.
• The Mersenne Twister gets its name from its huge period of
2^19937-1. This number is a Mersenne prime.
• It would probably take longer to cycle than the entire future
existence of humanity (and, perhaps, the universe.)
18
Mersenne Twister
• Observing enough numbers generated by
the Mersenne Twister allows all future
numbers to be predicted.
• The Mersenne Twister is, therefore, not
suitable in cryptography.
• This illustrates the fact that no single
PRNG is the best choice for all
applications.
19
Summary
• PRNG’s are algorithms that produce sequences of numbers
that simulate randomness.
• PRNG’s are useful in game design, cryptography, and
statistical modeling.
• Different PRNG’s are suitable for different applications.
• It is important to choose a good set of parameters for a
PRNG.
• The middle-square method uses the middle digits of the
square of the nth term to generate the (n+1)th term.
• The linear congruence method is defined by the recursive
formula Xn+1 = (a * Xn + b) mod c
20
Sources
•
•
•
•
•
•
•
Carter, Skip. “Linear Congruential Generators.” 9 Jan 1996. Taygeta Scientific
Incorporated. 15 Jul 2006 <http://www.taygeta.com/rwalks/node1.html>.
"Hardware random number generator." Wikipedia, The Free Encyclopedia. 15 Jul 2006, 04:50
UTC. Wikimedia Foundation, Inc. 17 Jul 2006
<http://en.wikipedia.org/w/index.php?title=Hardware_random_number_generator
&oldid=63907837>.
Hutchinson, Mark. “An Examination of Visual Basic’s Random Number Generation.” 15
Seconds. 14 Jul 2006 <http://www.15seconds.com/Issue/051110.htm>.
"Mersenne twister." Wikipedia, The Free Encyclopedia. 12 Jul 2006, 18:46 UTC.
Wikimedia Foundation, Inc. 17 Jul 2006
<http://en.wikipedia.org/w/index.php?title=Mersenne_twister&oldid=63455933>.
"Middle-square method." Wikipedia, The Free Encyclopedia. 5 May 2006, 05:06 UTC.
Wikimedia Foundation, Inc. 17 Jul 2006
<http://en.wikipedia.org/w/index.php?title=Middle
-square_method&oldid=51635932>.
“Pseudorandom number generator." Wikipedia, The Free Encyclopedia. 11 Jul 2006,
07:22 UTC. Wikimedia Foundation, Inc. 17 Jul 2006
<http://en.wikipedia.org/w/index.php?title=Pseudorandom_number_generator&oldid=63187601>.
"RANDU." Wikipedia, The Free Encyclopedia. 11 May 2006, 11:06 UTC. Wikimedia
Foundation, Inc. 17 Jul 2006
<http://en.wikipedia.org/w/index.php?title=RANDU&oldid=52640788>.
21
Download