Escuela de Estudios Industriales y Empresariales Ingeniería Industrial Facultad de Ingenierías FísicoFísico-Mecánicas CONSTRUIMOS FUTURO TÉCNICAS MODERNAS DE OPTIMIZACIÓN - Simulación Aplicada - NÚMEROS Y VARIABLES ALEATORIAS Ing. Edwin Alberto Garavito Hernández Ingeniería Industrial lunes, 22 de junio de 2015 CONSTRUIMOS FUTURO Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 1 3 ¿QUÉ ES UN NUMERO ALEATORIO? ¿4 es un número aleatorio? SECUENCIA DE NÚMEROS ALEATORIOS • Independientes: cada número es obtenido por casualidad y no tiene ninguna relación con otros números de la serie • Distribución específica: cada número tiene una probabilidad específica de pertenecer a un rango de valores determinado. 4 Para qué las secuencias de números aleatorios? • Simulación: La reproducción de fenómenos naturales necesita números aleatorios. En procesos productivos, el comportamiento del tiempo de servicio o de operación, la tasa de llegadas de clientes a un sistema, la demanda de un producto. • Muestreo: Muchas veces es poco práctico examinar todos los casos posibles. Un muestreo aleatorio puede revelar un comportamiento típico. • Análisis Numérico: Técnicas numéricas necesitan números aleatorios • Programación de computadores: Tests de efectividad de algoritmos • Toma de decisiones: Modelos de análisis de escenarios. • Estética: Un toque de aleatoriedad puede resultar agradable • Juegos: De aquí proviene el propio método lunes, 22 de junio de 2015 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 2 5 Métodos para generar números aleatorios Manual – – – – Lanzamiento de dados Destapar Cartas Extraer bolas de un urna Girar una rueda Métodos numéricos – Algoritmo de Von Newman (1940) – Producto medio – Multiplicador constante – Generadores Congruenciales lineales. 6 Números pseudo-aleatorios Un número pseudo-aleatorio es un número generado en un proceso que parece producir números al azar, pero no lo hace realmente. Las secuencias de números pseudo-aleatorios no muestran ningún patrón o regularidad aparente desde un punto de vista estadístico, a pesar de haber sido generadas por un algoritmo completamente determinista, en el que las mismas condiciones iniciales producen siempre el mismo resultado. Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 3 7 Que significa “un buen generador?” • • • • • Período Largo Cumple con algunas pruebas estadísticas Velocidad / eficiencia Portabilidad - se puede implementar fácilmente con diferentes lenguajes y computadores Repetibilidad - debe ser capaz de generar la misma secuencia de nuevo 8 Estructura Básica. Dada una función de transición, f, el estado en el paso n viene dado por xn = f ( xn −1), n ≥ 1 La función de salida, g, produce resultados como u n = g ( xn ) La secuencia de salida {un , n ≥ 1} Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 4 9 Von Newman Semilla: X0 X0 *X0= ## #### ## X1 *X1= ## #### ## X2 *X2= ## #### ## …… Ej. Xo=6375 Ro=0.6375 Xo*Xo = 40 6406 25 X1 = 6406, R1 =0.6406 X1*X1 = 41 0368 36 X2 = 0368, R2 =0.0368 X2*X2 = 00 1354 24 X3 = 1354, R3 =0.1354 . . . 10 Producto Medio Semillas: Xo’, Xo P1= Xo’, Xo= ## #### ## X1, R1 = 0,X1 Pi= Xi-2 * Xi-1= ## #### ## i=2,3,4…… Xi, Ri = 0,Xi Semillas: Xo’=3721, Xo= 6375 P1=23 7213 75, X1= 7213, R1=0.7213 P2=Xo*X1=45 9828 75, X2= 9828, R2=0.9828 P3=X1*X2=70 8893 64, X3= 8893, R2=0.8893 …….. Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 5 11 Multiplicador Constante K=constante Xo= semilla Pi=K*Xi-1 = ## #### ## Xi, i=1, 2, 3….. Ri = 0,Xi K= 3721 Xo= 6375 P1=K*Xo = 23 7213 75, X1= 7213, R1=0.7213 P2=K*X1 = 26 8395 73, X2= 8395, R2= 0.8395 …. Generador de Fibonacci • • Suma o diferencia de elementos predecesores El retardo usa dos números de la secuencia previa xn = (xn− p + xn−r ) m od m un = xn / m p , q a r e Generators th e la g s Multiple Recursive • (MRGs) definidos por: x = ( a x n 1 n −1 + L + ak xn − k ) mod m u n = xn / m • dónde ai ∈ to {0,1,…,m – 1} m es primo y requiere una adecuada selección de valores ai para que el máximo periodo sea mk-1 Generadores no lineales. • Usa función de transición lineal, y una función de salida no lineal Ejemplo: “explicit inversive generator” xn = an + c zn = ( an + c ) m−2 mod m un = zn / m Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 6 13 Generadores Lineales Congruenciales (Prime modulus multiplicative linear congruential generator PMMLCG) Lehmer X i +1 = ( a * X i ) mod m Ri +1 = X i +1 m Xo = semilla a = multiplicador m = módulo Ejercicio: a=5, m=16, Xo= 7, 10, 15 14 Generadores Lineales Congruenciales (Mixtos) Thomson hacia 1958 X i +1 = (a * X i + c) mod m Ri +1 = X i +1 m Xo = semilla a = multiplicador c = incremento m = módulo Ejercicio: a=23, c=6, m=18 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 7 15 Observaciones: Período: Longitud del ciclo Si el período es m, el GLC es de período completo (Full period) La semilla no cambia la secuencia, lo que cambia es donde inicia. Ej.: a=5, c=3, m=16 GLC(s,a,c,m) a=7, c=5, m=48 semilla 8 GLC(8,7,5,48) SI a y m no son primos relativos la serie se degenera ej. GLC(8,6,5,48) 16 lunes, 22 de junio de 2015 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 8 17 TEOREMA Un GLC es de período completo, si y solamente si cumple las siguientes condiciones: – El único entero positivo que divide exactamente a m y c es 1 (Primos relativos) – Todos los números primos que dividen a m también dividen a a-1 (Raíz Primitiva) – Si 4 divide a m, entonces también divide a a-1 • GLC(##,25,21,47) • GLC(##, 485, 121, 256) • GLC(##, 106, 1283, 6075) Todas estas condiciones se cumplen si m = 2k, a = 4c + 1, y c es impar, donde c, b, y k son enteros positivos GLC(#, 2814749, 9482661,16777215) GENERADORES EN APLICACIONES COMUNES • MATLAB: – Versiones anteriores a 5: GLC con a = 7 = 16807; c = 0; m = 2 − 1 = 2147483647 – Versions 5 & 6: Fibonacci generator combinado con un un generador de desplazamiento entero aleatorio con P ~ 21492 5 31 • • EXCEL: un = fractional part (9821×un –1 + 0.211327); period SAS (v6): LCG with period ~ 223 • • • • SIMMAN: a= 75, c=0, m=231-1 ARENA:a=16807 m = 231 – 1 PROMODEL: Zi= 630.360.016Zi-1 mod (231 -1) FLEXSIM: (PMMLCG): a=630360016 y m*=2^31 - 1 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 9 19 Recomendaciones para la selección de las semillas 1. No use cero. 2. Evite valores pares. Si un generador no es de periodo completo (por ejemplo GCL multiplicativo con modulo m = 2k ) la semilla debe ser impar. En otros casos no importa. 3. No subdivida una secuencia. Usar una única secuencia para todas las variables es un error común. 4. Use secuencias que no se solapan. Cada secuencia requiere su semilla. 5. Reuse semillas en replicas sucesivas. Usar para la siguiente réplica como semilla el valor de final de la secuencia previa 6. No usar semillas aleatorias. No se puede reproducir el experimento y no garantizan cumplimiento de condiciones 20 PRUEBAS DE ALEATORIEDAD Pruebas de corridas (presunción de independencia) – Tendencias – Corridas arriba / debajo de la media – Longitud de la corrida. Pruebas de frecuencia – Kolmogorov – Smirnov – Chi-cuadrado Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 10 21 Hipótesis para uniformidad Hipótesis para independencia Nivel de confianza 22 Tendencias Evento(i)= “ –” si Rnd(i) < Rnd(i-1) Evento(i)= “ +” si Rnd(i) > Rnd(i-1) Ej. ---+++--+++++-++++ 6 corridas (3 descenso, 3 ascenso) µA σ 2A (2n − 1) 16n − 29 A ~ N ; 3 90 A=Número de corridas n=Número de datos Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 11 23 E(A)=16.33, Var(A)=4.1222 24 lunes, 22 de junio de 2015 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 12 25 26 Arriba / abajo de la media Evento(i)= “ –” si Rnd(i) < 0.5 Evento(i)= “ +” si Rnd(i) > 0.5 2n n 2n n ( 2 n n − n) B ~ N 0.5 + 1 2 ; 1 2 2 1 2 n ( n ( n − 1 )) B=Número de cambios n=Número de datos n1=Número de datos debajo de la media n2=número de datos arriba de la media Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 13 27 E(B)=12.82, V(B)=5.88, B=16 28 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 14 29 ….OTRAS PRUEBAS PARA HIPÓTESIS DE INDEPENDENCIA • • • • Correlación serial Longitud de rachas Prueba de brechas Prueba de Poker lunes, 22 de junio de 2015 30 Chi-cuadrado Si x 02 < xα2 , g No hay evidencia suficiente para rechazar la Ho P-value > α xα2 , g − > prueba .chi .inv (α , gl ) Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 15 31 Kolmogorov-smirnov Para ~U(0,1) Función empírica Sn(x) Estadísticos: 32 {D+,D-} <D(α,n) Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 16 33 EJERCICIO Dado un GLC con: X0 = 5 a = 255 c = 100 m = 1032 Aplicar pruebas de independencia y de frecuencia 34 GENERACION DE VARIABLES ALEATORIAS Factores a considerar para selección del algoritmo • Exactitud: se han de obtener valores de una variable con una precisión dada. A veces se tiene suficiente con obtener una aproximación y otras no. • Eficiencia: el algoritmo que implementa el método de generación tiene asociado un tiempo de ejecución y un gasto de memoria. Elegiremos un método que sea eficiente en cuanto al tiempo y a la cantidad de memoria requeridos. Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 17 35 GENERACION DE VARIABLES ALEATORIAS Factores a considerar para selección del algoritmo • Complejidad: Buscamos métodos que tengan complejidad mínima, siempre y cuando se garantice cierta exactitud. • Robustez: el método tiene que ser eficiente para cualquier valor que tomen los parámetros de la distribución que siga la variable aleatoria. • Facilidad de implementación. 36 GENERACION DE VARIABLES ALEATORIAS • Transformación inversa • Aceptación-Rechazo, • Composición • Convolución Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 18 37 Inverso de la función 38 Transformación inversa Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 19 39 lunes, 22 de junio de 2015 40 ~U[0,1] Transformación inversa x Generar u~U[0,1] x F-1(u) Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 20 41 Distribución Uniforme Continua 42 Transformación inversa Distribución Uniforme discreta en el intervalo [a,b] lunes, 22 de junio de 2015 Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 21 43 Transformación inversa Distribución Weibull 44 Transformación inversa Distribución Exponencial Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 22 45 Transformación inversa Distribución Triangular 46 Transformación inversa Distribución Triangular Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 23 47 EJERCICIO… Se necesita simular el tiempo de servicio de un sistema de atención a clientes, el cual se rige por una distribución triangular con mínimo 2 minutos, máximo 10 y moda de 5 minutos. Usar Transformación inversa, generándolos en EXCEL y Aplicar pruebas de Frecuencia para verificar su ajuste. 48 EJERCICIO… Para simular el comportamiento del tiempo de operación de una máquina, se requiere generar 200 datos que sigan el siguiente comportamiento en su distribución de probabilidad TIEMPO (min) PROBABILIDAD 4 5 6 20 7 20 9 10 11 30 12 15 Usar Transformación inversa, generándolos en EXCEL y Aplicar pruebas de Frecuencia para verificar su ajuste. Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 24 49 Aceptación – rechazo Von Neumann Consiste en muestrear una variable aleatoria respecto a una función de distribución apropiada y someter a dicha variable a un test para determinar si se acepta o no. Se puede usar si existe otra función de densidad g(x) tal que c*g(x) supera la función de densidad f(x), es decir, c*g(x) > f(x) para todos los valores de x. Si esta función existe, entonces se pueden aplicar los siguientes pasos: 1. Genere ~U(0,1) 2. Genere y con h(y), independiente de U 3. Si f(y) > U*C*h(y), devuelva x=y, y retorne. De lo contrario repita desde el paso 1. 50 Aceptación - rechazo ~Trian(a=0, b=c=1) h(x)=2x Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 25 51 Aceptación - rechazo 52 Convolución Si la V.A. x se puede expresar como una combinación de k v.a’s Ej. normal, binomial, poisson, gamma, erlang, …, •Generar k n.a. ~U (u1, u2, …, uk) •Generar k v.a. (xi) a partir de U •Generar X con k ∑x i =1 i Para N~(µ µ,σ σ) Ej: x= ࣌ Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 26 53 Caracterización Box-Muller Z1, Z2, ~N(0,1) Z1= B*cos(θ) Z2=B*sen(θ) B2=Z12+Z22 ~X2(2gl) ~Emedia=2 θ ~ U(0,2π), B y θ son indep. 54 Composición Este método se puede usar si la FDA F(x) deseada se puede expresar como una suma ponderada de otras n FDA: F1 (x), ..., Fn (x): En cualquier caso, los pasos a seguir son: 1. Genere un entero aleatorio I tal que P(I = i ) = pi. Esto puede ser hecho con el método de transformación inversa. 2. Genere x con la i-esima densidad fi (x) y retorne. Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 27 55 Composición Esta densidad es una composición de dos densidades exponenciales. La probabilidad de que x sea positiva es 1/2, y de que sea negativa también es 1/2. Usando la técnica de composición podemos generar variables de Laplace de la siguiente forma: 1. Genere u1 ~ U(0,1), y u2 ~ U(0,1). 2. Si u1 < 0.5, retorne x = -a ln u2 , de lo contrario retorne x = a ln u2. FIN lunes, 22 de junio de 2015 CONSTRUIMOS FUTURO Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 28 Escuela de Estudios Industriales y Empresariales Ingeniería Industrial Facultad de Ingenierías FísicoFísico-Mecánicas CONSTRUIMOS FUTURO Simulación de Sistemas Productivos Ing. Edwin A. Garavito H. Ing. Industrial – UIS - 2014 29