Está en la página 1de 5

Probabilidades y Estadstica (Computacin) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J.

Martnez Generacin de Nmeros Aleatorios

2004

Nmeros elegidos al azar son tiles en diversas aplicaciones, entre las cules podemos mencionar: Simulacin o mtodos de Monte Carlo: se simula un proceso natural en forma computacional. Estas aplicaciones se realizan en muy variados campos con el fin de emular distintos comportamientos: fsica (por ejemplo, para simular colisiones entre partculas), ingeniera (diseo de obras hidrulicas, puentes, etc. ), inversiones de capital, redes, servicios a clientes, call centers, etc. La simulacin a travs de la computadora es una herramienta poderosa para comprender la naturaleza de sistemas complejos. Muestreo: con el fin de seleccionar una submuestra de una poblacin. Anlisis Numrico: algunas tcnicas para resolver problemas de anlisis numrico complejos han sido desarrolladas usando nmeros aleatorios. Programacin: la generacin de valores aleatorios puede ser til para poner a prueba la efectividad de un algoritmo. Tambin son tiles en criptologa.

A pesar de que fue en la dcada del 40 que las primeras computadoras modernas fueron desarrolladas, la simulacin ya exista en forma embrionaria an antes de que la computadora apareciera en escena. As, por ejemplo, en la segunda mitad del siglo XIX, se realizaban experiencias arrojando agujas al azar sobre una superficie reglada con el fin de estimar el nmero . En 1908 W. S. Gosset, bajo el seudnimo de Student, realizaba un muestreo experimental con el fin de descubrir la distribucin de un estimador de la correlacin en una distribucin normal bivariada. En ese momento los nmeros aleatorios se generaban mediante mtodos observacionales (mecanismos fsicos) tales como tirar un dado, extraer una carta de un mazo o mediante una ruleta. Dado el esfuerzo que significaba generar nmeros aleatorios cada vez que eran necesarios, parece razonable que se hayan construido tales nmeros y luego tabulado. Tippett (1927) public una tabla con 41600 nmeros aleatorios tomados en forma aleatoria de informes censales. Cada nmero era uno de los enteros 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y el usuario tomaba varios de ellos y agregaba un punto decimal para formar un nmero aleatorio entre 0 y 1. Desde ese momento fueron propuestos una serie de generadores de nmeros aleatorios. La primera mquina fue usada en 1939 por Kendall y Babington-Smith con el fin de producir una tabla de 100000 dgitos aleatorios y en 1955 la RAND Corporation utiliz extensamente una tabla de 1000000 dgitos aleatorios que fue obtenida a partir de una ruleta electrnica especialmente diseada. ERNIE fue una famosa mquina de nmeros aleatorios que fue usada por la lotera britnica, es decir la British Premium Savings Bonds Lottery. Poco despus de la aparicin de las computadoras, se comenz a buscar maneras eficientes de obtener nmeros aleatorios, pues an cuando se podan usar las tablas existentes ste era un recurso limitado, ya sea por el espacio de memoria necesario como

81

Probabilidades y Estadstica (Computacin) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Martnez

2004

por resultar, en algunos casos, cortas. Si bien mquinas como ERNIE podran haber trabajado junto con una computadora, una solucin en la que la computadora provee todo pareca ms satisfactoria. La bsqueda se orient, entonces, a la produccin de nmeros aleatorios usando operaciones aritmticas en una computadora. John von Neumann sugiri en un principio, alrededor de 1946, usar el mtodo del cuadrado medio. Su idea era calcular el cuadrado del nmero aleatorio anterior y tomar los dgitos del medio del nmero calculado. As, por ejemplo, si queremos generar un nmero aleatorio de 10 dgitos y el nmero anterior es 5772156649 el nuevo nmero ser 7923805949. La primera pregunta que cabe hacer es: porqu motivo un nmero generado por este procedimiento que es determinstico, va a resultar aleatorio?. La respuesta es que el nmero no es aleatorio, pero parece serlo, en el sentido en que en una aplicacin la relacin real entre un nmero y el siguiente no tiene ningn significado fsico. Por lo tanto, el carcter no aleatorio no es una caracterstica indeseable y podra ser que el cuadrado medio resultase ser un buen batido del nmero anterior. Es claro, de todas formas, que un mecanismo de esta naturaleza no podra haber reemplazado a ERNIE. Las secuencias de nmeros generadas en forma determinstica reciben el nombre de secuencias pseudo-aleatorias o quasi-aleatorias, si bien nosotros nos referiremos a ellas como secuencias aleatorias, sobreentendiendo que slo parecen aleatorias. Nmeros aleatorios generados en forma determinstica en una computadora funcionan muy bien en muchsimas aplicaciones, a condicin de que el mtodo de generacin sea bueno. Volviendo a la propuesta de von Neumann, sta no parece ser una buena fuente de nmeros aleatorios. Podra suceder que la secuencia caiga en un ciclo corto de repeticiones, siendo el caso extremo el del cero el cual, si aparece en la secuencia, seguir repitindose siempre. A partir de los aos 50 se realizaron diversas experiencias con el mtodo propuesto por von Neumann. Trabajando con nmeros de 4 dgitos en lugar de 10, G. E. Forsythe prob con 16 nmeros iniciales. Con 12 de ellos termin con el ciclo 6100, 2100, 4100, 8100, 6100, etc. Y con otras dos termin en cero. En efecto, 6100**2 = 37210000 2100**2 = 4410000 4100**2 = 16810000 8100**2 = 65610000 33317792380594909201

Metrpolis realiz muchas pruebas con los nmeros del middle-square, en especial con sistemas de nmeros binarios. Mostr que en secuencias de 20 dgitos, hay 13 ciclos diferentes en los que la secuencia puede caer, el ms largo de los cuales tiene longitud

82

Probabilidades y Estadstica (Computacin) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Martnez

2004

142. Estas falencias del middle-square son algunas de las consideraciones que debemos hacer ante un generador de nmeros aleatorios. En principio consideraremos mtodos para generar nmeros con distribucin uniforme en el intervalo (0,1). sto podemos lograrlo generando enteros Xn entre 0 y un nmero natural m y luego tomando la fraccin:

Un =

Xn m

Usualmente m es un nmero muy grande. El ms popular de los generadores de nmeros aleatorios es el Mtodo Lineal de Congruencias, que es un caso especial del mtodo introducido por Lehmer en 1949. Dados cuatro nmeros m, a, c y X0, formamos la secuencia de nmeros aleatorios Xn de la siguiente forma

X n +1 (aX n + c)

mod m,

n0

es decir que X n +1 es el resto entero de dividir aX n + c por m (y por lo tanto es un entero entre 0 y m-1). Esta es una secuencia lineal congruente. Tengamos en cuenta que m es el mdulo m>0 a es el multiplicador 0 a <m c es el incremento 0 c <m X0 es la semilla o valor inicial En el caso en que c = 0, el mtodo recibe el nombre de multiplicativo secuencial. Por ejemplo, si m =10 y X0 = a = c = 7, entonces la secuencia obtenida es 7, 6, 9, 0, 7, 6, 9, 0..... En cambio, si m = 8, para la misma eleccin del resto de las constantes, la secuencia sera: 0, 7, 0, 7.... sto muestra que la eleccin de los nmeros m, a y c es crucial y que siempre se caer en un loop, es decir en un ciclo de repeticiones, que se llama perodo. Es claro que cuanto ms grande sea m, mayor es la posibilidad de que el perodo sea largo. En realidad, las distintas elecciones de los parmetros son sometidas a una batera de tests con los que se chequean las propiedades de los nmeros generados.

83

Probabilidades y Estadstica (Computacin) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Martnez

2004

Como ya observamos ms arriba, con estos algoritmos se generan nmeros aleatorios que se comportan como si proviniesen de una distribucin U(0,1). La pregunta que es razonable hacerse es porqu sto es suficiente. El siguiente teorema nos da una respuesta. Teorema: Sean U una variable aleatoria con distribucin U (0,1) y G una funcin de distribucin acumulada continua y estrictamente creciente. Si X = G 1 (U ) , entonces la funcin de distribucin acumulada de X es G , es decir FX = G. Dem: Recordemos que si U ~ U (0,1) , entonces su funcin de distribucin es de la forma

FU (u ) =

0 u 1

si u 0 si 0 < u < 1 si u 1

Por lo tanto, como G es una funcin estrictamente creciente y su imagen pertenece al intervalo (0,1), entonces

FX ( x ) = P ( X x ) = P (G 1 (U ) x ) = P (U G ( x )) = FU (G ( x )) = G ( x )
con lo que queda demostrado el teorema. Ejemplo: En el caso de una variable X ~ E ( ) , la funcin de distribucin acumulada es de la forma

0 FX ( x) = 1 e x
Dado y (0,1) , la inversa de FX es

si x 0 si x > 0

FX ( y ) =
Luego, si U ~ U (0,1) ,

ln(1 y )

ln(1 U ) ~ E ( )

84

Probabilidades y Estadstica (Computacin) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Martnez

2004

Si la distribucin G tiene saltos o es constante de a trozos, no existir su inversa. Sin embargo se puede demostrar que existe una H con las propiedades requeridas en el teorema anterior, de manera que, aunque sin demostracin, enunciaremos el siguiente resultado. Teorema: Sean U una variable aleatoria con distribucin U (0,1) y G una funcin de distribucin acumulada. Existe una funcin H tal que H (U ) tiene distribucin acumulada G. Ejemplos: Queremos generar una variable con distribucin de Bernoulli de parmetro p a partir de una v.a. uniforme. Podemos aplicar el siguiente procedimiento. Generamos U ~ U (0,1) y definimos:

1 X = 0

si 0 < U p si p < U 1

En efecto, la nueva variable X toma slo dos valores (0 y 1) y dado que p (0,1)

P( X = 1 ) = P( U p ) = p
y por lo tanto X tiene la distribucin deseada. Notemos que en lugar del intervalo ( 0 , p ] podramos haber tomado cualquier intervalo en (0,1) de longitud p .

85

También podría gustarte