Aplicación de de la simulación simulación con hoja de cálculo a la la Teoría de Colas Colas
APLICACIÓN DE LA SIMULACIÓN CON HOJA DE CÁLCULO A LA TEORÍA DE COLAS Bernal García, Juan Jesús Martínez María Dolores, Soledad María Sánchez García, Juan Francisco Dpto. Métodos Cuantitativos e Informáticos Universidad Politécnica de Cartagena
RESUMEN En la Teoría de Colas, en ocasiones, es preciso recurrir a la simulación de fenómenos de espera generando valores de entrada y salida de acuerdo con los distintos modelos existentes. Para realizar dicha simulación es posible recurrir a determinadas aplicaciones informáticas especializadas en este tipo de cálculos o hacer uso de aplicaciones de uso general como las hojas de cálculo. En el presente trabajo probamos la idoneidad de dicha simulación utilizando las funciones estadísticas propias de la versión 2003 de la conocida aplicación Microsoft® Excel. Además de comprobar el funcionamiento de dichas funciones, se han programando mediante el uso de Visual Basic para Aplicaciones (VBA) aquellas otras que son necesarias para tener recogidas todas las posibilidades y que no son incorporadas por Excel, probando también que cumplen todos los requisitos que son exigibles para este tipo de cálculos.
XIII Jornadas de ASEPUMA
1
Juan J. Bernal García, Soledad M. Martínez María Dolores, Juan F. Sánchez García
1. INTRODUCCIÓN Junto con los resultados proporcionados por la Teoría de Colas, en ocasiones, es preciso recurrir a la simulación de fenómenos de espera generando valores de entrada y de salida de acuerdo con diferentes modelos que existen en la Teoría. Para realizar dicha simulación se pueden usar aplicaciones específicas, o bien utilizar aplicaciones de uso general como las hojas de cálculo.
2. GENERACIÓN DE NÚMEROS PSEUDOALEATORIOS 2.1. Métodos de generación de números pseudoaleatorios Se necesita en primer lugar un procedimiento que genere valores aleatorios uniformemente distribuidos entre 0 y 1. A tal fin, la hoja de cálculo dispone de una función que recibe el nombre de ALEATORIO(). Realmente, los números generados no son números aleatorios, sino pseudoaleatorios pues no son debidos realmente al azar, sino que proceden de cálculos matemáticos que tratan de imitar dicho azar. Existen otros métodos comúnmente utilizados en la literatura (Álvarez Madrigal, Coss, Escudero y Rubinstein), que también sirven para generar valores pseudoaleatorios: 1. Método de los cuadrados medios. 2. Técnica de mitad del producto. 3. Método del multiplicador constante. 4. Método congruencial. 5. Método congruencial aditivo. 6. Método congruencial lineal.
2.2. Validación de los números pseudoaleatorios generados Una vez que se han generado los valores pseudoaleatorios según la distribución uniforme se debe comprobar que efectivamente están uniformemente distribuidos, lo que significa que son uniformes e independientes. Para probar la uniformidad se aplica la prueba de Kolmogorov-Smirnov, la prueba de la χ 2 y la prueba de los promedios; mientras que para probar la independencia se utiliza el test de rachas y la prueba de poker. 2
XIII Jornadas de ASEPUMA
Aplicación de la simulación con hoja de cálculo a la Teoría de Colas
En las figuras 1 a 4 se muestran, para un nivel de confianza del 95%, las pruebas de Kolmogorov-Smirnov, χ 2 , de rachas y de los promedios que se han realizado sobre 1000 valores simulados utilizando la función ALEATORIO() de Excel. Tras efectuar diversas tiradas aleatorias comprobamos que las pruebas resultan satisfactorias en todos los casos. CLASE
FRECUENCIA
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
F.R.ACUM.
81 106 96 96 110 107 99 84 107 114 1000
TOTAL
TEÓRICA
0,081 0,187 0,283 0,379 0,489 0,596 0,695 0,779 0,886 1
DIFERENCIA
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
0,019 0,013 0,017 0,021 0,011 0,004 0,005 0,021 0,014 0,000
TEST KOLMOGOROV-SMIRNOV
Diferencia máxima 0,021 Estimador Kolmogorov-Smirnov D0,05;1000 0,043 NO SE RECHAZA LA HIPÓTESIS DE UNIFORMIDAD
Figura 1 CLASE
FRECUENCIA
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 TOTAL
F. TE RICA
81 106 96 96 110 107 99 84 107 114 1000
CHI CUADRADO
100 100 100 100 100 100 100 100 100 100
3,610 0,360 0,160 0,160 1,000 0,490 0,010 2,560 0,490 1,960 10,8
TEST CHI CUADRADO
CHI-CUADRADO Estimador
10,800
16,919 NO SE RECHAZA LA HIPÓTESIS DE UNIFORMIDAD
χ 0,05;9
Figura 2 TEST DE RACHAS
U 667 MEDIA 666,333 DESV.TÍPICA 13,321 Z 0,050 Z0,025 1,960 NO SE RECHAZA LA HIPÓTESIS DE UNIFORMIDAD
Figura 3
XIII Jornadas de ASEPUMA
TEST DE LOS PROMEDIOS
MEDIA 0,513 Z 1,447 Z0,025 1,960 NO SE RECHAZA LA HIPÓTESIS DE UNIFORMIDAD
Figura 4
3
Juan J. Bernal García, Soledad M. Martínez María Dolores, Juan F. Sánchez García
3.
GENERACIÓN
DE
VARIABLES
ALEATORIAS
CON
DISTRIBUCIÓN NO UNIFORME 3.1. Métodos de generación Existen diversas técnicas para generar variables aleatorias cuya distribución no es uniforme. 3.1.1. Técnica de la transformada inversa (figura 5).
Figura 5
Esta técnica utiliza números aleatorios uniformes para generar variables aleatorias con una distribución específica. Los pasos a seguir son: 1. Decidir la función de densidad f ( x) que se desea para la variable a generar. 2. Calcular la función acumulada de probabilidad F ( x) para la variable aleatoria deseada. 3. Formular la ecuación F ( x) = U i . 4. Resolver la ecuación anterior, es decir, calcular F 1 (U i ) = x . −
5. Generar los valores de la variable deseada. La principal limitación de este método es que la función de densidad de la distribución debe ser fácilmente integrable.
4
XIII Jornadas de ASEPUMA
Aplicación de la simulación con hoja de cálculo a la Teoría de Colas
3.1.2. Técnica gráfica de la transformada inversa (figura 6).
Figura 6
Este método se utiliza cuando las variables aleatorias no se comportan de forma continua o no tienen una distribución conocida. Los pasos a seguir son: 1. Generar un histograma que exprese las probabilidades deseadas en las variables a generar. 2. Encontrar la probabilidad acumulada a partir del histograma. 3. Localizar algún U i en el intervalo [0,1] en el eje de ordenadas de la gráfica de probabilidad acumulada. 4. Proyectar hasta el polígono de la curva de probabilidad acumulada y después reflejar sobre el eje de coordenadas, encontrando el valor de una variable aleatoria con la distribución deseada. Si la variable aleatoria buscada es discreta,
tomará el valor de
la marca de clase correspondiente, y, si es continua, el valor se calculará mediante interpolación lineal. 3.1.3. Método polar .
Esta técnica se utiliza cuando la distribución no es integrable en todos los intervalos, como es el caso de la distribución normal. Su razonamiento es que al representar pares de coordenadas ( Z 1 , Z 2 ) normales estándar seleccionadas al azar de una tabla, se obtiene un diagrama de dispersión con correlación aproximada de cero, es decir, los puntos representados están distribuidos homogéneamente en todos los cuadrantes.
XIII Jornadas de ASEPUMA
5
Juan J. Bernal García, Soledad M. Martínez María Dolores, Juan F. Sánchez García
3.2. Validación de los valores generados Para validar los valores simulados de una variable se utilizan la prueba de la χ 2 y la prueba de Kolmogorov-Smirnov con datos agrupados.
4. SIMULACIÓN MEDIANTE HOJA DE CÁLCULO 4.1. Funciones estadísticas: Distribuciones probabilísticas Hasta hace algunos años las funciones de tipo estadístico que incorporaban las distintas aplicaciones de hoja de cálculo eran muy limitadas, obligando al usuario a programar aquellas funciones que necesitaba (Bernal García), o bien era preciso adquirir programas complementarios como @RISK, Analyze-It, Crystal Ball y otros, que incorporan funciones adicionales a la hoja de cálculo. Así, en la última versión de la hoja de cálculo Excel aparece una amplia serie de funciones estadísticas relacionadas con las distribuciones probabilísticas. Con todas estas funciones se pueden realizar simulaciones basadas en las distribuciones beta, F, gamma, logarítmico-normal, normal y t de Student, ya que para todas ellas existen funciones inversas, las cuales a partir de la probabilidad acumulada y de los parámetros propios de cada distribución devuelven el valor que hace que se obtenga dicha probabilidad. El procedimiento para ello consiste en generar números aleatorios de acuerdo con la distribución uniforme y a partir de dicho valor (que siempre será mayor o igual que cero y menor que 1) aplicar la correspondiente función inversa para obtener el valor al que le corresponde la probabilidad obtenida aleatoriamente 1.
4.2. Construcción de funciones en Excel mediante VBA Dado que en determinadas simulaciones las variables a simular no siguen ninguna de las distribuciones que incorporan las aplicaciones de hoja de cálculo, se debe proceder a su simulación. Básicamente, existen dos posibilidades: •
1
Realización manual de los cálculos necesarios en la propia hoja de cálculo.
Por ejemplo, la función DISTR.NORM.INV( probabilidad, media, desviación típica ) devuelve
el valor inverso de la distribución acumulativa normal para la media y desviación típica especificadas, siendo la probabilidad un valor pseudoaleatorio uniformemente distribuido entre 0 y1.
6
XIII Jornadas de ASEPUMA
Aplicación de la simulación con hoja de cálculo a la Teoría de Colas
•
Programación de la función adecuada mediante VBA.
La primera de las técnicas puede suponer el problema de que existan cálculos intermedios que es necesario realizar para obtener el valor final. En este caso, para cada tirada aleatoria habría que recalcular la simulación y guardarla mediante macros en una tabla, en la cual se vería solamente el valor obtenido. Adicionalmente, en el caso de que se necesitara efectuar otra simulación mediante la misma distribución de probabilidades se deberían rehacer los cálculos nuevamente. Por otra parte, esta posibilidad tiene como ventaja que no precisa conocimiento alguno en programación para poder efectuarla. La segunda técnica, que implica conocer programación en Visual Basic para Aplicaciones (VBA), plantea la ventaja de que mediante una función que se añade a la hoja de cálculo como cualquier otra función de las que trae incorporadas la propia aplicación, puede ser llamada tantas veces como sea necesario y en tantas celdas como sea preciso simular sin ninguna limitación. Adicionalmente, se puede proteger su contenido para que no sea visible por el usuario de forma que éste sólo tenga que conocer la sintaxis de la función para su utilización. De esta forma, también, se evitan manipulaciones que puedan arrojar resultados incorrectos.
4.3. Simulación de la inversa de la distribución de Poisson Para poder determinar el número de llegadas que ocurren en una unidad de tiempo se necesitaría una función, que a partir de la probabilidad simulada mediante la distribución uniforme y, a partir de la tasa media de llegadas calcule el valor correspondiente al número de llegadas que se han producido. La complicación principal consiste en que al tratarse de una función discreta los valores deben ser números enteros. Dicha función no existe como tal en las aplicaciones de hoja de cálculo, por lo que se debe recurrir a técnicas de simulación para su cálculo, y al ser una función no integrable no se puede utilizar la técnica de la transformada inversa. En la literatura existen diversas opciones, de las cuales se ha seleccionado la propuesta por Escudero, que ha sido incorporada siguiendo el organigrama siguiente:
XIII Jornadas de ASEPUMA
7
Juan J. Bernal García, Soledad M. Martínez María Dolores, Juan F. Sánchez García
Figura 5
4.4. Simulación de la inversa de la distribución exponencial En este caso el proceso es mucho más sencillo ya que esta función no es discreta y además es fácil obtener el valor buscado a partir de la expresión de su función de distribución, utilizando la técnica de la transformada inversa: xi
=−
1 λ
ln U i
4.5. Simulación de la inversa de la distribución de Erlang Esta función sí se encuentra disponible entre las funciones que incorpora la mayoría de las aplicaciones de hoja de cálculo. En el caso concreto de Microsoftr Excel, existe la función DISTR.GAMMA.INV ( probabilidad ; alfa; beta), donde alfa y beta son los parámetros de la distribución. En este punto, se ha de recordar que la distribución de Erlang es un caso particular de la distribución gamma, siendo alfa un número entero positivo (que en la distribución de Erlang recibe el nombre de parámetro k ).
Pese al hecho de que ya se dispone de dicha función, también se podría construir a partir de los métodos propuestos por Rubinstein, Jöhnk, Wallace, Fishman, Cheng y Tadikamalla.
8
XIII Jornadas de ASEPUMA
Aplicación de la simulación con hoja de cálculo a la Teoría de Colas
4.6. Simulación de distribuciones no conocidas En múltiples estudios puede ocurrir que los valores observados no se corresponden con ninguna función de distribución conocida. Este hecho no debe impedir el efectuar la simulación requerida para el estudio del sistema en el que se han producido esas observaciones. Para efectuar este tipo de cálculos ya no se puede utilizar ninguna función estadística propia de la hoja de cálculo, ni tan siquiera una función programada mediante VBA puesto que la cantidad de parámetros que se necesitaría es desconocida, ya que variaría de unos sistemas a otros. Se debe poder generar valores de acuerdo con la distribución de frecuencias observadas, para lo cual se recurre a la técnica gráfica de la transformada inversa.
4.7. Contraste de los valores simulados Una vez que se han analizado los procedimientos para simular valores para las distribuciones de frecuencias que se necesitan, se deben validar sus resultados. SIMULACIÓN POISSON INVERSA
Método: Laureano F. Escudero lambda = 3,5 0 1 2 3 4 5 6 7 8 9 10 11 12
FRECUENCIA 1120 4260 7317 8702 7548 5321 3070 1586 705 253 75 35 8
TOTAL
0 1 2 3 4 5 6 7 8 9 10 11 12 TOTALES
SIMULACIÓN POISSON 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 0
2
3
4
5
6
POISSON SIMULADA
40000
FRECUENCIA SIMULADA 1120 4260 7317 8702 7548 5321 3070 1586 705 253 75 35 8 40000
1
FRECUENCIA TEÓRICA 1208 4228 7398 8631 7552 5287 3084 1542 675 262 92 29 9 40000
F.REL.SIM. ACUMULADA 0,02800 0,13450 0,31743 0,53498 0,72368 0,85670 0,93345 0,97310 0,99073 0,99705 0,99893 0,99980 1,00000
TEST K OLMOGOR OV-SMIRNOV
Diferencia máxima Estimador Kolmogorov-Smirnov D0,05;40000 NO SE RECHAZA LA HIPÓTESIS
F.REL.TEÓR. ACUMULADA 0,03020 0,13589 0,32085 0,53663 0,72544 0,85761 0,93471 0,97326 0,99013 0,99669 0,99898 0,99971 0,99992
7
8
9
10
11
12
POISSON TEÓRICA
DIFERENCIA F.REL.ACUM. 0,00220 0,00139 0,00342 0,00166 0,00177 0,00091 0,00126 0,00016 0,00060 0,00036 0,00006 0,00009 0,00008
C LCULOS 2
χ
6,41060 0,24219 0,88686 0,58406 0,00212 0,21865 0,06355 1,25551 1,33333 0,30916 3,14130 1,24138 0,11111
TEST CH I CU ADRADO
0,003 CHI-CUADRADO Estimador 2 0,007 χ 0,05;12 NO SE RECHAZA LA HIPÓTESIS
15,800 21,026
Figura 6 XIII Jornadas de ASEPUMA
9
Juan J. Bernal García, Soledad M. Martínez María Dolores, Juan F. Sánchez García
4.7.1. Inversa de la distribución de Poisson
Para comprobar la validez de los métodos de simulación de la función Poisson, se han realizado 40.000 tiradas aleatorias para cada uno de los métodos analizados (figura 6), y a continuación se han aplicado las pruebas de Kolmogorov-Smirnov y de la χ 2. Se puede observar, en dicha figura, que no existe razón para rechazar la hipótesis de que la frecuencia teórica y la frecuencia simulada pertenecen a la misma distribución. 4.7.2. Inversa de la distribución exponencial
Dado el método de cálculo de la simulación para la distribución exponencial, mediante la transformada inversa, no existe ninguna posibilidad de error, siempre y cuando la generación de números aleatorios se corresponda efectivamente con una distribución uniforme, y es conveniente recordar que la generación de números pseudoaleatorios utilizando la función propia de la hoja de cálculo cumplía todos los requisitos exigibles. Como era previsible, tampoco existen diferencias entre las frecuencias simuladas y las frecuencias teóricas. 4.7.3. Inversa de la distribución Erlang
No existen diferencias entre las frecuencias simuladas y las frecuencias teóricas, lo que revela que dicha función es válida para realizar la simulación de valores de acuerdo con una distribución gamma (y por extensión con una distribución Erlang), por lo que no se necesita recurrir a la programación de ninguno de los algoritmos relacionados en el apartado 4.5.
5. CONCLUSIONES Podemos comprobar que la hoja de cálculo Microsoft® Excel, siendo una herramienta de tipo ofimático, se revela como una aplicación que permite la simulación de todo tipo de distribuciones estadísticas. En particular, es posible efectuar la simulación de las funciones de distribución propias de la Teoría de Colas, cumpliendo los parámetros obligados de rigor que se debe exigir a este tipo de cálculos. Además, la utilización de su editor de Visual Basic para Aplicaciones (VBA) permite dotarla de aquellas distribuciones de las que carece, utilizando para ello una programación orientada a objetos. 10
XIII Jornadas de ASEPUMA
Aplicación de la simulación con hoja de cálculo a la Teoría de Colas
6. REFERENCIAS BIBLIOGRÁFICAS •
Álvarez Madrigal, M. (1997). Curso virtual de Investigación de Operaciones. Instituto Tecnológico y de Estudios Superiores de Monterrey. Campus Estado de México. http://webdia.cem.itesm.mx/ac/alvarez/acceso.html
•
Bernal García, J. J. (1990). Simulación de un modelo real de circulación de documentos administrativos. Tesis doctoral. Universidad de Murcia.
•
Cheng R. C. H. (1978). “Generating beta variates with non-integral shape parameters”, Communications of the Association for Computing Machinery, 21, 317-322.
•
Coss Bu, R. (1982). Simulación. Un enfoque práctico. Limusa, México D.F.
•
Escudero, L. F. (1973). La simulación en la empresa. Ediciones Deusto, Bilbao.
•
Fishman, G. S. (1976). “Sampling from the gamma distribution on a computer”, Communications of the Association for Computing Machinery, 19, 407-409.
•
Fishman, G. S. (1978). Principles of Discrete Event Simulation. John Wiley & Sons, New York.
•
Jöhnk, M. D. (1964). “Erzeugung von Betraverteilten y Gammaverteilten Zuffalszahlen”, Metrika, 8, 5-15.
•
Rubinstein, R. Y. (1981). Simulation and the Monte Carlo Method. John Wiley & Sons, New York.
•
Tadikamalla, P. R. (1978). “Computer generation of gamma random variables”, Communications of the Association for Computing Machinery, 21, 419-422.
•
Tadikamalla, P. R. (1978). “Computer generation of gamma random variables II”, Communications of the Association for Computing Machinery, 21, 925-928.
•
Wallace, N.D. (1974). “Computer generation of gamma random variables with nonintegral shape parameters”, Communications of the Association for Computing Machinery, 17, 691-695.
XIII Jornadas de ASEPUMA
11