Antes de comenzar
La simulación es una de las herramientas de modelización probabilística más utilizadas en la industria. Se utiliza para el análisis de sistemas existentes y para la selección de sistemas óptimos a partir del planteamiento y comparación de diversos escenarios plausibles.
Ejemplo 0.1 Por ejemplo, supongamos que un gran supermercado ha estado recibiendo quejas de los clientes sobre el tiempo que pasan en la cola esperando una caja disponible para pagar. La dirección ha decidido añadir algunas cajas más, pero ha de decidir cuántas añadir. Los modelos de simulación pueden ayudar a la dirección a determinar el número de cajas necesarias para dar un servicio adecuado a sus clientes.
Aunque el enfoque principal de la Estadística es la construcción de modelos analíticos que describan el funcionamiento de los procesos en función de variables que les afecten, en ocasiones nos puede resultar menos costoso proceder mediante simulación para obtener una predicción razonable de cómo se va a comportar el sistema o proceso ante distintas configuraciones de esas variables condicionantes. La simulación permitirá obtener una aproximación del comportamiento del sistema ante distintos escenarios.
Ejemplo 0.2 La forma de dar una solución al problema del supermercado mediante simulación podría consistir en escribir un programa informático que genere clientes que lleguen aleatoriamente (con la frecuencia habitual con que lo hacen, o con otras), simular también unos tiempos de permanencia en caja (para realizar los pagos) y evaluar los tiempos de espera para distintas configuraciones del número de cajas abiertas. Se podría así determinar el efecto de tener varias cajas abiertas en función del tráfico de clientes, y así mismo dimensionar con antelación su plantilla, quizás incluso adaptándola a diferentes épocas o días, para tener suficientes cajeros ubicados en las cajas.
Una razón importante para justificar el uso de la simulación es que puede utilizarse para aumentar la comprensión de un proceso. Es imposible construir un modelo de simulación de un proceso que no se entiende cómo funciona, con lo que el mero hecho de desarrollar un modelo de simulación de un proceso específico forzará a comprenderlo.
Sin embargo, el aspecto más relevante a tener en cuenta al construir un modelo de simulación es que este reproduzca la realidad fielmente, o al menos de la forma más precisa posible. En problemas sencillos, como los que veremos al inicio de este manual, resulta fácil comprobar si los algoritmos de simulación dan buenas soluciones; sin embargo, en sistemas más complejos no es trivial asegurar la calidad de las simulaciones obtenidas al reproducir el funcionamiento del sistema que simulan, por lo que será necesario establecer medidas de validación.
Para poder abordar sistemas de simulación es necesario tener previamente unos conocimientos básicos de probabilidad, que desarrollamos en la Unidad 1 Conceptos básicos, y a partir de los que damos la definición de ‘proceso estocástico’. Seguimos el camino en la Unidad 2 Cadenas de Markov de Tiempo Discreto con el estudio de las cadenas de Markov de tiempo discreto, los procesos de Poisson en la Unidad 3 Proceso de Poisson, las cadenas de Markov de tiempo continuo en la Unidad 4 Cadenas de Markov de Tiempo Contínuo, y finalizamos con las colas de espera en la Unidad 5 Sistemas de colas.
Al final de todas las unidades se proporciona una colección de ejercicios relacionados con los procedimientos estudiados en dicha unidad, para practicar los conceptos estudiados resolviendo problemas generalmente relacionados la realidad. Los ejercicios aparecen etiquetados como B (Básicos), de aplicación directa de conceptos o técnicas, o como A (Avanzados), si requieren de una modelización concreta y más tiempo para resolverlos.
Todos los ejercicios deben resolverse mediante simulación. Se recomienda identificar las variables involucradas y sus distribuciones, así como construir el algoritmo de simulación (5000 simulaciones y semilla=12), con suficiente detalle y comentarios. El algoritmo de simulación es conveniente que venga desarrollado en función de los parámetros de entrada del problema, de forma que resulte útil para responder las preguntas formuladas y otras que se puedan plantear ante variaciones de las condiciones iniciales.
Parte de los contenidos de este curso se han obtenido de la documentación de las diferentes librerías de R utilizadas, y de los libros AM Mayoral et al.1, Richard M. Feldman and Ciriaco Valdez-Flores2, V. G. Kulkarni3 y Christian P.Robert and George Casella4. Buena parte de los ejercicios y ejemplos propuestos se han obtenido también de los manuales de José Pedro GarcÃa Sabater5 y Ricardo Cao Abad6.