UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE INGENIERIA INDUSTRIAL ESCUELA PROFESIONAL DE INGENIERIA INFORMATICA TEMA NÚMEROS PSEUDOALEATORIOS RESPONSABLES CULQUICONDOR RODRIGUEZ, ISAMAR DEL ROCIO NEIRA CHUNGA, DANIEL LEANDRO ROMERO NAVARRO, LUIS ANDY RAMOS SERNAQUE, YAN RAMOS TORRES CALLE, RICARDO HERNÁN CURSO SIMULACIÓN DE SISTEMAS DOCENTE ING. LUCIANA MERCEDES TORRES LUDEÑA PIURA–PERÚ 2021 1 INDICE NÚMEROS PSEUDOALEATORIOS ......................................................................................3 DEFINICIÓN...........................................................................................................................3 CARACTERÍSTICAS ............................................................................................................4 IMPORTANCIA ......................................................................................................................4 GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS ....................................................5 1. MÉTODO CONGRUENCIAL MULTIPLICATIVO MIXTO .....................................5 2. MÉTODO CONGRUENCIAL MULTIPLICATIVO ..................................................7 VALIDACIÓN DE NÚMEROS PSEUDOALEATORIOS .......................................................9 PRUEBAS ESTADÍSTICAS DE UNIFORMIDAD ................................................................10 1. PRUEBA DE MEDIAS.................................................................................................10 2. PRUEBA DE KOLMOGOROV-SMIRNOV ...............................................................12 ...............................................................................................................................................13 3. PRUEBA ESTADÍSTICA DE CHI- CUADRADO .....................................................14 PRUEBAS ESTADÍSTICAS DE ALEATORIEDAD .............................................................16 1. PRUEBA DE CORRIDAS ARRIBA Y ABAJO DEL PROMEDIO ..........................16 2. PRUEBA DE SERIES .................................................................................................18 3. PRUEBA DE LA DISTANCIA COMO DÍGITOS ......................................................19 4. PRUEBA DE LA DISTANCIA COMO NÚMEROS REALES ..................................21 5. PRUEBA DE PÓKER ..................................................................................................22 2 NÚMEROS PSEUDOALEATORIOS DEFINICIÓN Los números pseudoaleatorios son números generados en un proceso que parece producir números al azar, pero no lo hace realmente, de aquí el prefijo pseudo que quiere decir falso, ya que su generación parte de algoritmos determinísticos, lo cual nos quiere decir que obtendremos siempre el mismo resultado bajo las mismas condiciones iniciales. Éstas condiciones se refieren a varios parámetros de arranque, siendo el valor inicial, también llamado semilla, el denominador común de todos los algoritmos. Para poder realizar una simulación que incluya variabilidad dentro de sus eventos, es preciso generar una serie de números que sean aleatorios por sí mismos, y que su aleatoriedad se extrapole al modelo de simulación que se está construyendo. Como puede comprender, en la construcción del modelo los números aleatorios juegan un papel relevante. Así, una de las primeras tareas que es necesario llevar a cabo consiste en determinar si los números que utilizaremos para "correr" o ejecutar la simulación son realmente aleatorios o no. Por desgracia, precisar lo anterior con absoluta certidumbre resulta muy complicado, ya que para ello tendríamos que generar un número infinito de valores que nos permitiera comprobar la inexistencia de correlaciones entre ellos. Esto sería muy costoso y tardado, además volvería impráctico el uso de la simulación aun con las computadoras más avanzadas. A pesar de lo anterior, podemos asegurar que el conjunto de números que utilizaremos en una simulación se comporta de manera muy similar a un conjunto de números totalmente aleatorios; por ello es que se les denomina números pseudoaleatorios. Casi todas las aplicaciones comerciales tienen varios generadores de números pseudoaleatorios que pueden generar un conjunto muy grande de números sin mostrar correlación entre ellos. Un número pseudoaleatorio no es más que el valor de una variable aleatoria x que tiene una distribución de probabilidad uniforme definida en el intervalo (0, 1). Los números pseudoaleatorios constituyen una parte realmente importante en la simulación de procesos estocásticos y generalmente se usan para generar el 3 comportamiento de variables aleatorias, tanto continuas como discretas. Debido a que no es posible generar números realmente aleatorios, los consideramos como pseudoaleatorios, generados por medio de algoritmos determinísticos que requieren parámetros de arranque. Podemos asegurar con altos niveles de confiabilidad que el conjunto de números que utilizaremos en una simulación se comportan de manera muy similar a un conjunto de números totalmente aleatorios; por ello es que se les denomina números pseudoaleatorios. CARACTERÍSTICAS 1. Uniformemente distribuidos. 2. Estadísticamente independientes. 3. Su media debe ser estadísticamente igual a 1/2. 4. Su varianza debe ser estadísticamente igual a 1/12. 5. Su periodo o ciclo de vida debe ser largo. 6. Deben ser generados a través de un método rápido. 7.Generados a través de un método que no requiera mucha capacidad de almacenamiento de la computadora. IMPORTANCIA La importancia del uso de los números pseudoaleatorios en la simulación es que evita los sesgos en los resultados de las corridas de simulación como influencia del uso de los números aleatorios, sirven para generar los valores de las variables aleatorias que siguen funciones de probabilidad particular y también permiten experimentar bajo iguales condiciones. 4 GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS Se llama números pseudoaleatorios a una sucesión de números determinística de números en el intervalo [0,1] que tiene las mismas propiedades estadísticas que una sucesión de números aleatorios. Los números pseudoaleatorios son necesarios cuando se pone en práctica un modelo de simulación, para obtener observaciones aleatorias a partir de distribuciones de probabilidad. Los números aleatorios generados en un inicio por una computadora casi siempre son números aleatorios enteros. 1. MÉTODO CONGRUENCIAL MULTIPLICATIVO MIXTO El Método Congruencial Multiplicativo Mixto genera una sucesión de números pseudo aleatorios en la cual el sucesor del número pseudo aleatorio es determinado justo a partir del último número generado. Particularmente para el caso del generador congruencial mixto la relación de recurrencia es la siguiente: 𝑋𝑛+1 = (𝑎𝑋𝑛 + 𝑐) 𝑚𝑜𝑑 𝑚 Donde Xo > 0: representa la semilla y es un valor que elige el investigador; a > 0: constante multiplicativa c > 0: es una constante aditiva la que se denomina incremento; m es el “módulo”, siendo; m > Xo, m > a y además m > c Para hallar ri: 𝑅𝑖 = 𝑋𝑖 + 1/𝑚 ó 𝑅𝑖 = 𝑋𝑖 + 1/𝑚 − 1 5 Sugerencia: M=2g g=num.entero EJEMPLO: 6 2. MÉTODO CONGRUENCIAL MULTIPLICATIVO En comparación con el algoritmo congruencial lineal, la ventaja del algoritmo multiplicativo es que implica una operación menos a realizar. El algoritmo congruencial multiplicativo surge del algoritmo congruencial lineal cuando c = 0. Entonces la ecuación recursiva es: Xi+1=(aXi) mod(m) i=0,1,2,3,...,n Donde: X0 = semilla (X0 >0), impar a = multiplicador (a >0) m = módulo (m >X0 , m >a) Para obtener números Uniformes (0,1) se normaliza el resultado: Ui = Xi / m o Xi/(m-1) 7 Ejemplo: 8 VALIDACIÓN DE NÚMEROS PSEUDOALEATORIOS En el tema de validación veremos todo lo relacionado a las pruebas estadísticas básicas, tales como media, forma, varianza, póquer y huecos que nos ayudarán a validar que los números generados realmente son pseudoaleatorios, es decir entre 0 y 1, y además que cumplen con las propiedades de independencia y uniformidad. Existen algunos métodos disponibles para verificar varios aspectos de la calidad de los números pseudoaleatorios. Las dos propiedades más importantes esperadas en los números aleatorios son uniformidad e independencia. La prueba de uniformidad puede ser realizada usando las pruebas de ajuste de bondad disponibles. Por ejemplo, un número estadístico suficiente de números aleatorios pueden ser usados para verificar la distribución de los números contra la distribución uniforme teórica usando ya sea el método Chi-Cuadrada o el método Kolmogorov-Smirnov(KS) para números aleatorios. Al hablar de independencia de los números pseudoaleatorios, nos referimos a que los números aleatorios generados no deben de estar correlacionados entre sí, de tal manera que pueden distribuirse uniformemente dentro del espectro de valores posibles. 9 PRUEBAS ESTADÍSTICAS DE UNIFORMIDAD Una de las pruebas de datos más importantes que debe cumplir un conjunto de números ri es de uniformidad. Para comprobar su acatamiento se han desarrollado pruebas estadísticas tales como las pruebas de medias, Chicuadradas y de Kolmogorov – Smirnov. En cualquiera de ambos casos, para probar la uniformidad de los números de un conjunto ri es necesario formular las siguientes hipótesis: H0: ri ≈ U(0,1) Los números son uniformes. H1: ri 1. no son uniformes. PRUEBA DE MEDIAS Una de las propiedades que deben cumplir los números del conjunto r¡, es que el valor esperado sea igual a 0.5. La prueba que busca determinar lo anterior es la llamada prueba de medias, en la cual se plantean las siguientes hipótesis: Ho: µ= 0.5 H1: µ≠ 0.5 La prueba de medias consiste en determinar el promedio de los n números que contiene el conjunto ri, mediante la ecuación siguiente: 1 𝑟̅ = ∑𝑛𝑖=1 𝑟𝑖 𝑛 Después se calculan los límites de aceptación inferior y superior con las ecuaciones siguientes: 𝐿𝐼𝑟̅ = 1 1 − 𝑍𝛼 ( ) 2 2 √12𝑛 𝐿𝑆𝑟̅ = 1 1 + 𝑍𝛼 ( ) 2 2 √12𝑛 10 Si el valor de 𝑟̅ se encuentra entre los límites de aceptación, concluimos que no se puede rechazar que el conjunto r¡ tiene un valor esperado de 0.5 con un nivel de aceptación de 1- 𝛼. En caso contrario se rechaza que el conjunto r¡ tiene un valor esperado de 0.5. Para el cálculo de los límites de aceptación se utiliza el estadístico 𝑍𝛼/2 , el cual se determina por medio de la tabla de la distribución normal estándar. Ejemplo en Excel: En conclusión, si se acepta Ho los números generados provienen de una distribución uniforme. 11 2. PRUEBA DE KOLMOGOROV-SMIRNOV La prueba de Kolmogorov-Smirnov, es una prueba estadística que también nos sirve para determinar si un conjunto ri cumple la propiedad de uniformidad. Esta prueba nos sirve para verificar o negar la hipótesis que un conjunto de observaciones proviene de una determinada distribución. La estadística D que se utiliza en esta prueba es una medida de la diferencia máxima observada entre la distribución empírica (dada por las observaciones) y la teórica supuesta. La estadística D es obviamente una variable aleatoria. Es recomendable aplicarla en conjuntos ri pequeños. 1. Generar una muestra de números aleatorios uniformes de tamaño N. 2. Ordenar dichos números en orden ascendente. 3. Calcular la distribución acumulada de los números generados con la siguiente expresión. 𝐹𝑛(𝑥 ) = 1 𝑛 Donde i es la posición que ocupa el número aleatorio Xi en el vector ordenado obtenido en el paso 2. 4. Calcular el estado de prueba Kolmogorov-Smirnov del modo siguiente Dn = máx | Fn(Xi) − Xi | para toda Xi 5. Si Dn es menor 𝑑𝛼,𝑛 , entonces no se puede rechazar la hipótesis de que los números generados provienen de una distribución uniforme. La distribución de Dn ha sido tabulada como una función de n y alfa para cuando Fn(X) = Fo(X) 12 EJERCICIO 13 3. PRUEBA ESTADÍSTICA DE CHI- CUADRADO La prueba Chi-cuadrada busca determinar si los números del conjunto rᵢ. se distribuyen de manera uniforme en el intervalo (0,1). Para llevar a cabo esta prueba es necesario dividir el intervalo (0,1) en m sub-intervalos, en donde es recomendable m=⎷n. Luego se clasifica cada número pseudoaleatorio del conjunto rᵢ. en los m intervalos. A la cantidad de números rᵢ. que se clasifican en cada intervalo se le denomina frecuencia observada (Oᵢ), y a la cantidad de números rᵢ que se espera encontrar en cada intervalo se le llama frecuencia esperada (E); teóricamente, la Eᵢ.es igual n/m. A partir de los valores de Oᵢ. y Eᵢ se determina el estadístico x02 mediante la ecuación: 𝑚 𝑥02 (𝐸ᵢ − 𝑂ᵢ)2 =∑ 𝐸ᵢ 𝑖=1 Si el valor del estadístico 𝑥02 es menor que el valor de 𝑥𝛼,𝑚−12 , entonces no se puede rechazar que el conjunto de datos rᵢ sigue una distribución uniforme. En caso contrario, se rechaza que rᵢ siga una distribución uniforme. EJEMPLO: 14 Conclusión: si se acepta Ho entonces los números generados provienen de una distribución uniforme 15 PRUEBAS ESTADÍSTICAS DE ALEATORIEDAD 1. PRUEBA DE CORRIDAS ARRIBA Y ABAJO DEL PROMEDIO 1. Generar la secuencia de n números pseudoaleatorios ri 2. Obtener la secuencia binaria en la cual el i-ésimo término es 0 si ri<0.5 y 1 si ri>=0.5 3. Determinar la frecuencia observada Foi de la corrida de longitud i. Una sucesión de i ceros (unos), enmarcada por unos (ceros) en los extremos, representa una corrida de longitud i. 4. Calcular la frecuencia esperada de la corrida de longitud i mediante la siguiente expresión: Fei=(n-i+3)/(2^(i+1)) 5. El número total de corridas está dado por E (total de corridas) = (n+1)/2 6. Comparar las Foi con Fei mediante la prueba ji-cuadrada: 𝑋 2𝑜 = i=1k (𝐹𝑒𝑖 − 𝐹𝑜𝑖) 2 /𝐹𝑒𝑖 Si X2o> X2 (α, k-1) Los números no pasan la prueba de aleatoriedad 16 EJEMPLO: 17 2. PRUEBA DE SERIES Generar la secuencia de n números pseudoaleatorios r Formar parejas (ri,ri+1) para i=1,2,… Formar un cuadrado unitario de K*k celdas Determinar la frecuencia observada Foij de cada celda. Se observa que a celda pertenece cada pareja ordenada (ri, ri+1) y se contabiliza en dicha celda. Calcular la frecuencia esperada de cada celda mediante la siguiente expresión: Feij= (n-1)/ k2 Comparar las Foij con Feij mediante la prueba chi-cuadrada: 𝑘 𝑥02 𝑘 = ∑∑ 𝑖=1 𝑗=1 (𝐹𝑒𝑖𝑗 − 𝐹𝑜𝑖𝑗)2 𝐹𝑒𝑖𝑗 Si X2o> X2 (α, k-1) Los números no pasan la prueba de aleatoriedad 18 3. PRUEBA DE LA DISTANCIA COMO DÍGITOS Generar la secuencia de n números pseudoaleatorios ri Determinar los k tamaños de hueco que existen. Contar el número de dígitos que aparece entre ocurrencias sucesivas de un mismo dígito, ej. 58245 ilustra un hueco de tamaño 3 entre los dos cincos. Calcular la probabilidad de ocurrencia para cada tamaño de hueco i mediante: pi=0.1(1-0.9)i para i= 0,1,2,… pi=(0.9)k para i>=k Determinar la frecuencia observada Foi para cada tamaño de hueco i . Calcular la frecuencia esperada para el tamaño de hueco i mediante la siguiente expresión: (Fei=ΣFoi)0.9(1-0.9)i Comparar las Foi con Fei mediante la prueba ji-cuadrada: 𝑋 2𝑜 = i=1k(𝐹𝑒𝑖 − 𝐹𝑜𝑖) 2 /𝐹𝑒𝑖 Si X2o> X2 (α, k-1) Los números no pasan la prueba de aleatoriedad Es importante señalar que el valor seleccionado k debe ser tal que la suma de frecuencias esperadas de todos los tamaños de hueco agrupados sea >= 5. 19 20 4. PRUEBA DE LA DISTANCIA COMO NÚMEROS REALES Si los números pseudoaleatorios generados son considerados como reales, entonces, para realizar esta prueba es necesario seleccionar un intervalo (a ,þ) el cual debe estar contenido en el intervalo de (0,1), es decir 0 S a S þ S 1. Enseguida para cada número pseudoaleatorio generado se pregunta si es o no elemento del intervalo (a,..þ). Si Uj (número uniforme generado) es elemento de (a ,.þ). .Uj+1 hasta Uj+1 no son elementos de dicho intervalo y Uj+i+1, vuelve a ser elemento del intervalo (a,..þ), entonces se tiene un hueco de tamaño i. 21 5. PRUEBA DE PÓKER Generar la secuencia de n números pseudoaleatorios ri Tomar k dígitos de cada número, (si tienen más de k dígitos tomar los primeros k dígitos) y clasificarlos como: Todos diferentes, un par, dos pares, tercia, full, póker y quintilla. Calcular las probabilidades pi para cada mano de póker posibles. Determinar la frecuencia observada Foi para cada mano de póker. Calcular la frecuencia esperada para cada mano de póker (Fei=ΣFoi)pi Comparar las Foi con Fei mediante la prueba ji-cuadrada: 𝑋 2𝑜 = i=1k(𝐹𝑒𝑖 − 𝐹𝑜𝑖) 2 /𝐹𝑒𝑖 Si X2o> X2 (α, k-1) Los números no pasan la prueba de Póker 22