02 Generación de Números Aleatorios y Prubas de aleatoriedad (1)

download 02 Generación de Números Aleatorios y Prubas de aleatoriedad (1)

of 32

Transcript of 02 Generación de Números Aleatorios y Prubas de aleatoriedad (1)

Diapositiva 1

Simulacin de Sistemas Semestre 2008 -1Simulacin de Sistemas

Generacin de Nmeros y Variables AleatoriasTomado de Ing. Eduardo Carbajal L.AgendaGeneracin de nmeros y variables aleatorias Generacin de Nmeros AleatoriosPruebas de aleatoriedad. Variables aleatorias discretas: Bernoulli, Binomial, Poisson.Variables aleatorias continuos: Exponencial, Triangular, Normal, Chi Cuadrado, Weibull.Pruebas de bondad de ajuste: Kolmogorov - Smirnov y Chi cuadrado (2)

Lecturas: Ross, Cap. 3, 4 y 5Banks, Cap. 8 y 9Law, Cap. 62Son la herramienta para generar eventos de tipo probabilstico, se emplean en modelos que tienen variables estocsticas. En estos modelos emplearemos nmeros aleatorios uniformemente distribuidos entre 0 y 1, a los cuales identificaremos como Ri.Generacin de Nmeros AleatoriosNmeros AleatoriosEjemploSi se quiere simular un sistema de colas es necesario generar el tiempo entre llegadas de los clientes y el tiempo de servicio. Dichas variables se obtiene a partir de distribuciones de probabilidad especfica, que para generar/simular un nuevo valor de la variable emplean nmeros aleatorios en su forma mas simple como input.tiempo entre llegadas tiempo de servicioExponencial con media 2 minutosNormal con media de 3 minutos y desviacin estndar de 0.8 minutosR1 = 0.42

R2 = 0.25Expo(2)Norm(3,0.8)V2 = 2.46V1 = 0.78El tiempo entre llegada es 0.78, es decir el siguiente cliente llegar dentro de 0.78 minutosEl tiempo de servicio es 2.46, es decir el cliente terminar de ser atendido dentro de 2.46 minutoscolaservidor

Cundo llega el prximo cliente?

Cundo tiempo durar el servicio?Tienen una distribucin uniforme con parmetros a= 0 y b =1. Generacin de Nmeros AleatoriosCaractersticas de los Nmeros Aleatorios

Funcin de densidad:media:Distribucin Uniformevarianza:Estadsticamente independientesSu periodo o ciclo de vida debe ser largoEntonces como Ri es uniformemente distribuido entre 0 y 1:media : varianza :(0 + 1) / 2= 1/2= 1/12(1 - 0 ) / 12R1, R2, R3, ., RiSecuencia de nmeros aleatoriosPeriodo o ciclo de vidaR1, R2, R3, ., Rn = R1n : Periodo o ciclo de vida, que equivale al nmero de veces antes que el primer aleatorio de la secuencia se repitaDeben ser generados a travs de un mtodo rpidoGeneracin de Nmeros AleatoriosCaractersticas de los Nmeros AleatoriosDeben ser generados a travs de un mtodo que no requiera mucho uso de memoria ni almacenamiento.Para cumplir con estas caractersticas el esquema de generacin debera producir una secuencia de nmeros entre uno y cero que simule o imite las propiedades ideales de la distribucin uniforme y la independencia tan cerca como sea posible. Generacin de Nmeros AleatoriosErrores posibles en la generacin de los Nmeros AleatoriosLos nmeros generados no estn uniformemente distribuidos. Los nmeros generados son discretos en lugar de continuos. La media de los nmeros generados es muy alta o baja. La varianza de los nmeros generados es muy alta o baja. Los nmeros generados exhiben variacin cclica (auto correlacin entre los nmeros, nmeros sucesivos mucho ms altos o bajos que el adyacente, varios nmeros sobre la media seguidos de otros bajo la media). Provisin ExternaGeneracin de Nmeros AleatoriosFormas de GeneracinCaractersticasEs un mtodo de generacin rpido.Es posible determinar una secuencia de nmeros generada anteriormente.Depende de una fuente externa que contengan miles de nmerosProduce nmeros pseudo aleatoriosSe emplean medios externos para obtener nmeros aleatorios

Generacin FsicaGeneracin de Nmeros AleatoriosFormas de GeneracinCaractersticasEs un mtodo de generacin lento.Imposible reproducir una secuencia de nmeros generada anteriormente.Podran producir nmeros realmente aleatoriosSe generan nmeros aleatorios empleando algn instrumento fsico

Generacin MatemticaGeneracin de Nmeros AleatoriosFormas de GeneracinSe emplean algoritmos matemticos para crear relaciones de recurrencia en la secuencia de nmeros generadosCaractersticasEs un mtodo de generacin rpido.Es posible determinar una secuencia de nmeros generada anteriormente.Produce nmeros pseudo aleatoriosRevisaremos algunos a continuacin

Mtodo del Medio Cuadrado (Mid Square Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEn general entonces:Se eleva al cuadrado el nmero Xi-1 y se extraen los k dgitos medios para conformar Xi. Se obtiene el Ri dividiendo Xi entre 10 elevado a la k.Escoger un nmero inicial (Xo) o semilla con k dgitos.Se eleva al cuadrado dicho nmero y se obtiene uno (Xo) que como mximo tendr 2k dgitos. Si el nmero no llega a 2k dgitos colocarle ceros a la izquierdaLos k dgitos medios de Xo corresponden a X1 y se emplean para definir el primer nmero aleatorio. Como el aleatorio por definicin debe ser menor que 1, R1 es entonces X1, que tiene k dgitos, dividido entre 10 elevado a la k

Mtodo del Medio Cuadrado (Mid Square Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEjemplo:

SemillaPaso 1: Tiene 4 dgitos. Por tanto k = 4Paso 2:

Tiene 8 dgitos. Por tanto cumple la condicin de tener 2k dgitos, no es necesario agregar ceros a la izquierdaPaso 3: Repitiendo nuevamente los pasos se generaran los siguientes nmeros pseudo aleatoriosMtodo del Medio Cuadrado (Mid Square Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaCaractersticasPosiblemente el mtodo mas antiguo, propuesto por John von Newmann.Mtodo con pobres propiedades estadsticas.La semilla debe ser escogida cuidadosamente.Problema: Si en algn momento se obtiene un nmero de k dgitos, los cuales generan al ser elevados al cuadrado, un nmero donde los k dgitos medios son cero, la secuencia de nmeros se degenera.Mtodo del Medio Producto (Mid Product Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEn general entonces:Se multiplican los nmeros Xi-1 y Xi; y se extraen los k dgitos medios para formar Xi+1. Se obtiene el Ri dividiendo Xi entre 10 elevado a la k.Escoger dos nmeros iniciales (X'o y Xo) con k dgitos.Se multiplican dichos nmeros y se extraen los k dgitos medios de la multiplicacin. Los cuales forman el nmero X1. Si el nmero no llega a 2k dgitos colocarle ceros a la izquierdaComo el aleatorio por definicin debe ser menor que 1, R1 es entonces X1, que tiene k dgitos, dividido entre 10 elevado a la k Para generar el siguiente aleatorio se repite el algoritmo multiplicando esta vez Xo por X1

Mtodo del Medio Producto (Mid Product Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEjemplo:

SemillaPaso 1: Tienen 4 dgitos. Por tanto k = 4Paso 2: Tiene 8 dgitos. Por tanto cumple la condicin de tener 2k dgitos, no es necesario agregar ceros a la izquierdaPaso 3: Repitiendo nuevamente los pasos se generaran los siguientes nmeros pseudo aleatorios

Semillaadicional

Mtodo del Medio Producto (Mid Product Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaCaractersticasBastante similar al mtodo del Medio CuadradoMtodo con pobres propiedades estadsticas.La semilla debe ser escogida cuidadosamente.Problema: Si en algn momento se obtiene un nmero de k dgitos, los cuales generan al ser elevados al cuadrado, un nmero donde los k dgitos medios son cero, la secuencia de nmeros se degenera.Tcnica de multiplicacin por una Constante (Constant Multiplier Method)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEn general entonces:Se multiplica cada nmero Xi por la constante C y se extraen los k dgitos medios para formar Xi+1Escoger dos nmeros iniciales: una semilla Xo con k dgito y una constante C.Se multiplican dichos nmeros y se extraen los k dgitos medios de la multiplicacin. Los cuales forman el nmero X1. Si el nmero no llega a 2k dgitos colocarle ceros a la izquierdaComo el aleatorio por definicin debe ser menor que 1, R1 es entonces X1, que tiene k dgitos, dividido entre 10 elevado a la k Para generar el siguiente aleatorio se repite el algoritmo multiplicando esta vez X1 por C

Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEjemplo:

SemillaPaso 1: La semilla tiene 4 dgitos. Por tanto k = 4Paso 2: Tiene 8 dgitos. Por tanto cumple la condicin de tener 2k dgitos, no es necesario agregar ceros a la izquierdaPaso 3: Repitiendo nuevamente los pasos se generaran los siguientes nmeros pseudo aleatoriosConstanteTcnica de multiplicacin por una Constante (Constant Multiplier Method)

Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaCaractersticasBastante similar al mtodo del Medio CuadradoMtodo con pobres propiedades estadsticas.La semilla debe ser escogida cuidadosamente.Problema: Si en algn momento se obtiene un nmero de k dgitos, los cuales generan al ser elevados al cuadrado, un nmero donde los k dgitos medios son cero, la secuencia de nmeros se degenera.Tcnica de multiplicacin por una Constante (Constant Multiplier Method)Generador Congruencial Lineal(Lineal Congruential Generator)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaOBSERVACIN:mod es la funcin residuo, es decir Zi+1 es el residuo que se obtiene al dividir (aZi+c) entre mEmplea la frmula recursiva siguiente:

Donde:m = mdulo, a = multiplicador, c = incremento, Z0 = semillaNo son aleatorios, es una serieSon racionales Estos cuatro parmetros deben ser enteros no negativos y adems: m > 0, m > a, m > c, m > Z0Para obtener los aleatorios Ri se divide Zi entre mGeneracin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaCaractersticasEs el generador ms utilizado.Produce una secuencia peridica o cclica de nmeros aleatorios.Se deben generar secuencias de perodo completo.Se deben de escoger las constantes a, c y m, de modo que generen secuencias de perodo completo.Generador Congruencial Lineal(Lineal Congruential Generator)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEjemplo 1:mdulo = m = 8multiplicador = a = 5incremento = c = 7semilla = Zo = 4Parmetros: Generamos entonces aleatorios empleando el GCL:Generador Congruencial Lineal(Lineal Congruential Generator)Generador CL: Zi+1 = (5 Zi + 7 ) mod 8n(5 Zi + 7 ) Zi+1 = (5 Zi + 7 ) mod 8Ri15*4+7 = 2727 mod 8 = 33/8= 0.375234565*3+7 = 2222 mod 8 = 66/8= 0.7505*6+7 = 3737 mod 8 = 55/8= 0.6755*5+7 = 3232 mod 8 = 00/8= 05*0+7 = 77 mod 8 = 77/8= 0.8755*7+7 = 4242 mod 8 = 22/8= 0.25075*2+7 = 1717 mod 8 = 11/8= 0.12585*1+7 = 1212 mod 8 = 44/8= 0.50095*4+7 = 2727 mod 8 = 33/8= 0.375Este GCL permite generar 8 nmeros aleatorios antes de repetir el primero. Su periodo es 8 y es igual al mdulo m = 8, se le llama generador de periodo completoGeneracin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaEjemplo 2:mdulo = m = 10multiplicador = a = 7incremento = c = 7semilla = Zo = 7Parmetros: Generamos entonces aleatorios empleando el GCL:Generador Congruencial Lineal(Lineal Congruential Generator)Generador CL: Zi+1 = (7 Zi + 7 ) mod 10n(5 Zi + 7 ) Zi+1 = (5 Zi + 7 ) mod 8Ri17*7+7 = 5656 mod 10 = 66/10= 0.6023457*6+7 = 4949 mod 10 = 99/10= 0.907*9+7 = 7070 mod 10 = 00/10= 07*0+7 = 77 mod 10 = 77/10= 0.707*7+7 = 5656 mod 10 = 66/10= 0.60Este GCL permite generar 4 nmeros aleatorios antes de repetir el primero. Su periodo es 4 y es DIFERENTE al mdulo m = 10, por tanto no es de periodo completoGeneracin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaTeorema de Hull y Dobell para GCL que asegure el mayor periodo:Generador Congruencial Lineal(Lineal Congruential Generator)El nico entero positivo que divide exactamente m y c es 1 (primos relativos).Si q es un nmero primo (divisible slo entre si mismo y 1) que divide m, entonces q debe dividir a -1.Si 4 divide a m, entonces 4 divide a 1.

En resumen que buscamos: Periodo largo, buenas propiedades estadsticas, eficiencia computacional y de almacenaje y reproductibilidad. Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaOBSERVACIN:El Generador Congruencial Multiplicativo es en realidad un caso especfico del Generador Congruencial Lineal cuando el incremento ( c ) es igual a cero. Podemos observar que en el caso de los generadores congruenciales multiplicativos no es posible aplicar el Teorema de Hull y DubellEmplea la frmula recursiva siguiente:

Donde:m = mdulo, a = multiplicador, Z0 = semillaEstos cuatro parmetros deben ser enteros no negativos y adems: m > 0, m > a, m > Z0Para obtener los aleatorios Ri se divide Zi entre mGenerador Congruencial Multiplicativo ( Multiplicative Congruential Generator)Generacin de Nmeros AleatoriosFormas de Generacin > Generacin MatemticaTeoremas para Determinacin de parmetros de un GCSea: x i+1 = (a x i + c ) mod 2 nTeorema: Generador con mdulo igual a una potencia de 2Por ejemplo:n = 8m = 2n = 28 = 256c imparc = 7= Pk = 2a = 1+4k = 1 + 4(2) =9Zi+1 = (9 Zi + 7 ) mod 256Un generador donde c > 0, n > 1, si c es impar y el factor a es de la forma a = 4k+1 , entonces es de perodo mximo igual P = 2nLas pruebas de aleatoriedad son pruebas diseadas para asegurar que se cumplan las propiedades de uniformidad e independencia deseadas. Algunas son:Pruebas de AleatoriedadTipos de PruebasPrueba de corridas o rachas (runs test):Se utiliza para determinar la presencia anormal de grupos de nmeros ascendentes, descendentes, por encima del promedio, o por debajo del promedio.Prueba de frecuencia:Usa el mtodo de Kolmogorov-Smirnov o el mtodo Chi-cuadrado para comparar una distribucin uniforme con la secuencia generada.Prueba de autocorrelacin:Compara la correlacin existente entre los elementos de una secuencia con la correlacin nula esperada.Prueba de huecos (gap test):Cuenta los nmeros de dgitos entre dos sucesivas repeticiones y utiliza la prueba de Kolmogorov-Smirnov para comparar esta cantidad con el valor esperado.Prueba de poker:Controla que la frecuencia de aparicin de dgitos en una serie de nmeros sea la esperada.Existen dos:Pruebas de AleatoriedadPruebas de corridasPrueba de corridas ARRIBA Y ABAJOPrueba de corridas ARRIBA Y DEBAJO DE LA MEDIASe verifica la aleatoriedad de los nmeros, comprobando que el nmero de corridas sea una variable aleatoria distribuida normalmente. Para eso se emplea una prueba de hiptesis del tipo:Uniformidad H0 : Ri ~ U (0,1)H1 : Ri U (0,1)IndependenciaH0 : Ri ~ independienteH1 : Ri independientePara ambas pruebas se debe especificar un nivel de significancia (Rechazar hiptesis nula dado que es verdadera 0.01 o 0.05)Nmero de corridasPruebas de AleatoriedadPruebas de corridasCorrida: sucesin de eventos similares precedidos y seguidos por un evento diferente. Corridas:Sello(S)Ejemplo: Tirando una moneda - Cuntos eventos hay? Cara (C)Si se lanza una moneda 10 veces y se obtienen los resultados siguientes:C S S C C S S S C S123456Nmero de corridas = 628DefinicinPruebas de AleatoriedadPruebas de corridas Arriba y AbajoEsta prueba comprueba si el nmero total de corridas en la secuencia de nmeros aleatorios puede ser considerada como tpica o no. Procedimiento:Se genera una secuencia de nmeros pseudoaleatorios.Si a un nmero le sigue otro mayor se le asigna un + , si el siguiente es menor se le asigna un -.Se calcula a = nmero de corridas, cuya longitud est dada por el nmero de signos iguales que contiene Siendo N la cantidad de nmeros en la secuencia, la media y la varianza estn dadas por:

Se calcula la longitud de corrida a, como la cantidad de grupos de signos asociados a la secuencia de aleatorios. Para N >30 , a se puede aproximar mediante una distribucin normal . El estadstico de prueba ser:

Si |Z0| > Z1-/2 entonces no existe evidencia suficiente para decir que los nmeros son aleatorios.Pruebas de AleatoriedadPruebas de corridas Arriba y AbajoProcedimiento:

DefinicinPruebas de AleatoriedadPruebas de corridas Arriba y Debajo de la mediaEsta prueba nos permite verificar que los datos sigan una distribucin uniforme alrededor de la media terica de 0.5, de forma aleatoriaProcedimiento:Se genera una secuencia de nmeros pseudoaleatorios.Si un nmero est por encima de la media se le asigna un + , si est por debajo se le asigna un -.Se calcula n1 y n2, donde n1 es el nmero de observaciones por encima de la media y n2 el nmero de observaciones por debajo de la media Siendo N la cantidad de nmeros en la secuencia, la media y la varianza estn dadas por:

Se calcula la longitud de corrida b, como la cantidad de grupos de signos asociados a la secuencia de aleatorios. Para N >30 , b se puede aproximar mediante una distribucin normal . El estadstico de prueba ser:

Si |Z0| > Z1-/2 entonces no existe evidencia suficiente para decir que los nmeros son aleatorios.Pruebas de AleatoriedadPruebas de corridas Arriba y Debajo de la mediaProcedimiento: