1. Simulación por eventos

Un evento es un acaecimiento, un hecho que sucede en un instante de tiempo. En el mundo real los eventos ocurren en forma simultánea; múltiples entidades pueden realizar actividades en forma paralela o simultánea; es decir, en el mismo instante. En el mundo virtual, los eventos suceden uno a la vez, aun cuando estos se dan en el mismo instante. Cuando el modelado de sistemas se centra en la ocurrencia de eventos y lo que sucede cuando ellos ocurren se denomina orientación por eventos.

2. Simulación por procesos

Otro enfoque diferente es el de orientación por procesos, que consiste en representar el funcionamiento de un sistema en función de la dinámica de las entidades a través del flujo del proceso; es decir, comenzando desde que estas arriban al sistema, pasando luego por una secuencia de actividades, para finalmente salir del sistema; esta situación puede representarse mediante un diagrama de flujo.

En Arena, la simulación se realiza por procesos de manera explícita, mediante la red de módulos. Pero en forma paralela e implícita (internamente) la simulación se realiza por eventos, mediante un calendario predeterminado y eventos condicionales.

En la lógica de eventos discretos, este flujo de actividades del proceso se traduce en una secuencia de eventos predeterminados, para simular el comportamiento del sistema.

Supongamos que el primer evento consiste en el arribo de una entidad al sistema e ingresa inmediatamente a la cola del primer proceso, entonces ocurre un segundo evento que consiste en la terminación del proceso de otra entidad y su salida hacia un segundo proceso. Así, sucesivamente, se van dando los eventos uno a la vez, de acuerdo a un calendario cronológico y predeterminado.

En la simulación de eventos discretos, los cambios en el estado del sistema se dan en puntos discretos del tiempo, como resultado de la ocurrencia de eventos. Veamos los siguientes ejemplos de eventos típicos en simulación:

El arribo de una entidad a una estación de trabajo.

  • La falla de una máquina.
  • El inicio de una actividad.
  • La finalización de una actividad.
  • El final de un turno de trabajo.
  • La finalización de la simulación, etcétera.

Los eventos discretos pueden ser de dos tipos:

2.1 Evento programado en eltiempo (calendario)

Es aquel cuyo momento de ocurrencia puede ser determinado de antemano, y por lo tanto puede ser programado con anticipación. Para estos eventos, en los que es posible que se planee su ejecución en el transcurso del tiempo, el avance del reloj de la simulación se dispone según el próximo evento programado. Así, la ejecución de eventos programados continúa, hasta que se produce el evento de la terminación de la simulación.

Ejemplo:

Suponga que el tiempo entre arribos de los clientes al sistema se ajusta a una distribución exponencial con una media de 10 minutos. Este evento puede programarse fácilmente al inicio de la simulación, generando un valor individual de la variable aleatoria según la distribución de probabilidad exponencial y su parámetro. El valor obtenido, por ejemplo 8 minutos, define la ocurrencia del próximo evento que marcará el arribo del cliente. Este evento es programado con anticipación en el calendario de eventos.

Ejemplo:

Suponga que se define en el modelo la duración que tendrá una actividad y corresponde a una distribución uniforme con parámetros 4 y 6 minutos. Un evento origina el inicio de la actividad, entonces se trabaja en función del próximo evento; así, se genera un valor individual de la variable aleatoria asociada a la distribución, uniforme y sus parámetros, supongamos que resulta el valor 5, entonces se programa el próximo evento que completará o finalizará la ejecución de la actividad, en forma cronológica y anticipada, en un calendario de eventos predeterminados, donde aguardarán hasta el instante : de su ocurrencia .

2.2 Evento condicional

Un evento condicional se dispara cuando se da una condición en alguna de las variables de estado del sistema y no mediante su programación en el tiempo.

Ejemplo:

Supongamos que un recurso es liberado de una actividad y queda en estado “disponible”; como existen entidades en espera por el recurso, recién en ese instante se genera el evento para tomar dicho recurso disponible. Es decir, se dio la condición, entonces se generó el evento.

3. RELOJ DE LA SIMULACIÓN

El reloj de la simulación es una variable utilizada para controlar el tiempo transcurrido durante la simulación y para interactuar con el calendario de eventos. Es un reloj no convencional, ya que no controla el tiempo en forma continua, sino más bien oscila hacia delante, mediante saltos en instantes discretos del tiempo. Apunta el instante en que se ejecuta el evento durante la simulación, luego salta al tiempo del siguiente evento. Cada salto implica un cambio en el estado del sistema y una actualización del calendario de eventos.

Referencias

Torres, P., (2013). Simulación de Sistemas con el Software Arena, Lima, Perú: Universidad de Lima Fondo Editorial.