4o. Encuentro. Matemáticas en todo y para todos. Uso de las distribuciones de probabilidad en la simulación de sistemas productivos Leopoldo Eduardo Cárdenas Barrón lecarden@itesm.mx Departamento de Ingeniería Industrial y de Sistemas Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Resumen Este artículo trata sobre las aplicaciones de las distribuciones de probabilidad en la simulación de sistemas productivos. Primeramente, se expone el concepto de números aleatorios entre cero y uno, y los métodos para generar números aleatorios entre cero y uno. Después, se describe el método de la transformada inversa para construir generadores de variables aleatorias, y se presenta la aplicación de las distribuciones de probabilidad en la simulación de sistemas productivos haciendo uso de los generadores de variables aleatorias y números aleatorios entre cero y uno. Finalmente, se deja al lector una actividad que consta de 7 ejercicios para que practique los conceptos adquiridos durante la lectura del presente artículo. Palabras clave: Simulación, distribuciones de probabilidad, números aleatorios, generadores de variable aleatoria, I. Introducción. Para realizar una simulación se requiere de números aleatorios en el intervalo (0,1), a los cuales les llamaremos ri. Donde los ri’s son una secuencia de números que contiene n números; donde todos los números ri’s en la secuencia son diferentes y n recibe el nombre de periodo o ciclo de vida del generador que creó la secuencia. Los ri’s son el ingrediente básico de la simulación de procesos estocásticos y generalmente se usan para generar el comportamiento de variables aleatorias tanto continuas como discretas. Estrictamente los ri’s son números pseudo aleatorios, debido a que no es posible generar números realmente aleatorios. La razón por la que los ri’s no son realmente aleatorios es porque son generados por medio de algoritmos determinísticos que requieren de ciertos parámetros. Existen una gran variedad de algoritmos para generar números aleatorios entre cero y uno, tales como congruencial lineal, congruencial multiplicativo, congruencial mixto, multiplicador constante, productos medios, cuadrados medios, entre otros. Cabe mencionar que los lenguajes de programación, lenguajes de simulación, paquetes de simualción y hojas de cálculo contienen una función para 1 4o. Encuentro. Matemáticas en todo y para todos. generar números entre cero y uno de manera automática. Por ejemplo, en Excel se usa la función =aleatorio() ó =rand(). Ahora, se presenta el algoritmo congruencial lineal, el cual fue propuesto por D.H. Lehmer en 1951, siendo este algoritmo el más ampliamente usado. Este algoritmo genera una serie de números de números enteros por medio de la siguiente ecuación recursiva: Xi+1 =(aXi + c)mod(m) i = 0,1,2,3,...,n Donde Xo es la semilla, a es la constante multiplicativa, c es una constante aditiva y m es el módulo. Xo>0, a>0, c>0 y m>0 deben ser números enteros. La operación “mod m” significa multiplicar Xi por a, sumar c, dividir el resultado entre m y Xi+1 será el residuo. Es importante señalar que la ecuación recursiva del algoritmo congruencial lineal genera una secuencia de números enteros {0,...,m-1} y para obtener números aleatorios en el intervalo [0,1] se requiere de la siguiente ecuación: X ri = i m -1 i = 1,2,3,...n Ejemplo: Generar 4 números entre 0 y 1 con los siguientes parámetros: Xo=37, a=19, c=33 y m=100. Solución: X1 =(19 * 37 + 33)mod 100 = 36 r1 = 36/99 = 0.3636 X2 =(19 * 36 + 33)mod 100 = 17 r2 = 17/99 = 0.1717 X3 =(19 * 17 + 33)mod 100 = 56 r3 = 56/99 = 0.5656 X4 =(19* 56 + 33)mod 100 = 97 r4 = 97/99 = 0.9797 Es importante mencionar que los generadores de números simplemente generan un conjunto números, después hay que verificar que dichos números cumplan con una serie de propiedades tales como: media de ½, varianza de 1/12, uniformidad e independencia. Para demostrar las propiedades anteriores existen la prueba de medias, la prueba de varianza, la prueba de uniformidad, y la prueba de independencia, respectivamente. Con respecto a las pruebas de uniformidad e independencia existen 2 4o. Encuentro. Matemáticas en todo y para todos. varias opciones de pruebas. Por ejemplo, las pruebas de Kolmogorov-Smirnov y Chicuadrada son útiles para demostrar la uniformidad de los números ri’s. En cuanto a la prueba de independencia existen las pruebas de poker, corridas arriba y abajo, corridas arriba y abajo de la media, series, huecos, entre otras. Una vez que los números ri’s cumplen con las pruebas, el siguiente paso es usarlos en un generador de variable aleatoria. Un generador de variable aleatoria es una expresión matemática que está en función de los números aleatorios ri’s. Por ejemplo: Temperatura i = 35+10*ri grados centígrados, donde si ri=0.25 entonces podemos simular el comportamiento de la temperatura, en este caso, la temperatura simulada es de 37.5 grados centígrados. Si ahora el número aleatorio es ri=0.75, entonces la temperatura es 42.5 grados centígrados, y así podemos repetir el proceso hasta obtener el número de veces que deseamos simular la variable temperatura. Para construir un generador de variable aleatoria, es necesario contar con la función de densidad probabilidad de la variable. Posteriormente, se construye el generador de variable aleatoria por medio de alguno de los métodos disponibles tales como el método de la transformada inversa, método de composición, método de convolución, y método de aceptación y rechazo. El método de la transformada inversa consiste básicamente en 4 pasos: 1) obtener la función de densidad de probabilidad f(x), 2) calcular la distribución de probabilidad acumulada F(x), 3) igualar la función de probabilidad acumulada F(x) a ri, 4) despejar la variable aleatoria x. Con los pasos anteriores se obtiene el generador de variable aleatoria que debe ser usado para simular el comportamiento de la variable. Por ejemplo, si la función de densidad de probabilidad del tiempo de proceso de una pieza en una máquina tiene la distribución de probabilidad uniforme: f(t)=1/30 para 10<=t<=40 minutos y cero en cualquier otro valor. Aplicando el método de la transformada inversa a la función f(t) construiremos un generador de variable aleatoria para simular del tiempo de proceso de piezas en la máquina. 1) obtener la función de densidad de probabilidad f(t), ⎧1 si 10 ≤ t ≤ 40 minutos ⎪ f (t ) = ⎨ 30 ⎪⎩0 en cualquier otro valor 2) calcular la distribución de probabilidad acumulada F(t), 3 4o. Encuentro. Matemáticas en todo y para todos. F(t) = ti ti 1 ∫ f (t )dt = ∫ 30 Lim. inf . 10 dt t = 30 ti = t i − 10 30 10 3) igualar la función de probabilidad acumulada F(t) a ri, t i − 10 = ri 30 4) despejar la variable aleatoria t. t i − 10 = 30 * ri t i = 10 + 30 * ri donde ri es un número aleatorio entre cero y uno. Una vez obtenido el generador de variable aleatoria, ahora hay que simular. Considerando los 4 números ri’s generados anteriormente por medio del algoritmo congruencial lineal (0.3636, 0.1717, 0.5656, y 0.9797) simularemos el tiempo de proceso de 4 piezas: pieza 1 ==> t1 = 10 + 30 * 0.3636 = 20.908 minutos pieza 2 ==> t 2 = 10 + 30 * 0.1717 = 15.151 minutos pieza 3 ==> t 3 = 10 + 30 * 0.5656 = 26.968 minutos pieza 4 ==> t 4 = 10 + 30 * 0.9797 = 39.391 minutos Anteriormente, simulamos el tiempo de proceso para cuatro piezas, los valores simulados están de una manera aislada y no han interactuado con otros valores y reglas lógicas. En muchas ocasiones, los generadores de variables aleatorias no están aislados, generalmente están interactuando con otros generadores de variables aleatorias y reglas lógicas. Es decir, en el caso de una máquina que procesa piezas, dichas piezas tal vez vengan de un proceso anterior, el cual estará marcando un tiempo entre llegadas de las piezas a la máquina, por lo tanto, existirá un generador de variable aleatoria para generar el tiempo entre llegadas de las piezas. Además, cuando la máquina esté procesando una pieza, y llegará a ocurrir la llegada de otra pieza, dicha pieza debe quedar en espera (fila) a que la máquina termine el proceso de la pieza que está procesando. 4 4o. Encuentro. Matemáticas en todo y para todos. Es importante mencionar que para las distribuciones de probabilidad conocidas ya está construido el generador de variable aleatoria, por lo que no es necesario construirlo. Por ejemplo el generador de variable aleatoria para la distribución de probabilidad exponencial es: X i = −media * ln(1 − ri ) y para la distribución de probabilidad uniforme continua es: X i = a + (b − a) * ri Donde a y b son los límites inferior y superior de la distribución de probabilidad uniforme continua, respectivamente. II. Uso de las distribución de probabilidad en la simulación de sistema producción. Existe una gran variedad de configuraciones de sistemas de producción, por ejemplo el sistema de producción de una sola etapa con una sola máquina como el representado en la figura 1. Las piezas llegan al sistema productivo de una en una con un tiempo entre llegadas que siguen algún tipo de distribución de probabilidad. Las piezas se acumulan (hacen fila) en la tarima si la máquina está ocupada. La máquina procesa las piezas con un tiempo de proceso distribuido de acuerdo a un tipo de distribución de probabilidad. Figura 1. Sistema de producción de una sola etapa con una sola máquina Otros ejemplos sobre configuraciones de sistemas de producción son mostrados en las figuras 2 y 3. Donde el sistema de producción representado en la figura 2 es un sistema de producción de dos etapas en donde en cada etapa existe una sola máquina. En 5 4o. Encuentro. Matemáticas en todo y para todos. cambio en la figura 3 se representa un sistema de producción de tres etapas en donde la primera etapa tiene solamente una máquina, la segunda etapa tiene tres máquinas en paralelo, y la tercera etapa tiene dos máquinas en paralelo. Cabe mencionar que podemos generar una infinidad de configuraciones de sistemas productivos, e inclusive generar configuraciones que gráficamente parecieran que son iguales, pero en realidad representan sistemas de producción distintos, debido a que el flujo que siguen los productos que se fabrican dentro del sistema productivo es distinto. Figura 2. Sistema de producción con dos etapas, una máquina en cada etapa. Es importante mencionar que las máquinas que están en paralelo pueden considerarse como máquinas idénticas por lo tanto deben tener tiempo de proceso iguales, o máquinas distintas por lo que su tiempo de proceso será distinto; esto caso ocurre con mucha frecuencia cuando se tienen máquinas en paralelo que procesan el mismo tipo de pieza pero una de las máquinas es manual, otra semiautomática, de modelo reciente o automática. Figura 3. Sistema de producción con tres etapas, algunas etapas con dos o más máquinas en paralelo. 6 4o. Encuentro. Matemáticas en todo y para todos. Considerando el sistema productivo esquematizado en la figura 3, podemos mencionar lo siguiente, va a existir un tiempo entre llegadas de piezas al sistema productivo el cual se comportará de acuerdo a un tipo de distribución de probabilidad. El tiempo de proceso de la máquina que está en la primera etapa tendrá un comportamiento acorde a una distribución de probabilidad. En la segunda etapa existen tres máquinas en paralelo, las cuales pueden ser idénticas y todas tener el mismo tiempo de proceso que siga el mismo tipo de distribución de probabilidad, o que cada máquina sea distinta en tiempo de proceso (tal vez lo más común) y por lo tanto cada máquina tendrá tiempo de proceso con su distribución de probabilidad correspondiente, lo mismo puede ocurrir con la tercera etapa. Ahora se preguntarán y cómo puedo determinar la distribución de probabilidad que siguen los tiempos de entre llegadas y de proceso en cada máquina. Pues, primeramente deberemos recolectar un poco de historia, es decir, debemos llevar a cabo la recolección de los tiempos entre llegadas y de proceso de cada máquina. Segundo, al conjunto de tiempos proponerle una distribución de probabilidad y realizar algún tipo de prueba estadística para determinar el tipo de distribución de probabilidad que siguen los tiempos. Existen varias pruebas para determinar el tipo de distribución de probabilidad que siguen los datos de los tiempos, por ejemplo existen las pruebas de la Chi-cuadrada, Kolmogorov-Smirnov, y Anderson-Darlin. Afortunadamente, también existen paquetes de estadística que son de gran utilidad en la determinación del tipo de distribución de probabilidad que sigue un conjunto de datos. Por ejemplo, tenemos el minitab, stat::fit, entre otros. Ejemplo: Considere el siguiente conjunto de tiempos de proceso (en minutos) por pieza en una máquina: 16.84288 26.81033 18.45535 17.34166 7.06555 6.385111 9.20546 8.648104 36.76116 1.083557 19.45793 2.358834 9.487617 13.57499 16.47965 14.4736 37.23383 22.0958 8.851953 9.293769 21.02074 6.790286 9.832381 8.989405 81.09373 39.21019 67.34301 32.52941 3.043021 28.48385 36.89759 9.62015 4.64463 38.98915 18.0558 4.269692 3.632848 2.41035 6.849029 11.19502 55.69647 53.22929 24.64045 6.921324 25.35731 41.49955 31.25733 39.14699 7.517628 36.50804 Por medio del stat::fit podemos determinar cuál distribución de probabilidad puede representar al conjunto de datos. El stat::fit nos muestra resultados que están mostrados en la figura 4. Estos resultados indican que la distribución que mejor representa al tiempo de proceso de piezas en la máquina es la distribución de probabilidad exponencial. En la figura 5 se muestra la gráfica de la distribución de probabilidad exponencial que representa al tiempo de proceso. 7 4o. Encuentro. Matemáticas en todo y para todos. Figura 4. Resultados del stat::fit Figura 5. Gráfica del tiempo de proceso de las piezas 8 4o. Encuentro. Matemáticas en todo y para todos. Una vez determinado el tipo de distribución de probabilidad que siguen los tiempos entre llegadas y de proceso de cada máquina, el siguiente paso es construir el modelo de simulación, el cual puede ser construido en una hoja de cálculo (Excel), en un lenguaje de programación (C, C++,C#, Pascal, Delphi, Fortran, Basic, QBasic, entre otros), en un lenguaje de simulación (GPSS/H, GPSS/PC, GPSS/World; SLAM, entre otros) o en algún paquete se simulación (Promodel, Automod, Arena, QUEST, WITNESS, entre otros). El ambiente en donde construir el modelo de simulación depende de varios factores, por ejemplo si lo que deseamos simular es algo simple y sencillo como el sistema de producción mostrado en la figura 1, lo podemos realizar en una hoja de cálculo. Para sistemas más complejos, por ejemplo el mostrado en la figura 3, se recomienda el uso de un paquete de simulación. III. Conclusión En este artículo se han presentado el uso de las distribuciones de probabilidad en la simulación de sistemas productivos. Primeramente, se expuso el concepto de números aleatorios entre cero y uno, y los métodos para generar números aleatorios entre cero y uno. Después se describió el método de la transformada inversa para construir generadores de variables aleatorias, así como también se presentó el uso de las distribuciones de probabilidad en la simulación de sistemas productivos haciendo uso de los generadores de variables aleatorias y números aleatorios entre cero y uno. Finalmente, se deja al lector una actividad con 7 ejercicios para que practique lo aprendido durante la lectura de este artículo. IV. Anexo Actividad: Ejercicio 1: Por medio del algoritmo congruencial lineal genere 5 números entre cero y uno con los siguientes parámetros: Xo=21, a=13, c=26 y m=64. Ejercicio 2: El algoritmo congruencial lineal se convierte en el algoritmo congruencial multiplicativo cuando c es igual a cero (c=0). Por medio del algoritmo congruencial multiplicativo genere 5 números entre cero y uno con los siguientes parámetros: Xo=11, a=21 y m=128. 9 4o. Encuentro. Matemáticas en todo y para todos. Ejercicio 3: El tiempo de torneado (en horas) de una pieza tiene la distribución de probabilidad continua siguiente: f (t ) = 4t 3 16 0 ≤ t ≤ 2 horas Simular el comportamiento del tiempo de torneado de 5 piezas. Para la simulación utiliza los 5 números aleatorios generados en el ejercicio 1. Ejercicio 4: En una estación con una sola máquina existen 5 piezas listas para procesarse. El tiempo de proceso de las piezas sigue una distribución de probabilidad exponencial con media de 15 minutos. Determine el tiempo total que le llevará a la máquina procesar las 5 piezas. Para la simulación utiliza los 5 números aleatorios generados en el ejercicio 2. Ejercicio 5 El tiempo de corte (expresado en minutos) de un anillo metálico tiene la siguiente distribución de probabilidad continua: ⎧8 f (t ) = ⎨ ⎩0 11.975 ≤ t ≤ 12.10 en otro valor Simular el tiempo de corte para 3 anillos metálicos. Usar 3 números aleatorios generados por medio del método congruencial lineal con parámetros: a=13, m=256, c=89, Xo=69. Ejercicio 6. La máquina fresadora DITZEN está en funcionamiento durante un tiempo distribuido exponencialmente media de 265 horas y falla, por lo que requiere que sea reparada. Se han recopilado 50 tiempos de reparación de la máquina DITZEN, los cuales están expresado en minutos. Con respecto a los tiempos de reparación de la máquina DITZEN se ha obtenido la siguiente información del stat::fit: Auto::Fit of Distributions distribution rank acceptance Uniform(15., 19.9) 100 do not reject Lognormal(15., 0.668, 0.918) 0.813 reject 10 4o. Encuentro. Matemáticas en todo y para todos. descriptive statistics data points 50 minimum 15.1161 maximum 19.9187 mean 17.608 median 17.7516 mode 19.2875 standard deviation 1.5055 variance 2.26652 Determinar en que tiempo (en minutos) la máquina de control numérico DITZEN entrará de nuevo en funcionamiento después del segundo paro por falla, suponiendo que la máquina empieza en funcionamiento en el tiempo cero. Para simular el tiempo de funcionamiento de la máquina y el tiempo de reparación de la máquina es necesario calcular 4 números aleatorios en el rango (0,1); utilice el método congruencial multiplicativo con la siguiente información: a=11, m=512, Xo=13, para generar los 4 números aleatorios (0,1) y utilice los dos primeros números generados para simular el tiempo de funcionamiento de la máquina y los últimos dos números generados para simular el tiempo de reparación de la máquina. Ejercicio 7. Considere los siguientes 50 tiempos de proceso (expresado en minutos) en una máquina fresadora, 16.21041 16.36975 17.04456 15.19044 18.66544 19.62062 18.07798 16.30308 16.39357 18.11481 16.25205 18.55014 18.71943 19.04788 17.29887 18.77906 19.1297 15.65633 15.38137 18.58606 16.17577 15.9486 18.613 19.56527 15.3293 17.81262 16.02536 16.4915 19.77431 19.45417 18.95439 19.38678 18.27059 15.28796 15.1161 17.75368 17.649 19.43963 15.49208 18.02169 19.47592 17.74947 19.53324 19.91869 19.51316 17.32287 15.58289 16.98236 17.46792 16.89999 y determine: a) el tipo de distribución de probabilidad que siguen los tiempos de fresado b) el generador de variable aleatoria correspondiente para simular el tiempo de fresado c) simule el tiempo de fresado de 20 piezas (utilice números aleatorios generados en Excel) 11