Está en la página 1de 34

SIMULACION DE SISTEMAS DISCRETOS

Generacin de nmeros pseudoaleatorios

Ing. Oscar C. Campos Salvatierra

GENERACIN DE SERIES DE NMEROS ALEATORIOS

2 /41

Generacin de Nmeros Aleatorios


Rol preponderante en el proceso de simulacin. Para simular necesitamos de nmeros aleatorios como semillas para generar muestras de V.A. Caractersticas de un generador de nros aleatorios: 1) Muestrea valores de Distribucin Uniforme. 2) Asegura la NO Correlacin Serial.

3 /41

Algunas Propiedades de Nros Aleatorios


1. Distribucin Uniforme. Cualquier nmero que pertenezca al rango de inters debe tener la misma probabilidad de resultar sorteado.

2. NO Correlacin Serial. La aparicin de un nmero en la secuencia, no afecta la probabilidad de que aparesca otro (o el mismo) nmero.
4 /41

Ejemplo
La sucesin 1,2,3,4,5,1,2,3,4,5,1,2,3,4,5... es uniforme pero est correlacionada.

Existen Tests que verifican las condiciones de uniformidad y correlacin serial, temas que veremos mas adelante.

5 /41

Serie de Nmeros Aleatorios


Son nmeros que deben de cumplir los requisitos de espacio equiprobable, es decir, que todo elemento tenga la misma probabilidad de ser elegido y que la eleccin de uno no dependa de la eleccin del otro.

6 /41

Propiedades deseables
1. 2. 3. 4. 5. 6. 7. Uniformemente distribuidos. Estadsticamente independientes (no correlacin). Periodo largo (sin repeticin). Reproducibles y mutables. Sencillo en su implementacin. Mtodo rpido de generacin. Poca memoria para la generacin.

7 /41

Mapa Conceptual
Xi+1=(aXi+c) mod m

Tabla de Nros. aleatorios

Fenmenos Fsicos

Procedimientos Matemticos

Nmeros Aleatorios

Validacin de Series de NA

Variables U (0,1) Variables Aleatorias


8 /41

Mecanismos de generacin
Tablas de nmeros aleatorios
RAND (1955), 100,000 nmeros aleatorios (ruido electrnico)
1. Uniformemente distribuidos. 2. Estadsticamente independientes. 3. Periodo largo (sin repeticin).

Fenmenos fsicos
Ruido blanco producido por circuitos electrnicos Recuento de partculas emitidas Lanzamiento de monedas Rueda de la fortuna

Procedimientos matemticos
Se usa algoritmos para la generacin de nmeros aparentemente aleatorios, se entrega una semilla y se generan los sucesores mediante una funcin

4. Reproducibles y mutables. 5. Sencillo en su implementacin.

6. Mtodo rpido de generacin. 7. Poca memoria para la generacin.

9 /41

GENERADORES NO CONGRUENCIALES

10 /41

Mtodo del cuadrado medio


Fue propuesto inicialmente por Von Newman y Metrpolis en el ao 1946. Para generar el siguiente nmero pseudo-aleatorio, se toman los n dgitos centrales del cuadrado del nmero anterior de n dgitos. Se requiere una semilla.

11 /41

Mtodo del cuadrado medio


n 0 1 2 R(n) 154 371 376 R(n)2 23,716 137,641 141,376 M.R(n)2 371 3,764 4,137 Val 1 371 376 413 Val 2 0 764 137

3
4

413
705

170,569
497,025

7,056
9,702

705
970

056
702

5
6 7 8 9 10 11 12

970
409 672 515 652 251 300 0

940,900
167,281 451,584 265,225 425,104 63,001 90,000 0

4,090
6,728 5,158 6,522 2,510 300 0 0

409
672 515 652 251 300 0 0

090
728 158 522 510 0 0 0
12 /41

Anlisis
El problema con este mtodo es que tiende a degenerar rpidamente. Dependiendo del valor inicial el mtodo puede degenerar al cabo de 20 trminos. Por ejemplo, supngase que se quiere generar una serie de nmeros pseudo-aleatorios de cuatro dgitos y se tiene como i-simo termino generado es 3500, luego se tendr:
n i R(n) 3500 R(n)2 12250000 M.R(n)2 2500 Random 1 0 Random 2 2500

i+1

2500

6250000

2500

2500

Se puede observar que hemos llegado a una condicin degenerada. Por la tanto, es necesario verificar siempre la serie de nmeros y protegerse contra este fenmeno
13 /41

Mtodo del Producto Medio


Este mtodo es muy similar al anterior ya que se tomar como nmero aleatorio siguiente de la serie, a los n dgitos centrales del resultado de una multiplicacin previa. Se requiere dos semillas.

14 /41

Mtodo del Producto Medio


n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 R(n) 151 155 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 R(n+1) 155 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 0 R(n)2 23,405 52,700 91,800 48,600 154,800 471,280 390,176 641,512 373,915 306,685 493,652 625,248 235,872 90,216 7,518 1,071 357 35 0 M.R(n)2 340 270 180 860 5,480 7,128 9,017 4,151 7,391 668 9,365 2,524 3,587 21 51 7 5 0 0 Val 1 340 270 180 860 548 712 901 415 739 668 936 252 358 21 51 7 5 0 0 Val 2 0 0 0 0 480 128 017 151 391 0 365 524 587 0 0 0 0 0 0

Multiplicador Constante
Una modificacin para el mtodo del Producto Medio consiste en utilizar un multiplicador constante, en lugar de dos nmeros aleatorios como se muestra a continuacin: Rn+1 = K * Rn Estos mtodos son similares al cuadrado medio. Sin embargo los dos tienen periodos ms extensos y los nmeros parecen estar distribuidos uniformemente. Este mtodo tiende a degenerar a un valor constante. Tanto el mtodo de cuadrados medios como el de producto medio tienen un periodo corto para la cantidad de nmeros aleatorios que necesitaremos generar en cada uno de nuestros Modelos.
16 /41

GENERADORES CONGRUENCIALES

17 /41

Generadores Congruenciales
Congruencial Lineal (Mixto). Congruencial Multiplicativo.

18 /41

Mtodo Congruencial Lineal (MCL)


Los generadores congruenciales lineales generan una serie de nmeros pseudo - aleatorios de tal forma que se puede generar el siguiente a partir del ultimo nmero derivado, es decir, que el nmero Xn+1 es generado a partir de Xn. La relacin de recurrencia para el mtodo congruencial mixto es: Xn+1 = (aXn + c) mod m
Donde: X0 a c m
= semilla (X0 >0) = multiplicador (a >0) = constante aditiva (c >0) = mdulo (m >X0, m >a y m>c)
19 /41

Mtodo Congruencial Lineal (MCL)


Si se quiere obtener nmeros Uniformes (0,1) normaliza el resultado: Un = Xn / m se

En el MCL, si se repite un nmero ya se repite toda la secuencia. Ventajas:


1. utiliza poca memoria y es muy rpido. 2. fcil de volver a generar la misma secuencia, guardando un solo nmero, (se alcanza con partir desde la misma semilla: X0).

20 /41

Ejemplo
n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a 1 X(n) 7 1 8 2 9 3 10 4 11 5 12 6 0 7 1 8 c 7 a*X(n)+c 14 8 15 9 16 10 17 11 18 12 19 13 7 14 8 15 m 13 [a*X(n)+c] mod m 1 8 2 9 3 10 4 11 5 12 6 0 7 1 8 2
21 /41

Anlisis
Si no se escogen los valores adecuados de los parmetros el perodo del generador de nmeros pseudo aleatorios, ser menor que m. En la Tabla A se muestra los valores obtenidos para un generador con parmetros: a = 7, c = 9, X0 = 5 y m = 11. Como puede apreciarse en la tabla el perodo del generador es 10 que es menor que el mdulo que es 11. Si bien este caso no es crtico si lo es el que se presenta en la Tabla B donde los parmetros toman los valores de a = X0 = c = 7 y m=10 cuyo perodo es de 4, que es un caso muy critico que nos puede llevar a resultados no deseables y poco confiables
22 /41

Tabla A
n 0 1 2 3 4 5 6 7 8 9 10 a 7 X(n) 5 0 9 6 7 3 8 10 2 1 5 c 9 a*X(n)+c 44 9 72 51 58 30 65 79 23 16 44 m 11 [a*X(n)+c] mod m 0 9 6 7 3 8 10 2 1 5 0

23 /41

Tabla B
n 0 1 2 3 4 5 6 a 7 X(n) 7 6 9 0 7 6 9 c 7 a*X(n)+c 56 49 70 7 56 49 70 m 10 [a*X(n)+c] mod m 6 9 0 7 6 9 0

24 /41

Seleccin de m, a, c, X0
a) Seleccin de mdulo (m). Existen dos opciones que son las siguientes: a.1) Escoger al azar el mdulo m. a.2) Tomar m de tal manera que sea el nmero primo ms grande posible y adems que sea menor que pd-1, donde p es la base del sistema que se esta usando y d es el nmero de bits que tiene una palabra de computadora en el sistema que se esta usando. Por ejemplo una computadora XT que trabaja en el sistema binario entonces se tiene que p = 2 y d = 16.
25 /41

Seleccin de m, a, c, X0
b) Seleccin de a. El valor de a debe ser un nmero entero impar, que no deber ser divisible por 3 5. Pero adems, para asegurarnos que el generador tenga perodo completo, el valor que se tome para a deber escogerse segn el siguiente criterio: (a - 1) mod 4 = 0 si 4 es un factor de m. (a - 1) mod b = 0 si b es un factor primo de m.

Generalmente se toma a igual a 2k + 1 cuando se trabaja en el sistema binario. En ambos casos el valor que se asigne a k deber ser mayor o igual que 2.
26 /41

Seleccin de m, a, c, X0
c) Seleccin de c. Este parmetro puede tomar cualquier valor. Pero para asegurarnos de tener buenos resultados se deber seleccionar segn la siguiente regla: c mod 8 = 5 En consecuencia c deber tomar un valor entero impar y relativamente primo a m.

27 /41

Seleccin de m, a, c, X0
d) Seleccin de X0 Se tiene que para el generador congruencial el valor que tome X0 es irrelevante y tiene poca o ninguna influencia sobre las propiedades estadsticas de las series de nmeros pseudo - aleatorios que se generen.

28 /41

Mtodo Congruencial Lineal (MCL)


Para terminar esta parte se debe sealar que existen otras formas matemticas de representar este generador, que son las siguientes: Xn = [anX0 + c{(an - 1)/(a - 1)}] mod m

Xn+k =[anXk + c{(an - 1)/(a - 1)}] mod m

29 /41

Mtodo Congruencial Multiplicativo


En forma semejante al mtodo anterior el generador congruencial multiplicativo genera el prximo nmero pseudo - aleatorio a partir del ltimo nmero calculado, siguiendo la siguiente relacin de recurrencia: Xn+1 = aXnmod m

Para este generador tambin se deben escoger adecuadamente los valores de a, X0, y m, con la finalidad de que se pueda asegurar un perodo mximo para la series pseudo - aleatorias generadas por este mtodo. A continuacin se dan las reglas que indican como se deben escoger estos valores.

30 /41

Seleccin de m, a, X0
Para trabajar en el sistema binario los valores de los parmetros debern escogerse siguiendo las siguientes reglas:
El valor de X0 debe ser un nmero entero impar y relativamente primo a m. El valor de a debe ser obtenido a partir de la siguiente expresin: a = 8t 3 Donde t es cualquier entero. El valor de m puede ser 2d .

Si m = 2d el perodo del generador es 2d-2 m/4. A modo de ejemplo se obtendremos el perodo de un generador cuyos parmetros son: a = 5, X0 = 5 y m = 32. En la siguiente tabla se muestra los elementos que componen la serie generada cuyo perodo es de 8
31 /41

Tabla C
a 5 n 0 1 2 3 4 5 6 7 8 9 10 X(n) 5 25 29 17 21 9 13 1 5 25 29 a*X(n) 25 125 145 85 105 45 65 5 25 125 145 m 32 [a*X(n)] mod m 25 29 17 21 9 13 1 5 25 29 17

32 /41

Tabla D
Caso 1 2 3 4 5 a 6 7 5 7 6 Parmetros b m 0 13 0 13 0 13 0 11 0 11 xo 1 10 5 5 3

Caso 1 2 3 4 5

6 5 12 2 7

10 9 8 3 9

8 11 1 10 10

9 12 5 4 5

2 6 12 6 8

Salidas 12 7 3 8 8 1 9 8 4 2

3 4 5 1 1

5 2 12 7 6

4 1 8 5 3

11 7 1 2 7

1 10 5 3 9

6 5 12 10 10

10 9 8 4 4

33 /41

Streams - Torrentes
Un generador de nmeros aleatorios que comience con la misma semilla, siempre producir la misma torrente o secuencia de nmeros. Diferentes semillas generarn diferentes secuencias. Si las semillas se eligen con valores no cercanos (en el ciclo del generador), entonces las secuencias de nmeros generados (torrentes) parecern y actuarn como nmeros aleatorios independientes entre s con lo que colaborarn en la generacin de v.a. Independientes entre s.

34 /41