Definiciones
- Modelo: Representación física, matemática o lógica de un sistema y/o sus componentes
- Simulación: Interación de los componentes de un modelo en el tiempo
- Experimento: Ejecución única de una simulación. Múltiples repeticiones de un experimento son necesarios para realizar un proyecto completo de simulación.
- Entidad: Elemento físico que representa cualquier elemento simulado (recurso humano, vehículo, paquete, cliente, etc.). Una entidad es a lo que se refieren los procesos durante la simulación es decir si la entidad es una caja, los elementos lógicos del modelo se referirán a esta caja para la toma de decisiones y la alocación de actividades.
- Agente: Entidad a la cuál se le puede asignar autonomía para la toma de decisiones. Los agentes son preferidos frente a las entidades pues permiten modelar situaciones más complejas.
- Estado: Situación de una entidad y/o agente en un momento específico de la simulación, incluyendo atributos, posición, etc.
- Evento: Ocurrencia durante la simulación. Cada ocurrencia incluyendo llegadas, partidas, cambios de estado, conexiones, etc., son un evento y se registran durante la simulación. Los eventos son los momentos elementales a partir de los cuales se articula la simulación y se llega al resultado final. Las decisiones tomadas artificialmente durante el experimento, son provocadas (disparadas) por los eventos, de ahí su el nombre de la simulación de eventos discretos.
- Proceso Lógico:
- Parámetro: Atributo inicial de cada entidad y/o agente
- Variable: Atributo y/o estado de entidades y/o agentes que varian a lo largo de la simulación. Es importante entender la diferencia entre parámetros y simulación pues pese a que ambos pueden ser usados de manera similar, existe una carga computacional mayor cuando se usan parámetros por ende es mejor usarlos solo al inicio de la simulación cuando se definen entidades y/o agentes.
- Semilla: Se conoce en inglés como seed y es el valor de base para la generación de números aleatórios. Usualmente la semilla es aleatoria en cada experimento lo que asegura la variabilidad en cada simulación, sin embargo si la semilla se fija es posible generar exáctamente el mismo resultado una y otra vez, lo cuál resulta muy útil en la etapa de validación y calibración del modelo.
- Reloj de Simulación: Tiempo total de la simulación. No siempre se utiliza pues también se utilizan condiciones lógicas para detener el experimento.
Diferencia entre Modelación y Simulación
Es común encontrar confusiones entre estos dos términos en todos los ámbitos. La modelación es indispensable para poder simular pues modelar significa definir de manera lógica el sistema a representar. Modelar implica definir en múltiples niveles de abstracción el sistema objeto del estudio, incluyendo el paradigma de simulación, el alcance del proyecto y los objetivos. A continuación se definen las entidades y/o agentes, los estados y el proceso lógico. Adicionalmente la modelación puede ser acompañada de planos, diagramas, gráficas, etc.
Una vez definido el modelo es necesario definir el mecanismo requerido para la simulación (analítica o computacional), las herramients incluyendo el software si necesario, y finalmente construir la simulación.
Cuando Simular y Cuando No
Cuándo NO
- Cuando no se tiene el conocimiento y/o las herramientas requeridas
- Cuando el problema se puede resolver más fácilmente de manera analítica (ver curva de la complejidad a continuación)
- Cuando es demasiado costosa la simulación
- Cuando el tiempo de construcción y validación del modelo es mayor que el requerido
- Cuando no se tienen datos de las observaciones y no hay supuestos de los cuáles partir
Cuándo SI
- Todos los demás casos
Curva de la Complejidad
El principio básico detrás de la simulación es la estadística con lo cuál es posible resolver virtualmente cualquier situación con solo el uso de soluciones analíticas incluyendo la generación de variables aleatorias, la teoría de colas y los procesos estocásticos, sin embargo estas soluciones requieren de múltiples ecuaciones y largos procesos iterativos hasta llegar a un resultado final. Cuando el tamaño del problema a modelar es relativamente bajo es posible que la solución analítica sea más sencilla que la computacional (ver tutoriales 1 y 2). Cuando el tamaño del problema es mayor, las soluciones analíticas son extremadamente complejas y rígidas por tanto el enfoque computacional es recomendable (ver tutoriales 3 en adelante).
Etapas para un proyecto de simulación
- Definición general del sistema
- Alcance del proyecto
- Recolección de información (proceso, bases de datos, planos, reglas lógicas, etc.)
- Modelización
- Validación del modelo
- Simulación
- Ajuste y calibración
- Experimentación
- Análisis de resultados
Principios de Pritsker sobre Modelización y Simulación
Alan Pritsker fue no de los pioneros de la modelización y simulación (ver link), considerado uno de los padres de la simulación de eventos discretos. Basado en su gran experiencia, Pritsker formulólos siguientes principios sobre la modelización:
- La conceptualización de un modelo requiere de conocimiento del sistema, juicio de ingeniería y herramientas de construcción de modelos
- El secreto para ser un buen modelador es la capacidad de remodelar (todo modelo construido es erróneo la primera vez!)
- El proceso de modelado es evolutivo porque el acto de modelado revela información importante a cada etapa (el proceso de modelado es un proceso de aprendizaje)
- La definición del problema es el elemento de control primario en la resolución basada en modelización
- Cuando el sistema requiere combinar paradigmas el modelo continuo debe ser considerado antes que los demás
- Un modelo debe ser evaluado de acuerdo con su utilidad. Desde el punto de vista absoluto, un modelo no es ni bueno ni malo. (Un modelo es bueno si se le ayuda a aprender y entender las cosas)
- El propósito de los modelos de simulación es el conocimiento y la comprensión, no la construcción de modelos en si.
Software de simulación
Existen múltiples software de simulación, algunos genéricos y otros especializados en paradigmas y/o aplicaciones específicas.
A continuación haremos una revisión de algunos software seleccionados reconocidos por su popularidad profesional y académica (link)
Adicionalmente, en el siguiente link de Wikipedia usted puede usted consultar una lista extensa de simuladores de todo tipo.