Professional Documents
Culture Documents
Computacin / Matemticas o a
MA2006
Computacin / Matemticas o a
Generacion de Numeros Seudo-Aleatorios Un elemento importante en simulacin es tener rutinas que generen o variables aleatorias con distribuciones especicas: uniforme, normal, etc. Para ello la base es generar una secuencia de nmeros u aleatorios distribuidos uniformemente entre 0 y 1. Y para ello la clave es generar nmeros enteros aleatorios y uniformemente u distribuidos en un cierto intervalo de una manera eciente.
Computacin / Matemticas o a
Metodo de la Congruencia Lineal Hasta ahora los mtodos ms populares para generar nmeros e a u aleatorios son casos particulares del esquema introducido por D H Lehner en 1949 y que aparece publicado en 1951: Se escogen cuatro nmeros mgicos: u a m: el mdulo (m > 0) o a: el multiplicador (0 a < m) c: el corrimiento (0 c < m) x0 : la semilla (0 x0 < m) La sucesin de nmeros seudo-aleatorios < xn > se obtiene o u aplicando la frmula: o xn+1 = ((a xn + c) mod m)
Recuerde que k mod m es el residuo de de hacer la divisin de k entre m. o
Computacin / Matemticas o a
Computacin / Matemticas o a
Conceptos
Computacin / Matemticas o a
Ejemplo Para m = 15, a = 12 y c = 0 la grca de cmo cambia la semilla a o por el siguiente aleatorio y de all a los subsiguientes queda:
2 4 5
10
14
11
12
13
Note que para x0 = 1: el per odo es 5, la longitud es del ciclo 4 y la longitud de la cola 1.
Computacin / Matemticas o a Sistemas Aleatorios: Generacin de Nmeros Seudo-Aleatorios o u
GCL Multiplicativos Tienen la forma: xn+1 = ((a xn ) mod m) Los hay con m potencia de 2 (m = 2k ) que son rpidos pues a el residuo en divisiones con potencia de 2 puede hacerse rpidamente. Aunque tienen la desventaja que no son de a per odo completo (Cuando tiene el mximo per a odo posible, m 1), pueden ser sucientes para muchas aplicaciones. Cuando m no es potencia de 2 el generador es menos rpido; a se acostumbra elegir un nmero m que sea primo y la relacin u o entre m y a debe ser especial para que el generador tenga un per odo completo o al menos grande.
Computacin / Matemticas o a
Algunos Generadores de Numeros Aleatorios xn = (75 xn1 ) mod(231 1): Usado por IMSL (1987), PRIMOS (1984) xn = (16, 807 xn1 ) mod 2311 : Usado por : SAS, Pascal de Sheeld. xn = (513 xn1 ) mod 235 : Usado por SIMULA en UNIVAC xn = 1, 103, 515, 245 xn1 + 12, 345) mod 232 : Usado en UNIX
Computacin / Matemticas o a
Recomendaciones en la seleccion de la semilla No use cero Evite valores pares Aprenda reusar semillas: podr repetir corridas a En general, no use semillas aleatorias
Computacin / Matemticas o a