Uso de las distribuciones de probabilidad en la simulación

Anuncio
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
Descargar