Qué es simulación?
La simulación es la representación analítica por medios numéricos y/o computacionales de cualquier actividad. Existen varias metodologías, herramientas y paradigmas para simular. Es posible simular utilizando lápiz y papel, utilizando calculadoras y hasta hojas de cálculo. También existen programas especializados para simular. Hay programas genéricos o especializados para simular.
Historia de la simulación
El siguiente artículo contiene una breve historia de la simulación elaborado en el marco de la conferencia anual de simulación (Wintersim) en 2009.
A proposito de la historia de la simulacion, la universidad estatal de Carolina del Norte en Estados Unidos ha realizado una serie de entrevistas a los pioneros de la simulacion. Los videos son de acceso público y estan disponibles en el siguiente link.
Paradigmas de simulación
- Montecarlo: Consiste en identificar distribuciones estadísticas y ejecutarlas de manera artificial múltiples veces en busca de replicar el fenómeno de estudio. Ejemplo de esto puede ser la llegada de llamadas a un call center, la distribución de cartas en una baraja, la predicción de tráfico en una vía en diferentes horas del día. La universidad de Lancaster en el reino unido tiene un interesante recuento sobre este metodo, usted puede acceder a el en el siguiente link.
- Sistemas dinámicos: Esta técnica nace de la utilización de ecuaciones de estado y de flujo a procesos dinámicos como el crecimiento o la dinámica de fluídos. Si bien existen múltiples técnicas analíticas para la solución de este tipo de dinámicas como las ecuaciones diferenciales y el cálculo de variaciones, es también cierto de el grado de complejidad para resolverlas es elevado. Adicionalmente al introducir variabilidad al sistema la complejidad se multiplica. En estos casos la simulación se vuelve muy eficaz y permite modelar y resolver los sistemas con gran precisión y rapidez. Ejemplos de este tipo de simulaciones es el crecimiento económico, la migración, los modelos de poblaciones, etc.
- Simulación de eventos discretos: Es tal vez la técnica más conocida. Se basa en la generación anticipada de eventos en un espacio discreto. Cada evento es programado en función de un comportamiento pre-definido como una distribución estadística o un tiempo fijo así como un estado general del sistema. Los eventos ocurren de manera secuencial y el simulador itera en función de ellos generando los resultados. En términos más sencillos se puede decir que cada entidad es una caja negra que posee sus propios atributos, el sistema central lee cada caja negra cada fracción de tiempo y ejecuta una lista de eventos en función de los parámetros y variables de cada caja. Los eventos son ejecutados en secuencia incluyendo las llegadas e iteraciones entre las mismas entidades. Entre los ejemplos encontramos un taller de manufactura, una cola en un cajero y un proceso logístico en una central de distribución.
- Simulación basada en agentes: Es la técnica más reciente (nace en los años 90´s) con mayor complejidad y a la vez la más versátil. Contrario a la simulación de eventos discretos, en la ABS (por sus siglas en inglés) las entidades son sustituidas por agentes individuales en donde los eventos se definen y ejecutan de manera individual lo que ocasiona que el sistema central solo reciba las acciones individuales componiendo así el estado del modelo. Esta metodología es particularmente útil cuando se desea simular sistemas de mediana y alta complejidad donde definir las ecuaciones de estado y de transición que rigen todo el sistema es muy complejo y en cambio definir las ecuaciones individuales de cada elemento o sub-grupo es más sencillo. Muchos ejemplos hay de esta técnica, prácticamente todos los modelos realizables en las primeras tres metodologías pueden construirse con este enfoque. Por mencionar algunos estan los mercados de valores, los modelos de difusión de enfermedades, la publicidad, las compras en almacenes, etc.
En los últimos años se ha vuelto popular la combinación de estas técnicas, lo que permite construir modelos más completos y alta complejidad.
Ejemplo de algunas aplicaciones de la simulación
Los siguientes son algunos modelos que he construido a lo largo de mi ejercicio como consultor en simulación y optimización. En cada uno encontrará una explicación del contexto, el problema puntual a resolver y la metodología empleada. En algunos casos incluyo el modelo o algún recurso que permita visualizar los resultados (fotos, videos, etc.)
-
- Manufactura y Servicios
- Taller simple
- Taller complejo
- Optimización de operaciones en un aserradero industrial
- Call center
- Gestión de colas en un aeropuerto
- Gestión de camiones en una construcción
- Logística
- Simulador de inventarios
- Central de distribución
- Cadena de aprovisionamiento 1
- Cadena de aprovisionamiento 2 (Efecto bullwhip o látigo)
- Almacenamiento de alta densidad (carrusel) vs convencional
- Seguimiento a camiones con GIS
- Salud
- Modelo de admisiones
- Triage en urgencias
- Energía
- Aprovechamiento de resíduos sólidos para generación eléctrica
- Red de abastecimiento eléctrico
- Economía
- Crecimiento económico
- Desempleo
- Mercado artificial de valores
- Pricing
- Otros
- Modelo de ascensores
- Modelo de trenes
- Manufactura y Servicios
Constantemente estoy actualizando mi librería de modelos, si usted tiene sugerencia de algún caso a ser modelar por favor deje un comentario.
Bibliografía recomendada
Los siguientes son algunos libros que pueden ayudar al lector a profundizar su aprendizaje sobre la teoría de la simulación:
- BANKS, Jerry. Discrete-Event System Simulation. 4 Ed. New Jersey. Pearson Prentice Hall. 2005
- BORSHCHEV, Andrei. The Big Book of Simulation Modeling: Multimethod Modeling with AnyLogic 6. AnyLogic North America (June 11, 2013)
- GARCÍA DUNNA, Eduardo, GARCÍA REYES, Heriberto, CÁRDENAS BARRÓN, Leopoldo Eduardo. Simulación y análisis de sistemas con PROMODEL®. 1 ed. México. Pearson Prentice Hall. 2006.
- KELTON W.D., SADOWSKI R.P., SADOWSKI D.A., 1998, “Simulation with Arena”, Mc Graw Hill, Boston.
- LAW A.M., KELTON W.D., 1991, “Simulation Modeling & Analysis”, Second Edition, McGraw-Hill, New York.
Introducción general a la simulación (presentación)
Durante los años 2008 y 2009 tuve la oportunidad de dictar la asignatura de simulación en la especialización en ingeniería de operaciones en manufactura y servicios en la universidad javeriana de Bogotá. El software utilizado entonces fue Promodel. La siguiente es la presentación de soporte utilizada entonces en la cuál se hace un recorrido por la teoría y metodología de simulación así como varios tutoriales.
Buenos días
Tengo una consulta referente al significado del logo y las "figuras o imágenes " que se aprecian.
Como se aplica Anylogic a Big data y minería de datos.
Soy estudiante de la Institución Universitaria Esumer en Medellín.
Hola Jose María
Simulación y Analytics son dos disciplinas diferentes y por lo general los software son especializados para cada una, de manera que un simulador no suele ser una buena idea para manipulación y análisis de datos. Sin embargo, Anylogic es solo una herramienta Java que se ejecuta en Eclipse, lo que significa que virtualmente cualquier librería Java puede importarse para desarrollar otros análisis, como minería de datos.
Desde el punto de vista metodológico, la simulación es algo que ocurre antes o después de la minería de datos, sin embargo es posible encontrar modelos en los que la minería se haga durante la simulación como algoritmo para la toma de decisiones, si este es el caso debes integrarlo desde Eclipse.
Sugiero dos caminos entonces:
1) Si la minería es antes o después de la simulación, es mejor hacerla fuera de AnyLogic utilizando software especializado (SAS, Stata, R, JMP, SPSS, etc.) y luego importar los datos transformados al simulador o simplemente exportar los datos del simulador a un archivo de texto o una base de datos y nuevamente usar el software deseado. Un camino muy particular si eres usuario de R es utilizar AspectJ para comunicar AnyLogic y R como se muestra en el siguiente video https://www.youtube.com/watch?v=SrDoR4ro11Q
2) Si el Analytics debe hacerse durante la simulación, es mejor importar una librería especializada en Java como SPMF http://www.philippe-fournier-viger.com/spmf/ y hacer el análisis en tiempo real.
Si el volumen de datos es muy elevado (varios millones de datos), yo recomiendo hacer alguna clase de abstracción y no mezclar todo, dentro del simulador.
Buena suerte, espero te sirva.