1 pseudorandom number generators. 2 random number - definition a random selection of a number from a...

21
1 Pseudorandom Number Generators

Post on 20-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

1

Pseudorandom Number Generators

Page 2: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

2

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.

Page 3: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

3

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.

Page 4: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

4

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.

Page 5: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

5

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.

Page 6: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

6

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.

Page 7: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

7

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

Page 8: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

8

Middle-Square Method

• Begin with an n-digit seed number x0.

• Square it to obtain a 2n-digit 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.

Page 9: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

9

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…

Page 10: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

10

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.)

Page 11: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

11

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.

Page 12: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

12

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.

Page 13: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

13

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.)

Page 14: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

14

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.

Page 15: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

15

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.

Page 16: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

16

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.

Page 17: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

17

Linear Congruence Method- RANDU

• 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.

Page 18: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

18

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.)

Page 19: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

19

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.

Page 20: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

20

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

Page 21: 1 Pseudorandom Number Generators. 2 Random Number - Definition A random selection of a number from a set or range of numbers is one in which each number

21

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.” 15Seconds. 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>.