Sunteți pe pagina 1din 39

Simulacin

Unidad II: Nmeros pseudoalealeatorios Generacin de nmeros aleatorios

La aplicacin de los nmeros aleatorios se remonta a los tiempos de la primera revolucin industrial, cuando los procesos manuales tuvieron que reemplazarse por procesos mecanizados como consecuencia de la explosin demogrfica que se estaba presentando en los pases desarrollados con la disminucin de las tasas de mortalidad y el aumento de las tasas de natalidad y que, para satisfacer las necesidades de la poblacin cada vez ms creciente hubo necesidad de incrementar la produccin de toda clase de bienes y servicios.

Simulacin
Unidad II: Nmeros pseudoalealeatorios Generacin de nmeros aleatorios

Es posible identificar diferentes mtodos usados a travs de la historia para generar nmeros aleatorios que pudieran ser utilizados en los procesos de simulacin de las actividades industriales. Dichos mtodos pudiramos clasificarlos en: 1.Manuales 2.Tablas de Biblioteca 3.Generadores Analgicos 4.Generadores Digitales 5.Mtodos de Recurrencia o Congruenciales

Simulacin
Unidad II: Nmeros pseudoalealeatorios Generacin de nmeros aleatorios

Los mtodos recurrentes son muchos, pero aqu analizaremos solamente 5 mtodos, el primero de ellos, solamente por su trascendencia histrica al ser el pionero en la generacin de nmeros aleatorios con esta tcnica. El resto SI se analizarn ms a detalle.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo de los cuadrados medios Este mtodo fue planteado por Von Neumann en 1950. Se basa en tomar un nmero, elevarlo al cuadrado y tomar los dgitos del centro como nuevo nmero, luego repetir el procedimiento.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo de los cuadrados medios Procedimiento: 1.Seleccionar un valor para semilla (no) entero, positivo, con e dgitos par 2.Elevar al cuadrado no, completar con ceros a la izquierda del nmero hasta tener 2*e dgitos, seleccionar los e dgitos centrales del nmero como ni 3.Calcular ni

ri =

10

4.Repetir 2 y 3 tantas veces como sea necesario.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Ejemplo: Suponga que se desean generar nmeros aleatorios por el mtodo de los cuadrados medios con 1111 como semilla.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo Multiplicativo Procedimiento: 1.Seleccionar un valor para semilla (no) entero, positivo, impar, no divisible por 5 y con e dgitos par. 2.Seleccionar un valor para cercano a 10e/2 a partir de = 200tp Donde: t = cualquier nmero entero (- ) p = un nmero primo (vase el apndice A) 3.Calcular ni = ni-1 utilizando aritmtica entera (es decir, seleccionando los e dgitos del lado derecho del nmero).

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo Multiplicativo 4.Calcular

ni ri = e 10

5.Repetir 2 y 3 tantas veces como sea necesario o hasta que se repita la serie. h 5 x 10e-2 Donde h representa la longitud de serie (es decir, la cantidad de nmeros que se pueden generar hasta antes de que se repita uno de ellos, en cuyo caso se repetir la serie)

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Ejemplo: Suponga que se desean generar nmeros aleatorios por el mtodo multiplicativo con 1111 como semilla. n0 = 1111; e = 4 (pues tiene 4 dgitos) Para seleccionar , lo primero que se debe hacer es calcular 10e/2, que para este ejemplo es 104/2 = 102 = 100. Es decir, se debe seleccionar un valor para cercano a 100 pero a partir de la ecuacin = 200t p.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Como p es un nmero primo, es imposible obtener un valor de 100, pues al sumar o restar un nmero primo (que siempre es impar, a excepcin del nmero 2), el resultado siempre ser un nmero impar. Entonces el objetivo es encontrar un valor de 99 o de 101, que es el impar ms cercano a 100. Ahora bien, como t es cualquier valor entero y al no poder saber cul es, entonces se considera primero el valor 0 (cero), pues es la mitad del intervalo dado para t.

Simulacin Por lo tanto, si t = 0, entonces = 200(0) p = p = + 101, pues el 99 no es nmero primo. Como ya se sabe que no se puede mejorar el valor, se selecciona = 101. El resto de los clculos aparecen en la siguiente tabla: ni (aritm. I ni-1 ri = ni/10e entera) 1 1111*101 = 112211 2211 0.2211 2 2211*101 = 223311 3 3311*101 = 334411 4 4411*101 = 445511 3311 4411 5511 0.3311 0.4411 0.5511
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

De hecho, el proceso se repite tantas veces sea necesario generar nmeros aleatorios o hasta que se repita la serie, que para este ejemplo, debe ser aproximadamente en el quinientosavo nmero aleatorio (h 5 x 10e-2 = 5 x 104-2 = 5 x 10 2 = 500)

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo aditivo 1.Generar una tabla de k nmeros enteros positivos (k 10 e 3) 2.Sumar el ltimo elemento de la tabla con el primero, generando de esta manera ni (utilizando aritmtica entera) ni 3.Calcular r =
i

10

4.Sumar el ni generado con el segundo nmero de la tabla y as sucesivamente En este caso, h tiende a ser , pues podr repetirse un nmero, pero nunca se repite la serie completa.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Ejemplo: Suponga que se genera la tabla con 10 elementos siguientes por el mtodo de los cuadrados medios (aunque puede usarse cualquiera de los mtodos para generar nmeros aleatorios para generar esta tabla. Por lo tanto, k = 10

i 1 2 3 4 5 6 7 8 9 10

Nmero 2343 4896 9708 2452 0123 0151 0228 0519 2693 2522

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Ahora se suma el ltimo elemento en la tabla con el primero de la tabla para generar ni, y repetimos el proceso hasta generar 15 nmeros aleatorios (aunque pueden ser los que se deseen), como se muestra en la tabla siguiente: i 1 2 3 4 5 Suma 2522 + 2343 = 4865 4865 + 4896 = 9761 9761 + 9708 = 19469 9469 + 2452 = 11921 1921 + 0123 = 2044 ni 4865 9761 9469 1921 2044 ri = ni/10e 0.4865 0.9761 0.9469 0.1921 0.2044

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

i 6 7 8 9 10 11 12 13 14 15

Suma 2044 + 0151 = 2195 2195 + 0228 = 2423 2423 + 0519= 2942 2942 + 2693 = 5635 5635 + 2522 = 8157 8157 + 2343 = 10500 0500 + 4896 = 5396 5396 + 9708 = 15104 5104 + 2452 = 7556 7556 + 0123 = 7679

ni 2195 2423 2942 5635 8157 0500 5396 5104 7556 7679

ri = ni/10e 0.2195 0.2423 0.2942 0.5635 0.8157 0.0500 0.5396 0.5104 0.7556 0.7679

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Como podr observarse, a pesar de que se usan siempre los mismos valores de la tabla, los nmeros aleatorios resultantes son diferentes, con lo cual se comprueba que la serie, para el mtodo aditivo, tiende a ser infinita.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo mixto 1.Seleccionar un valor para semilla (no) entero, positivo y con e 3. 2.Seleccionar un valor para c entero, positivo, impar y con nmero de dgitos menor o igual a e 3.Seleccionar un valor para cercano a 10e/2 + 1 4.Calcular ni = ni-1 + c utilizando aritmtica entera 5.Calcular ni ri = e 10 6.Repetir 4 y 5 tantas veces como sea necesario o hasta que se repita la serie. h 5 x 10e-2

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Ejemplo: Suponga que se desean generar nmeros aleatorios por el mtodo aditivo con un valor de n0 = 222 y con un valor para c = 25. Como la semilla tiene 3 dgitos, e = 3; por lo que 10e/2 = 103/2 = 31.62. Por lo tanto, = 33 El resto de los clculos aparecen en la siguiente tabla.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

I 1 2 3 4

ni-1 + c 222*33 + 25 = 7351 351*33 + 25 = 11608 608*33 + 25 = 20089 089*33 + 25 = 2962

ni (aritm. entera) 351 608 089 962

ri = ni/10e 0.351 0.608 0.089 0.962

De hecho, el proceso se repite tantas veces sea necesario generar nmeros aleatorios o hasta que se repita la serie, que para este ejemplo, debe ser aproximadamente en el cincuentavo nmero aleatorio (h 5 x 10e-2 = 5 x 103-2 = 5 x 10 1= 50)

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Mtodo combinado 1.Generar una tabla de k nmeros enteros positivos (k 10 e 3) 2.Generar un ndice j (1 j k) generado a partir de

j = int(rnd * (k - 1) + 1.5)
3.Seleccionar el j-simo elemento de la tabla como ni 4.Reemplazar el ni seleccionado por uno nuevo. 5.Calcular ni ri = e 10 6.Repetir 2, 3, 4 y 5 tantas veces como sea necesario generar nmeros aleatorios

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

En este caso, la longitud de serie (h) tiende a ser infinita, al igual que en el mtodo aditivo, pues podr repetirse un nmero, pero nunca se repite la serie completa. Ejemplo: Suponga que se genera la tabla con 10 elementos siguientes por el mtodo de los cuadrados medios (aunque puede usarse cualquiera de los mtodos para generar nmeros aleatorios para generar esta tabla. Por lo tanto, k = 10.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

El resto del clculo aparece en la siguiente tabla. Nota: los nmeros aleatorios (rnd) que aparecen en la tabla, fueron calculados a partir de los nmeros aleatorios generados por el mtodo aditivo. i 1 2 3 4 5
j = int(rnd * (k - 1) + 1.5)

J = int(0.4895*9 + 1.5) = 5 J = int(0.9791*9 + 1.5) = 10 J = int(0.9499*9 + 1.5) = 10 J = int(0.1951*9 + 1.5) = 3 J = int(0.2074*9 + 1.5) = 3

ni 0123 2522 9888 9708 6756

ri = ni/10e 0.0123 0.2522 0.9888 0.9708 0.6756

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.1 Mtodos de generacin de nmeros pseudoaleatorios.

i 6 7 8 9 10 11

j = int(rnd

* (k - 1) + 1.5)

J = int(0.2225*9 + 1.5) = 3 J = int(0.2453*9 + 1.5) = 3 J = int(0.2972*9 + 1.5) = 4 J = int(0.5665*9 + 1.5) = 6 J = int(0.8187*9 + 1.5) = 8

ni 6435 4092 2452 0151 0519

ri = ni/10e 0.6435 0.4092 0.2452 0.0151 0.0519

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

En esta seccin se describen 2 de las pruebas estadsticas que se aplican a los nmeros pseudoaleatorios generados por cualquiera de los mtodos anteriores; en la primera de ellas, se tratar de verificar la hiptesis de que los nmeros generados provienen de la distribucin uniforme en el intervalo cerrado [0,1], en la segunda de ellas, se aplicar la prueba de corrida, misma que sirve para verificar que los nmeros son efectivamente aleatorios. A continuacin se detallan ambas pruebas:

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Prueba de Kolmogorov-Smirnov Esta prueba sirve para verificar o negar la hiptesis que un conjunto de observaciones provienen de una determinada distribucin. La estadstica D que se utiliza en esta prueba es una medida de la diferencia mxima observada entre la distribucin emprica (dada por las observaciones) y la terica supuesta. La estadstica D es obviamente una variable aleatoria. A continuacin se detalla cmo se utiliza esta prueba para verificar o negar que un conjunto de nmeros pseudoaleatorios tiene una distribucin uniforme en el intervalo cerrado [0, 1].

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Paso 1. Se formula la hiptesis, H0 de que los nmeros provienen de una distribucin uniforme en el intervalo cerrado [0, 1]. Paso 2. Se selecciona una muestra de tamao n de nmeros pseudoaleatorios generados (Knuth recomienda n = 1000). Sea Fn (X), de la siguiente manera: Paso 3. Calcule la funcin de distribucin acumulada emprica, Fn (x), de la siguiente manera: Ordene los valores de la secuencia, tal que Xi Xi+1 para toda i.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Haga Fn(0)= 0 y Fn (Xi)=i/n, i=l,2,...,n. Paso 4. Evale la estadstica de Kolmogorov-Sminov, D, a partir de D = Mx|Fn(Xi)-Xi|, 0<Xi< 1. Paso 5. Consulte la tabla de lmites aceptables para la prueba de Kolmogorov-Smirnov, para un tamao de muestra n y un determinado nivel de riesgo (ver apndice B). Si D es menor o igual a este nmero se acepta HQ; de otra manera se rechaza HQ.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Ejemplo.
De una tabla de nmeros aleatorios se eligen los siguientes 50 (divididos entre 100 para que su valor oscile entre 0 y 1). 0.10 0.37 0.08 0.99 0.12 0.66 0.31 0.85 0.63 0.73 0.32 0.04 0.68 0.02 0.99 0.74 0.10 0.77 0.32 0.42 0.76 0.64 0.19 0.09 0.80 0.34 0.45 0.02 0.05 0.03 0.13 0.74 0.09 0.70 0.36 0.76 0.82 0.65 0.74 0.64 0.34 0.24 0.23 0.38 0.64 0.36 0.35 0.68 0.90 0.35

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Se desea probar la hiptesis H0: Provienen de una distribucin uniforme en [0, 1] , a un nivel de significancia del 90%.

1 0.02 11 0.12 21 0.35 31 0.64 41 0.74 2 0.02 12 0.13 22 0.36 32 0.65 42 0.77 3 0.03 13 0.19 23 0.36 33 0.66 43 0.80 4 0.04 14 0.23 24 0.37 34 0.68 44 0.82 5 0.05 15 0.24 25 0.38 35 0.68 45 0.85 6 0.08 16 0.31 26 0.42 36 0.70 46 0.90 7 0.09 17 0.32 27 0.45 37 0.70 47 0.94 8 0.09 18 0.34 28 0.63 38 0.73 48 0.97 9 0.10 19 0.34 29 0.64 39 0.74 49 0.99 10 0.10 20 0.35 30 0.64 40 0.74 50 0.99

Paso 2. Se arregla la
tabla anterior para que se cumpla la condicin X Xi+1 para toda i.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Paso 3. Se construye Fn (X) para toda i siendo n = 50.


Fn (0.00) = 0.00 Fn (0.12) = 0.22 Fn (0.36) = 0.43 Fn (0.65) = 0.64 Fn (0.85) = 0.90 Fn (0.02) = 0.04 Fn (0.13) = 0.24 Fn (0.37) = 0.48 Fn (0.66) = 0.66 Fn (0.90) = 0.92 Fn (0.03) = 0.06 Fn (0.19) = 0.26 Fn (0.38) = 0.50 Fn (0.68) = 0.70 Fn (0.94) = 0.96 Fn (0.04) = 0.08 Fn (0.23) = 0.28 Fn (0.42) = 0.52 Fn (0.70) = 0.74 Fn (0.97) = 0.98 Fn (0.05) = 0.10 Fn (0.24) = 0.30 Fn (0.45) = 0.54 Fn (0.73) = 0.76 Fn (0.99) = 1.00 Fn (0.08) = 0.12 Fn (0.31) = 0.32 Fn (0.63) = 0.56 Fn (0.74) = 0.82 Fn (0.09) = 0.16 Fn (0.32) = 0.34 Fn (0.64) = 0.62 Fn (0.77) = 0.84 Fn (0.10) = 0.20 Fn (0.34) = 0.38 Fn (0.35) = 0.42 Fn (0.80) = 0.86 Fn (0.82) = 0.88

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Paso 4.
D = MxFn(Xi)-Xi = 0.12 que ocurre para Fn (.38).

Paso 5. Para un nivel de significancia del 90% y una


muestra de 50 nmeros se tiene del apndice B, un valor 0.172. Como D < 0.172 se acepta HQ: Los 50 nmeros si provienen de una distribucin uniforme en el intervalo cerrado [0, 1].

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Prueba de Corrida Una corrida se define como un conjunto de nmeros que aparecen ordenados en forma monotnicamente creciente o decreciente. Por ejemplo: 03, 23, 57, 92, 99 contiene una sola corrida, mientras que 03, 99, 23, 92, 57 contiene 3 corridas: (03, 99), (23, 92), (57). Si se utiliza el signo (+) para identificar que el nmero que aparece a la derecha de otro que es mayor, o (-) si es menor, se tiene que: 03, 10, 23, 57, 92, 99 +, +, +, +, + mientras que 03,99,23,92,57 +,-,+,-.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Esta prueba se basa en el supuesto que el nmero de corridas es una variable aleatoria. Se ha demostrado que si una secuencia tiene ms de 20 nmeros, el nmero de corridas es una variable aleatoria distribuida normalmente con media y variancia conocida. La prueba se realiza de la siguiente manera:

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Paso 1. Se formula la hiptesis Ho: La secuencia de nmeros es aleatoria. Paso 2. Se selecciona una muestra de tamao n (n > 20). Paso 3. Se definen con los signos (+) y (-) las posibles corridas. Paso 4. Se define a la estadstica r como el nmero de corridas.

Simulacin
Unidad II: Nmeros pseudoalealeatorios 2.2 Pruebas estadsticas de aleatoriedad.

Paso 5. Si n > 20 y Ho es verdadera, entonces r se aproxima a una distribucin normal con media

y varianza

Paso 6. Se acepta Ho, a un nivel de riesgo , si

Donde Z(.) se encuentra tabulada en la distribucin normal (ver apndice C)

S-ar putea să vă placă și