Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alea T 0405
Alea T 0405
Lenguajes de simulacin
2004-2005
Lenguajes de simulacin
2004-2005
DEF 3: Un Nmero aleatorio es una realizacin de una variable aleatoria que tiene asociada una ley de probabilidades F.
Obs: Una particular ley de Probabilidad base para la generacin de nmeros pseudoaleatorios u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1).
Lenguajes de simulacin
DEF 4: Una sucesin de nmeros aleatorios generados {u1, u2,..., un} es una sucesin de nmeros U(0;1), si tiene las mismas propiedades estadsticas relevantes que dicha sucesin de nmeros aleatorios reales.
2004-2005
Existe una gran nmero de mtodos para generar {ui} U(0,1) : -Uniformente distribuidos - Independientes - E[U]= ; V[U]= 1/12 - Perodo largo
Lenguajes de simulacin
2004-2005
Lenguajes de simulacin
2004-2005
Mtodos de generacin
Existen varios mtodos para la generacin de nmeros aleatorios como: 1.- Mtodo de los cuadrados medios 2.- Mtodos de Congruencias Todo proceso de generacin consta de tres fases: [Semilla - Algoritmo - Validacin] P1 : Obtener semilla (valores iniciales) P2 : Aplicacin de algn algoritmo de generacin recursivo P3 : Validacin del conjunto de nmeros generados (Pruebas de Aleatoriedad)
Lenguajes de simulacin
2004-2005
2004-2005
Teorema1: Un generador de congruencias lineales mixto tiene periodo total si y solo si se cumplen las condiciones siguientes: El nico entero positivo que divide exactamente a m y a c es 1 (m y c son primos entre si). Si q es un nmero primo que divide a m, entonces q divide a (a-1). Si 4 divide a m, entonces 4 divide a (a-1).
(1) Planteado por HULL, T. E.; DOBELL, A. R. Random number generators. SIAM Rev. 4 (1962).
Lenguajes de simulacin 2004-2005
Lenguajes de simulacin
2004-2005
Las races primitivas son 2, 6, 7 y 8. Los nmeros generado por 2 y 6 son iguales pero en sentido contrario. Lo mismo ocurre con los generados por 7 y 8. Este tipo de relaciones se producen generalmente en generadores multiplicativos.
Lenguajes de simulacin
2004-2005
Para una potencia de 2, m = 2l y c = 0 el periodo posible ms grande es P = m/4 = 2l-2 que se consigue en el caso en que la semilla es impar y el multiplicador a est dado por 3 + 8k donde k es un entero.
Lenguajes de simulacin 2004-2005
Caso 1 2 3 4 5
a 6 7 5 7 6
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 5
Lenguajes de simulacin
2004-2005
Lenguajes de simulacin
2004-2005
Lenguajes de simulacin
2004-2005
Generadores de Tausworthe
En este caso se deben proporcionar los primeros q bits, lo que es anlogo a la semilla de los generadores de congruencias lineales. Este tipo de generador depende del largo de la palabra Ejemplo: r=3 q = 5 con b1 = b2 = b3 = b4 = b5 = 1 para i 6 bi = (bi-3 + bi-5) mdulo 2 b6 = (b3 + b1) mod 2 = 2 mod 2 = 0 b7 = (b4 + b2) mod 2 = 2 mod 2 = 0 b8 = (b5 + b3) mod 2 = 2 mod 2 = 0 b9 = (b6 + b4) mod 2 = 1 mod 2 = 1 b10 = (b7 + b5) mod 2 = 1 mod 2 = 1 ... b42 = (b39 + b37) mod 2 = 2 mod 2 = 0 Se puede repetir la secuencia pero dependiendo de la eleccin de la longitud no coincidir en dicha repeticin.
Lenguajes de simulacin
2004-2005
Generadores de Tausworthe
Cmo se transforma la sucesin {bi} en nmeros aleatorios U(0,1)?. Consideremos {bi} b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13......... b41 b42 1 1 1 1 1 0 0 0 1 1 0 1 1 ......... 1 0 1111 1000 1101 1101 0100 0010 01 01 1001 1111 0001 . Se elige l = 4 y1 = b123 + b222 + b321 + b420 = 8 + 4 + 2 + 1 = 15 y2 = b523 + b622 + b721 + b820 = 8 + 0 + 0 + 0 = 8 y3 = b923 + b1022 + b1121 + b1220 = 8 + 4 + 0 + 1 = 13 y4 = b1323 + b1422 + b1521 + b1620 = 8 + 4 + 0 + 1 = 13 .... y as sucesivamente
Comienza la repeticin
u1 =
u2 =
y1 2 y2
2l y3
l
u3 =
2l
15 16 8 = 16 13 = 16
{u i }101 = 15 , i=
Lenguajes de simulacin
8 13 13 4 2 5 9 1 , , , , , , , ,... 16 16 16 16 16 16 16 16 16
Generadores de Tausworthe
Ventajas:
Son independientes del ordenador y del tamao de la palabra que utilice. Se pueden obtener secuencias de longitud considerable, como 2251-1 > 10156 e incluso mayores en micros de 16 bits.
Inconvenientes:
La secuencia obtenida puede tener buenos resultados en las pruebas sobre el ciclo completo, pero pueden tener un comportamiento local poco satisfactorio. En general proporcionan malos resultados en las pruebas de rachas hacia arriba y hacia abajo. Aunque la correlacin de primer orden (un nmero con el siguiente) es casi cero se sospecha que algunos generadores pueden proporcionar valores elevados de correlaciones de orden elevado. No todos los polinomios primitivos tiene las mismas cualidades. Las primeras versiones de GPSS/H utilizaban un generador de Tausworthe.
Lenguajes de simulacin 2004-2005
Seleccin de la semilla
En casi todos los generadores es necesario disponer de una semilla. Se supone que la seleccin de la misma no debe afectar a los resultados de la simulacin. Dependiendo de las caractersticas del generador (si es de periodo total o no) se han establecido una serie de normas a la hora de seleccionar la semilla. No utilizar el cero. Prohibir los valores pares. No subdividir una serie. Utilizar series no solapadas (cada serie precisa una semilla separada). Reutilizar las semillas para sucesivas rplicas de la misma simulacin. No utilizar semillas aleatorias. Producen problemas como: la simulacin no se puede reproducir no es posible garantizar que seres vivos no se solapen
Lenguajes de simulacin
2004-2005
Pruebas de aleatoriedad
Para comprobar si los nmero aleatorios obtenidos cumplen las propiedades deseadas de uniformidad e independencia se deben realizar una serie de pruebas. En general, los generadores suministrados comercialmente ya han pasado por algunas de estas pruebas. Prueba de frecuencia. Pruebas de series. Prueba de autocorrelacin. Prueba de saltos. Prueba de poker. H0: Ri U[0,1] H1: Ri U[0,1] La hiptesis nula supone que la secuencia de nmeros obtenidos est distribuida uniformemente en el intervalo [0,1].
Lenguajes de simulacin 2004-2005
Pruebas de frecuencia
La prueba bsica a la que se debiera someter cualquier nuevo generador de nmeros aleatorios es la de uniformidad. Existen dos mtodos para realizar esta prueba: Prueba de Kolmogorv-Smirnov. Prueba de chi-cuadrado.
Kolmogorov-Smirnov compara la funcin de distribucin acumulada F(x) de la distribucin uniforme con la emprica, SN(x), de la muestra de N observaciones. Por definicin: F(x) = x para 0 x 1 Para una muestra de R1, R2, ...,RN la funcin de distribucin acumulada, SN(x), est definida por: SN(x) = (nmero de R1, R2, ...,RN que son 1)/N D = max |F(x) - SN(x)| Forma de obtenerlo: Se ordenan los datos de menor a mayor R(1) R(2) ... R(N) Se calcula: Se obtiene D+ = max1 i N {i/N - R(N) } D- = max1 i N {R(N) - (i-1)/N } D = max(D+,D-) Se compara con el valor de la tabla para un dado.
Lenguajes de simulacin 2004-2005
Prueba de Kolmogorov-Smirnov
Ejemplo de prueba de Kolmogorov-Smirnov: Sean 5 nmeros 0,44, 0,81, 0,14, 0,05, 0,93 generados por algn mtodo.
R(i) I/N I/N - R(i) R(i) - (i-1)/N 0,05 0,20 0,15 0,05 0,14 0,40 0,26 0,44 0,60 0,16 0,04 0,81 0,80 0,21 0,93 1,00 0,07 0,13
D+ = max1 i N {i/N - R(N) } = 0,26 D- = max1 i N {R(N) - (i-1)/N }= 0,21 Por tanto D = 0,26. Para = 0,05 y N = 5 el valor de la tabla es 0,565 por tanto no se puede rechazar la hiptesis nula.
Lenguajes de simulacin
2004-2005
j =1
( N j np j ) np j
Si H0 es verdadera, npj es el nmero esperado de n Xis que caen en el intervalo jsimo. 2 k Una forma ms simple de la expresin es:
2 =
j =1
(O j E j ) Ej
Lenguajes de simulacin
2004-2005
k k n = N j n j =1 k
2
Se recomienda elegir k100 y n/k 5. Ejemplo: Sea el generador de congruencias multiplicativo Zn=AZn-1 mod M con A=630360016, M=231-1 y semilla Z0=1973272912. Si se generan n=215=32768 nmeros aleatorios (Ui), y se divide (0,1) en k=212=4096 2 subintervalos, entonces 2 = 4141 como 4095, 0.9 = 4211.4 No se rechaza la hiptesis H0 al nivel =0.1.
Lenguajes de simulacin 2004-2005
0,81
La secuencia de 14 + o - es:
- + + + - - - + - + + + - +
Hay 8 secuencias de + o - seguidos, cada una puede ser de una longitud cualquiera. Si N es el nmero de nmeros aleatorios (en este caso 15) y a es el nmero total de secuencias, la media y la varianza de a vienen dadas por: a = (2N - 1) / 3 a 2= (16N - 29) / 90 Para N > 20 la distribucin de a se aproxima razonablemente a una distribucin normal, N(a , a 2). El valor estadstico a comprobar es: Z0 = (a - a )/ a = (a [(2N - 1) / 3])/ SQR((16N - 29) / 90)
Lenguajes de simulacin 2004-2005
- + - - + + - + + + - + -+ + - + - +
a=14
a = 13
a =3,23
Z = 0.55
Lenguajes de simulacin
2004-2005
Z 0,025 = 1,96
Lenguajes de simulacin
2004-2005
Ejemplo. Matlab
x=unifrnd(0,1,10000,1) y=unifrnd(0,1,10000,1) plot(x,y,'.')
Representacin grfica de una matriz de 10.000x10.000 de nmeros aleatorios generados por Matlab
Lenguajes de simulacin 2004-2005
Referencias
Libros: Banks, Carson, Nelson, Nicol. Discrete event system simulation (third edition). El captulo 7 trata sobre generacin de nmeros aleatorios. http://www.bcnn.net Law and Kelton. Simulation Modeling and Analysis (third edition). El captulo 7 est dedicado al tema. http://www.mhhe.com/lawkelton http://random.mat.sbg.ac.at/generators/ http://csrc.nist.gov/rng/rng6_4.html Documentacin y distintos tipos de pruebas para nmeros aleatorios. http://www.iro.umontreal.ca/~lecuyer/ Pgina personal de Pierre LEcuyer http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html Pgina del algoritmo Mersene Twister de Matsumoto
Lenguajes de simulacin
2004-2005