Cómo funciona el motor de simulación
Comprenda el motor de simulación
ProcessMind utiliza un motor de simulación de eventos discretos (DES) para modelar sus procesos. Comprender cómo funciona le ayudará a configurar las simulaciones de forma más eficaz e interpretar los resultados con precisión.
¿Qué es la simulación de eventos discretos?
En la simulación de eventos discretos, el estado del sistema cambia únicamente en determinados eventos: el reloj avanza de un evento al siguiente y, entre eventos, no ocurre nada. Este enfoque es ideal para los procesos empresariales porque:
- Las actividades tienen horas de inicio y finalización definidas
- Los recursos se asignan y liberan en momentos concretos
- Los casos llegan y finalizan en puntos definidos
¿Por qué eventos discretos?
A diferencia de la simulación continua, utilizada en física o dinámica de fluidos, los procesos empresariales no necesitan un modelado instante a instante. Una solicitud de préstamo no pasa gradualmente de «enviada» a «aprobada»: cambia de estado en eventos concretos.
El ciclo central de eventos
El motor de simulación sigue un ciclo sencillo:
1. Initialize: Set up starting conditions
2. Get Next Event: Find the earliest scheduled event from the priority queue
3. Advance Time: Move simulation clock to that event's time
4. Process Event: Handle the event (start activity, complete activity, etc.)
5. Schedule New Events: Based on what happened, add new events
6. Repeat: Continue until end time or max events reached (5,000,000)
7. Output: Generate the complete event log Tipos de eventos
La simulación genera y procesa varios tipos de eventos:
| Tipo de evento | Qué ocurre |
|---|---|
| Llegada de caso | Un caso nuevo entra en el proceso mediante un evento de inicio |
| Inicio de actividad | Un caso comienza a ejecutar una actividad, con los recursos asignados |
| Finalización de actividad | Un caso termina una actividad y se liberan los recursos |
| Evaluación de Gateway | Un punto de decisión determina qué ruta o rutas seguir |
| Finalización de caso | Un caso llega a un evento de finalización |
Generación y llegada de casos
Los casos entran en la simulación mediante Start Events de su modelo BPMN. El patrón de llegada está controlado por la distribución de generación de casos.
Patrón de llegada predeterminado
De forma predeterminada, los casos llegan siguiendo una distribución de Poisson, con una tasa de 1 caso por hora. Esto crea tiempos entre llegadas aleatorios y realistas, habituales en muchos procesos empresariales.
Personalización de las llegadas
Puede configurar distintos patrones de llegada mediante las distribuciones descritas en la documentación de Distribuciones.
Flujo de los casos por el proceso
Sequence Flows
Cuando un caso termina un elemento, sigue inmediatamente el Sequence Flow de salida. Si solo hay una ruta de salida, el caso la toma automáticamente.
Comportamiento de Gateway
Los Gateway controlan cómo se dividen y se unen los casos:
| Tipo de Gateway | Comportamiento |
|---|---|
| XOR (Exclusive) | Se selecciona exactamente una ruta de salida mediante una selección aleatoria ponderada por probabilidad. Las probabilidades se tratan como pesos relativos y se normalizan automáticamente. |
| AND (Parallel) | Se toman simultáneamente todas las rutas de salida. El caso se divide en tokens paralelos. |
| OR (Inclusive) | Selección aleatoria de rutas, con al menos una ruta garantizada. |
| Event-Based | Selección aleatoria entre los eventos disponibles. |
Configuración de probabilidades
En los Gateway XOR, asigna probabilidades a cada flujo de salida. Estas son pesos relativos:
- Si configura los flujos con 70, 20 y 10, se normalizan a 70 %, 20 % y 10 %
- Si configura los flujos con 7, 2 y 1, obtiene el mismo resultado
- Los flujos sin asignar utilizan el porcentaje restante
Ejecución de actividades
Cuando un caso llega a una Task (actividad), el motor sigue esta secuencia:
1. Comprobar la disponibilidad de recursos
¿El recurso necesario tiene capacidad disponible?
2. Poner en cola si es necesario
Si no hay recursos disponibles, el caso entra en la cola de espera. De forma predeterminada, ProcessMind utiliza el orden FIFO (First In, First Out): los casos se procesan en el orden en que llegaron.
3. Asignar recursos
Cuando están disponibles, las unidades de recurso necesarias se reservan para este caso.
4. Muestrear el tiempo de procesamiento
El motor extrae un valor de la distribución de tiempo de procesamiento configurada. Esto determina cuánto tardará la actividad.
5. Programar el evento de finalización
Se añade un evento de finalización a la cola de eventos en current_time + processing_time.
6. Liberar recursos
Cuando se activa el evento de finalización, los recursos vuelven al grupo para que puedan utilizarlos otros casos.
Tiempo mínimo de procesamiento
Para garantizar marcas de tiempo únicas y un comportamiento realista, todas las actividades tienen una duración mínima de 1 segundo. Incluso con una distribución de duración cero, las actividades tardan al menos ese tiempo.
Probabilidad de omisión
Las actividades pueden configurarse con una probabilidad de omisión (0-100 %). Cuando se omite una actividad:
- El caso pasa inmediatamente al siguiente elemento
- No se consumen recursos
- No transcurre tiempo, salvo el mínimo de 1 segundo
- La actividad aparece en el registro con una duración mínima
Esto permite modelar situaciones reales en las que algunos pasos se omiten ocasionalmente.
Gestión del tiempo
El reloj de la simulación
La simulación mantiene un reloj virtual que avanza de forma discreta de un evento al siguiente. Si el próximo evento está a las 10:35 y la hora actual es las 10:30, el reloj salta directamente a las 10:35.
Unidades de tiempo
Internamente, todos los tiempos se convierten a unidades coherentes. Puede especificar duraciones en:
- Segundos
- Minutos
- Horas
- Días
Las tasas de llegada se configuran por separado, por hora, día, semana, mes o año.
Periodicidad y franjas horarias
Los parámetros pueden variar según el momento de la simulación. Por ejemplo:
- Tasas de llegada distintas entre días laborables y fines de semana
- Tiempos de procesamiento distintos entre los turnos de mañana y tarde
- Capacidad de recursos distinta durante las horas punta
Consulte la documentación de Periodicidad para obtener información sobre la configuración.
Gestión de recursos
Grupos de recursos
Cada recurso tiene una capacidad definida: el número de casos que puede gestionar simultáneamente.
Gestión de colas
Cuando la demanda supera la capacidad, los casos esperan en una cola. De forma predeterminada, ProcessMind utiliza el orden FIFO (First In, First Out), lo que garantiza que los casos se procesen en el orden de llegada.
Generación del registro de eventos
Durante la simulación, cada ejecución de actividad se registra en el registro de eventos de salida:
| Campo | Descripción |
|---|---|
| ID de caso | Identificador único de cada caso, generado secuencialmente |
| Actividad | Nombre del elemento BPMN |
| Marca de tiempo de inicio | Momento en que comenzó la actividad |
| Marca de tiempo de finalización | Momento en que terminó la actividad |
| Recurso | Recurso que ejecutó la actividad |
| Atributos | Atributos del caso en ese momento |
Este registro sigue los formatos estándar de registro de eventos y puede analizarse con todas las herramientas de ProcessMind.
Límites de la simulación
| Límite | Valor | Finalidad |
|---|---|---|
| Máximo de eventos | 5.000.000 | Evita que las simulaciones se ejecuten sin control |
| Duración mínima | 1 segundo | Garantiza marcas de tiempo únicas |
Comience con poco y amplíe después
Al configurar una simulación nueva, comience con un periodo corto, de unos días o semanas, para validar la configuración. Cuando confirme que el modelo se comporta correctamente, amplíe el periodo.