Documente Academic
Documente Profesional
Documente Cultură
EN SISTEMA COMPUTACIONALES
0.5335 0.7179 0.9023 0.2604 0.2240 0.3781 0.5688 0.6903 0.1936 0.5695
0.5038 0.4072 0.5103 0.3481 0.5422 0.5031 0.5203 0.4945 0.6464 0.6270
0.9541 0.6382 0.2916 0.4492 0.0369 0.0733 0.4417 0.3127 0.6810 0.1933
0.0434 0.4754 0.5705 0.7434 0.2058 0.3605 0.6001 0.9312 0.2984 0.8738
0.5995 0.4203 0.3670 0.2079 0.2594 0.0845 0.0001 0.3360 0.5253 0.6813
0.0498 0.4667 0.5003 0.8610 0.4667 0.8969 0.4396 0.8717 0.5659 0.3035
0.8032 0.4948 0.2147 0.6582 0.8803 0.0483 0.6957 0.4425 0.4143 0.3791
0.8577 0.0961 0.5331 0.8971 0.2755 0.8875 0.4918 0.3523 0.4194 0.3926
0.0388 0.6174 0.7133 0.7643 0.4341 0.5444 0.5824 0.3431 0.0864 0.8208
0.1401 0.0876 0.8729 0.9849 0.5941 0.9867 0.8309 0.8541 0.6122 0.5000
0.2347 0.8015 0.4857 0.6914 0.2880 0.9071 0.8877 0.2237 0.7562 0.9944
0.6000
0.5000 0.4000
estabilidad
0.3000
0.2000 0.1000
0.0000
1
2 3 4 5 6 7 8 montoro@usal.es
10
Subtemas
2.1 Nmeros aleatorios definicin y propiedades 2.2 Tcnicas para generar nmeros aleatorios 2.2.1 Mtodos de Centros al Cuadrado 2.2.2 Mtodos de Congruencia: Multiplicativo y Mixto. 2.3 Pruebas de Aleatoriedad
Nmeros Aleatorios
Para poder realizar una simulacin que incluya variabilidad dentro de sus eventos, es preciso generar una serie de nmeros que sean aleatorios por s mismos, y que su variabilidad se extrapole al modelo de simulacin que se est construyendo. En la construccin del modelo los nmeros aleatorios juegan un papel relevante.
Nmeros Aleatorios
Una de las primeras tareas que es necesario llevar a cabo consiste en determinar si los nmeros que utilizaremos para correr o ejecutar la simulacin son realmente aleatorios o no; por desgracia, precisar lo anterior con absoluta certidumbre resulta muy complicado, ya que para ello tendramos que generar un nmero infinito de valores que nos permitiera comprobar la inexistencia de correlaciones entre ellos. Esto sera muy costoso y tardado, volviendo imprctico el uso de la simulacin.
Nmeros Aleatorios
A pesar de lo anterior, podemos asegurar con altos niveles de confiabilidad que el conjunto de nmeros que utilizaremos en una simulacin se comportan de manera muy similar a un conjunto de nmeros totalmente aleatorios; por ello es que se les denomina nmeros pseudo aleatorios. Casi todas las aplicaciones comerciales tienen varios generadores de nmeros pseudo aleatorios que pueden generar un conjunto muy grande de nmeros sin mostrar correlacin entre ellos.
Los ri constituyen la parte medular de la simulacin de procesos estocsticos, y generalmente se usan para generar el comportamiento de variables aleatorias, tanto continuas como discretas. Debido a que no es posible generar nmeros realmente aleatorios, consideramos los ri como nmeros seudo aleatorios, generados por medio de algoritmos determinsticos que requieren parmetros de arranque.
Para simular el comportamiento de una o ms variables es necesario contar con un conjunto suficientemente grande de ri que permita, por ejemplo, que la secuencia tenga al menos un periodo de vida de n = 2^31= 2 147 483 648 o ciclo de vida de n = 2^62. En la actualidad ya se cuenta con generadores y procesadores capaces de construir una secuencia de ri que contenga un ciclo de vida de n = 2^200.
Probablemente usted se preguntar por qu debe interesarnos construir una secuencia de nmeros ri suficientemente grande. A continuacin ilustraremos la razn mediante un ejemplo.
Ejemplo Supongamos que queremos simular el tiempo de atencin a clientes en un banco que tiene cinco cajeros en paralelo, cada uno de los cuales atiende aproximadamente 50 clientes.
Salidas
Para simular el tiempo de atencin se requiere un generador de variable aleatoria en funcin de ri, por ejemplo Ti = 5 + 2ri, expresado minutos para toda i=1, 2, 3, ... , n.
Si simulamos el tiempo de atencin de manera aislada, es decir, sin considerar el tiempo transcurrido desde la llegada de stos, sern necesario 5 X 50 = 250 nmeros ri para simular un da; si deseramos simular 5 das se necesitaran 250 X 5 = 1250 ri. Ahora bien, si consideramos el tiempo desde la llegada de los clientes, precisaramos de 250 ri para simular el tiempo transcurrido desde la llegada al banco de los 250 clientes por da, y 250 X 5 = 1250 ri para simular el correspondiente al total de clientes atendidos durante 5 das. Por lo tanto se requerirn 2500 nmeros pseudoaleatorios ri para simular la operacin del banco durante 5 das.
Como los resultados no pueden basarse en una simulacin del sistema, es necesario realizar varias rplicas de la misma, corriendo cada una de ellas con nmeros pseudo aleatorios diferentes. Retomando el ejemplo del banco, simular 5 das otra vez significa que necesitamos otros 2500 nmeros pseudo aleatorios en el intervalo (0, 1). En consecuencia, se requieren 5 000 ri para realizar la simulacin de atencin a clientes con dos replicas.
El lector podr imaginar cuntos nmeros ri sern necesarios para simular la operacin del banco durante un ao con 9 rplicas, o cuantos nmeros ri se requieren para simular un sistema productivo durante un ao, con varias lneas de produccin, y cada lnea de produccin con varias estaciones, y cada estacin con uno o ms procesos.
Dada la importancia de contar con un conjunto de ri suficientemente grande, se presentan diferentes algoritmos determinsticos para obtenerlo. Por otra parte, es conveniente sealar que el conjunto de ri debe ser sometido a una variedad de pruebas estadsticas para verificar si los nmeros que lo conforman son realmente independientes y uniformes. Una vez generado el conjunto ri mediante un algoritmo determinstico, es necesario someterlo a las pruebas estadsticas: si la supera podr utilizarse en la simulacin; de lo contrario, simplemente debemos desecharlo.
Un conjunto de ri debe seguir una distribucin uniforme continua, la cual est definida por:
1, f(r) = 0, en cualquier otro valor 0 r 1
Generar un conjunto de ri es una tarea relativamente sencilla, para ello, el lector slo tiene que disear su propio algoritmo de generacin.
Lo que resulta difcil es disear un algoritmo que genere un conjunto de ri con periodo de vida suficientemente grande (N), y que adems pase sin problema las pruebas de uniformidad e independencia, lo cual implica evitar problemas como stos:
Que los nmeros del conjunto ri no estn uniformemente distribuidos, es decir que haya demasiados ri en un subintervalo y en otro muy pocos o ninguno. Que los nmeros ri generados sean discretos en lugar de continuos. Que la media del conjunto sea muy alta o muy baja, es decir, que se est por arriba o por debajo de . Que la varianza del conjunto sea muy alta o muy baja, es decir , que se localice por arriba o por debajo del .
En ocasiones se presentan anomalas con nmeros ri seguidos por arriba o por debajo de la media; secuencia de ri por arriba de la media, seguida de una secuencia por debajo de la media, y viceversa, o varios ri seguidos en forma ascendente o descendente
i) Cuadrados medios 1) No congruenciales ii) Productos medios iii) Multiplicador constante Algoritmos
i) Lineal
A)Lineales ii) Multiplicativo
Nota: Si no es posible obtener los D dgitos del centro del nmero Yi, agregue ceros a la izquierda del nmero Yi.
Nota: Si no es posible obtener los D dgitos del centro del nmero Yi, agregue ceros a la izquierda del nmero Yi.
Ejemplo 2.1 Generar los primeros nmeros ri a partir de una semilla X0 = 5 735, de donde se puede observar que D = 4 dgitos.
Y0 = (5 735)2 = 32 890 225 Y1 = (8 902)2 = 79 245 604 Y2 = (2 456)2 = 06031936 Y3 = (0319)2 = 101 761 Y4 = (0176)2 = 030976 X1 = 8902 X2 = 2456 X3 = 0319 X4 = 0176 X5 = 3097 r1= 0.8902 r2= 0.2456 r3 = 0.0319 r4 = 0.0176 r5 = 0.3097
Nota: El algoritmo de cuadrados medios generalmente es incapaz de generar una secuencia de ri con periodo de vida n grande. Adems, en ocasiones slo es capaz de generar un nmero, por ejemplo, si X0 = 1000, entonces X1 = 0000; ri = 0.0000 y se dice que el algoritmo se genera con semilla de X0 = 1000.
1. Seleccionar una semilla (X0) con D dgitos (D>3). 2. Seleccionar una semilla (X1) con D dgitos (D>3). 3. Sea Y0 = X0*X1; sea X2 = los D dgitos del centro, y sea ri = 0.D dgitos del centro para toda i = 1, 2, 3, , n 4. Sea Yi = Xi * Xi+1; sea Xi+2 = los D dgitos del centro, y sea ri+1 = 0.D dgitos del centro para toda i = 1, 2, 3, , n. 5. Repetir el paso 4 hasta obtener los n nmeros ri deseados .
ii) Algoritmo de productos medios Nota: Si no es posible obtener los D dgitos del centro del nmero Yi, agregue ceros a la izquierda del nmero Yi. Ejemplo 2.2 Generar los primeros 5 nmeros ri a partir de las semillas X0 = 5 015 y X1 = 5 734; observar que ambas semillas tienen D = 4 dgitos.
Y0 = (5 015)(5 734) = 28 756 010 Y1 = (5 734)(7 560) = 43 349 040 Y2 = (7 560)(3 490) = 26 384 400 Y3 = (3 490)(3 844) = 13 415 560 Y4 = (3 844)(4 155) = 15 971 820 X2 =7560 X3 = 3490 X4 = 3844 X5 = 4155 X6 = 9718 r1= 0.7560 r2= 0.3490 r3 =0.3844 r4 =0.4155 r5 =0.9718
iii) Algoritmo de multiplicador constante Nota: Si no es posible obtener los D dgitos del centro del nmero Yi, agregue ceros a la izquierda del nmero Yi. Ejemplo 3. Mecnica del algoritmo de multiplicador constante Genere los primeros 5 nmeros ri a partir de la semilla X0 = 9803 y la constante a=6965. Observe que tanto la semilla como la constante tienen D=4 dgitos.
iii) Algoritmo de multiplicador constante Genere los primeros 5 nmeros ri a partir de la semilla X0 = 9803 y la constante a=6965. Observe que tanto la semilla como la constante tienen D=4 dgitos.
Y0 = (6 965)(9 803) = 68 277 895 Y1 = (6 965)(2 778) = 19 348 770 Y2 = (6 965)(3 487) = 24 286 955 Y3 = (6 965)(2 869) = 19 982 585 Y4 = (6 965)(9 825) = 68 431 125 X1 = 2778 X2 = 3487 X3 = 2869 X4 = 9825 X5 = 4311 r1= 0.2778 r2= 0.3487 r3 =0.2869 r4 =0.9825 r5 =0.4311
i = 0, 1, 2, 3, , n
X0, a, c, m 0; enteros
Aqu, mod representa a la operacin aritmtica mdulo entre los enteros a y b tal que el recultado de (a mod b) es el residuo entre la divisin a entre b. Poe ejemplo, 16 mod 3 es igual a 1, ya que: 5 1
Residuo entero de la divisin
Ejemplo 4. Mecnica del algoritmo congruencial lineal Generar 4 nmeros entre 0 y 1 con los siguientes parmetros: X0 = 37, a = 19, c = 33 y m = 100.
Gnerador X1 = (19*37 + 33)mod(100) X2 = (19 * 36 + 33)mod(100) X3 = (19 * 17 +33)mod(100) X4 = (19 * 56 +33)mod(100) X5 = (19 * 97 + 33)mod(100)
Divisin real 736/100 = 7 + 36/100 717/100 = 7 + 17/100 356/100 = 3 + 56/100 1097/100 = 10 + 97/100 1876/100 = 18 + 76/100
No. Aleatorio Xi X1 = 7 X2 = 7 X3 = 3 X4 = 10 X5 = 18
No. Aleatorio ri r1 = 36/99 = 0.36 r2 = 17/99 = 0.17 r3 = 56/99 = 0.56 r4 = 97/99 = 0.97 r5 = 76/99 = 0.76
En el ejemplo se colocaron de manera arbitraria cada uno de los parmetros requeridos: X0, a, c, m. Sin embargo, para que el algoritmo sea capaz de lograr el mximo periodo de vida n, es preciso que dichos parmetros cumplan ciertas condiciones. Banks, Carson, Nelson y Nicol sugieren lo siguiente:
En el ejemplo se colocaron de manera arbitraria cada uno de los parmetros requeridos: X0, a, c, m. Sin embargo, para que el algoritmo sea capaz de lograr el mximo periodo de vida n, es preciso que dichos parmetros cumplan ciertas condiciones. Banks, Carson, Nelson y Nicol sugieren lo siguiente: m = 2 exp(g) a = 1 + 4k k debe ser entero c relativamente primo a m g debe ser entero Bajo estas condiciones se obtiene un periodo de vida mximo: N = m = 2 exp(g).
Ejemplo 5. Generar suficientes nmeros enteros entre 0 y 1 con los parmetros X0 = 6, k = 3, g=3 y c=7 Hasta encontrar el periodo de vida mximo (N). Si se cumplen las condiciones de Banks, Carson, Nelson y Nicol, se lograr el periodo mximo de N = m = 8. A continuacin se presenta el desarrollo de la generacin de los nmeros ri.
Gnerador X0 = 6 X1 = (13*6 + 7)mod(8) X2 = (13 * 5 + 7)mod(8) X3 = (13 * 0 +7)mod(8) X4 = (13 * 7 +7)mod(8) X5 = (13 * 2 + 7)mod(8) X6 = (13 * 1 + 7)mod(8) X7 = (13 * 4 + 7)mod(8) X8 = (13 * 3 + 7)mod(8) Divisin real 85/8 = 10 + 5/7 72/8 = 9 + 0/7 7/8 = 0 + 7/7 98/8 = 12 + 2/7 33/8 = 4 + 1/7 20/8 = 2 + 4/7 59/8 = 7 + 3/7 46/8 = 5 + 6/7 No. Aleatorio Xi X1 = 10 X2 = 9 X3 = 0 X4 = 12 X5 = 4 X6 = 2 X7 = 7 X8 = 5 No. Aleatorio ri r1 = 5/7 = 0.714 r2 = 0/7 = 0.00 r3 = 7/7 = 1.00 r4 = 2/7 = 0.285 r5 = 1/7 = 0.142 r6 = 4/7 = 0.571 r7 = 3/7 = 0.428 r8 = 6/7 = 0.857
Es importante mencionar que el nmero generado en X8 = 6 es exactamente igual a la semilla X0, y si continuramos generando ms nmeros, stos se repetiran.
De acurdo con Banks, Carson, Nelson y Nicol, las condiciones que deben cumplir los parmetros para que el algoritmo congruencial multiplicativo alcance su mximo periodo son: m = 2 expo g a = 3 + 8k o a = 5 + 8k k = 0, 1, 2,3, X0 debe ser un nmero impar g debe ser entero A partir de estas condiciones se logra un periodo mximo N = k/4 = 2 exp (g-2)
Ejemplo 6 Generar nmeros entre 0 y 1 con los siguientes parmetros: X0 = 17, k = 2 y g = 5, hasta encontrar el periodo o ciclo de vida.
Gnerador X0 = 17 X1 = (21*17) mod(32) X2 = (21 * 5 )mod(32) X3 = (21 * 9)mod(32) X4 = (21 * 29)mod(32) X5 = (21 * 1)mod(32) X6 = (21 * 21)mod(32) X7 = (21 * 25)mod(32) X8 = (21 * 13)mod(32) Divisin real 357/31 = 11 + 5/31 105/31 = 3 + 9/31 189/31 = 5 + 29/31 609/31 = 19 + 1/31 21/31 = 0 + 21/31 441/31 = 13 + 25/31 525/31 = 16 + 13/31 273/31 = 8 + 17/31 No. Aleatorio Xi X1 = 11 X2 = 3 X3 = 5 X4 = 19 X5 = 0 X6 = 13 X7 = 16 X8 = 8 No. Aleatorio ri r1 = 5/31 = 0.1612 r2 = 9/31 = 0.2903 r3 = 29/31 = 0.9354 r4 = 1/31 = 0.3225 r5 = 21/31 = 0.6774 r6 = 25/31 = 0.8064 r7 = 13/31 = 0.4193 r8 = 17/32 = 0.5483
Observacin: Toda vez que la semilla X0 se repite, volver a generarse los mismos nmeros. Por lo tanto, el periodo de vida es n=8, el cual corresponde a N =m/4 = 32/4=8
ri = Xi/(m-1)
Gnerador X6 = (X5 + X1) mod(100) X7 = (X6 + X2) mod(100) X8 = (X7 + X3) mod(100) X9 = (X8 + X4) mod(100) X10 = (X9 + X5) mod(100) X11 = (X10 + X6) mod(100) X12 = (X11 + X7) mod(100)
No. Aleatorio Xi 34 23 21 24 93 27 50
No. Aleatorio ri r1 = 34/99 = 0.3434 r2 = 23/99 = 0.2323 r3 = 21/99 = 0.2121 r4 = 24/99 = 0.2424 r5 = 93/99 = 0.9393 r6 = 27/99 = 0.2727 r7 = 50/99 = 0.5050
siguiente
ecuacin
Ejemplo 8.
Generar, a partir del algoritmo congruencial cuadrtico, suficientes nmeros enteros hasta alcanzar el periodo de vida, considerando los parmetros X0 = 13, m = 8, a = 26, b = 27 y c = 27.
Gnerador X1 = [(26*13^2)+(27*13)+27] mod(8) X2 = [(26*4^2)+(27*4)+27] mod(8) X3 = [(26*7^2)+(27*7)+27] mod(8) X4 = [(26*2^2)+(27*2)+27] mod(8) X5 = [(26*1^2)+(27*1)+27] mod(8) X6 = [(26*0^2)+(27*0)+27] mod(8) X7 = [(26*3^2)+(27*3)+27] mod(8) X8 = [(26*6^2)+(27*6)+27] mod(8) X9 = [(26*5^2)+(27*5)+27] mod(8)
Divisin real 4 7 2 1 0 3 6 5 4
No. Aleatorio ri r1 = 4/7 = 0.5714 r2 = 7/7 = 1.000 r3 = 2/7 = 0.2857 r4 = 1/7 = 0.1429 r5 = 0/7 = 0.0000 r6 = 3/7 = 0.4286 r7 = 6/7 = 0.8571 r8 = 5/7 = 0.7143 r9 = 4/7 = 0.5714
Si el algoritmo congruencial cuadrtico a=1, b=0 y c=0, entonces se construye una nueva ecuacin recursiva:: Xi+1 = (Xi ^2) mod(m) i = 0, 1, 2, 3, ,N
La ecuacin fue propuesta por Blum, Blum y Shub como un nuevo mtodo para generar nmeros que no tienen un comportamiento predecible.
Actividad en clase: Genere ud. Suficientes nmeros aleatorios aplicando el algoritmo lineal cuadrtico hasta alcanzar el periodo de vida, considerando X0 su da de nacimiento y m su mes de cumpleaos.
Por lo tanto, el valore esperado (es decir, la media de los nmeros aleatorios entre 0 y 1 es = 0.5
Por lo tanto
Dado estos resultados podemos decir que los nmeros aleatorios entre 0 y 1 deben tener y
Propidades de los nmeros pseudoaleatorios entre 0 y 1 3. Independencia. sta es una propiedad muy importante, e implica que los nmeros aleatorios no deben tener correlacin entre si; es decir, deben ser independientes, de manera que puedan dispersarse uniformemente dentro de todo el espectro de valores posibles.
0.5068
Promedio Varianza
0.5068 0.07906