Sunteți pe pagina 1din 10

Simulación

de eventos
discretos

Herramientas
Matemáticas VI -
Modelos de
Simulación
1
Eventos discretos
La mayoría de los sistemas reales evolucionan (cambian) a lo largo del
tiempo, por lo que debe considerarse en su estudio este componente
dinámico. Los sistemas en que estos cambios se producen en momentos
determinados y separados entre sí se denominan discretos. Los sistemas
discretos cambian un número contable de veces en el tiempo, es decir,
modifican su estado en tiempos particulares (fijos o aleatorios) y se
mantienen constantes en ciertos intervalos de tiempo (Law y Kelton 1991).
Estos cambios del estado del sistema se producen cuando ocurre un
evento. Un evento se define entonces como “una ocurrencia instantánea
que puede cambiar el estado del sistema” (Kelton, y Law, 1991, p. 7).

Un ejemplo de sistema discreto es un sistema de filas. Dado un estado de


la fila, esta permanece igual hasta que se produzca un arribo o hasta que
un cliente finalice su atendimiento. Es decir, los cambios del sistema se
producen solo en determinados tiempos, que son cuando llega un nuevo
cliente o cuando un cliente finaliza su servicio (evento).

Mecanismos de simulación discreta

Los modelos de simulaciones de eventos discretos estudian sistemas reales


que evolucionan con el tiempo, cuyo estado se modifica en determinado
tiempo por la aparición de algún evento. Debido a esta naturaleza
dinámica, es necesaria la introducción de una variable reloj de simulación
(Law, Kelton, 1991). Esta nueva variable lleva el registro del valor actual del
tiempo simulado durante el proceso de simulación y también funciona
como un mecanismo que permite referenciar el momento en el que
ocurren los eventos. Cabe aclarar que la variable reloj no tiene una unidad
de tiempo específica, sino que es determinada por las unidades de las
variables propias del sistema modelado.

Existen dos mecanismos para hacer avanzar el tiempo en un proceso de


simulación: intervalos de tiempos variables e intervalos de tiempos fijos
(Law, Kelton, 1991).

Intervalos de tiempos variables

Este mecanismo para hacer avanzar el tiempo es el más utilizado. Es usado


en la mayoría de los lenguajes de simulación. Notar que podemos
considerar el mecanismo de intervalos de tiempos fijos como un caso

2
particular del mecanismo de intervalos de tiempos variables (Law, Kelton,
1991).

El mecanismo de intervalos de tiempos variables inicia el reloj de


simulación en cero (0), después determina los tiempos de ocurrencia de los
eventos futuros. Luego de iniciado, el reloj de simulación avanza hasta que
coincide con el tiempo del evento más próximo dentro de los eventos
futuros. Como se produjo un evento, las variables del estado del sistema se
actualizan, se registran los valores necesarios (los que son de interés
respecto de lo que estamos estudiando) y se determinan los momentos
(nuevos) de ocurrencia de los futuros eventos. A continuación, se avanza el
reloj de simulación hasta el (nuevo) evento más próximo, se actualizan las
variables de estado del sistema y son determinados los nuevos tiempos de
futuros eventos. Este proceso de avanzar el reloj finaliza cuando alguna
condición de parada es satisfecha (Law, Kelton, 1991).

Ejemplo

Para ilustrar este mecanismo de intervalos de tiempos aleatorios,


consideremos una peluquería atendida por un solo peluquero y
supongamos que queremos estimar el tiempo promedio que un cliente
espera en la fila, es decir, el intervalo de tiempo desde su llegada hasta que
comienza a ser atendido. En este ejemplo, el estado de las variables está
compuesto por:
 servidor libre u ocupado;
 número de clientes en la fila;
 tiempo de llegada de cada cliente que espera en la fila.
El estado del servidor determina si el cliente que llega al local es atendido
inmediatamente o debe unirse a la fila. Cuando un servicio es completado,
el número de clientes en la fila determina si el servidor queda libre o pasa a
atender al próximo cliente de la fila. El tiempo de llegada es usado para
determinar el tiempo de espera hasta ser atendido.
Este sistema tiene dos eventos. Uno es la llegada de un cliente, ya que
causa que el servidor pase de libre a ocupado o aumente en 1 el número
de la fila. El otro evento del sistema es la salida del cliente ya atendido,
porque deja el estado del servidor libre o porque reduce en 1 el número de
la fila (Taha, 2004).

Para describir el proceso de este sistema discreto, utilizaremos la siguiente


notación:
 𝑇𝑖 : tiempo de llegada del cliente 𝑖-ésimo. Por definición, 𝑇0 = 0.
 𝐴𝑖 = 𝑇𝑖 − 𝑇𝑖−1 : intervalo de tiempo entre las llegadas de los clientes
(𝑖 − 1)-ésimo e 𝑖-ésimo.
 𝑆𝑖 : tiempo que el servidor pasa atendiendo al cliente 𝑖-ésimo.
 𝐷𝑖 : tiempo de espera en la fila del cliente 𝑖-ésimo.

3
 𝑐𝑖 = 𝑇𝑖 + 𝐷𝑖 + 𝑆𝑖 : tiempo que el 𝑖-ésimo cliente completa el servicio y se
retira del lugar.
 𝑒𝑖 : tiempo de ocurrencia del evento 𝑖-ésimo (de cualquier tipo). Es el 𝑖-
ésimo valor del reloj de simulación, excluyendo 𝑒0 = 0.

Figura 1: Diagrama de un modelo de simulación de eventos discretos

Fuente: Law y Kelton, 1991, p. 10.

Las cantidades definidas previamente generan variables aleatorias.


Supongamos que son conocidas las distribuciones de probabilidad de los
tiempos de llegadas 𝐴𝑖 y de los tiempos de servicio 𝑆𝑖 . Denotamos por 𝐹𝐴 y
𝐹𝑆 sus respectivas funciones de probabilidad acumulada.

En el momento inicial 𝑒0 el servidor se encuentra libre, y el tiempo 𝑇1 de la


primera llegada es determindo generando 𝐴1 a partir de la función 𝐹𝐴 y
sumando 0 (tiempo inicial). Luego, el reloj de simulación avanza desde 𝑒0
hacia el tiempo del evento más próximo 𝑒1 = 𝑇1. Como el cliente que llega
en este momento es el primero, inmediatamente pasa a ser atendido por
el servidor (no hace fila), por lo que su tiempo de espera en la fila es 𝐷1 =
0. El servidor pasa ahora a estar ocupado. El tiempo del servicio completo
del primer cliente 𝑐1 es determinado generando 𝑆1 a través de 𝐹𝑆 y
sumándolo a 𝑇1 . A continuación, se computa el tiempo de llegada del
segundo cliente 𝑇2 = 𝑇1 + 𝐴2 , donde el tiempo 𝐴2 es generado por la
función 𝐹𝐴 .

Para el paso siguiente, hay dos opciones. Si 𝑐1 ≤ 𝑇2 significa que el primer


cliente completó el servicio antes de la llegada del nuevo cliente, y así el
reloj de simulación avanza de 𝑒1 a 𝑐1. Si 𝑇2 < 𝑐1 , el reloj de simulación
avanza de 𝑒1 para 𝑒2 = 𝑇2 (como se muestra en la Figura 1) y significa que
llega el segundo cliente mientras el primero continúa siendo atendido.
Como el servidor se encuentra ocupado, este segundo cliente produce un
incremento en el número de personas en la fila y pasa así de 0 a 1. El
tiempo en el que llega este segundo cliente se registra.

El tiempo de llegada del tercer cliente es computado como 𝑇3 = 𝑇2 + 𝐴3 ,


donde 𝐴3 es generado a partir de la fucnión de probabilidad acumulada 𝐹𝐴 .

4
Si 𝑐1 < 𝑇3 (como en la Figura 1), significa que el primer cliente ya completó
su servicio, por lo que se retira del local, y que el segundo pasa ahora a ser
servido, lo que hace que el número de personas en la fila caiga de 0 a 1.
Así, el reloj de simulación pasa de 𝑒2 para 𝑒3 = 𝑐1 . Así, quedan
determinados el tiempo de espera en la fila del segundo cliente, dado por
𝐷2 = 𝑐1 − 𝑇2 , y el tiempo de servicio completo, dado por 𝑐2 = 𝑐1 + 𝑆2,
donde 𝑆2 es generado por 𝐹𝑆 . En el caso que 𝑇3 ≤ 𝑐1, el reloj avanza del
evento 𝑒2 hacia el evento más próximo 𝑒3 = 𝑇3 , y el tercer cliente
incrementa la fila de 1 a 2 personas. Este proceso continúa de esta manera
hasta se alcance alguna situación específica o tiempo de simulación
determinado.

Ejemplo concreto de un mecanismo de intervalos de tiempos


variables

Supongamos que el sector de cuentas corrientes de un banco es atendido


por una única persona.Y que el tiempo entre llegadas de los clientes tiene
una distribución exponencial con media de 10 minutos. El empleado del
banco demora entre 5 y 10 minutos en completar el atendimiento,
distribuidos de manera uniforme. La disciplina de la cola es primero en
llegar, primero en ser atendido. El objetivo del modelo de simulación es
calcular las siguientes medidas de desempeño:
1) la utilización promedio del sector de cuentas del banco;
2) la cantidad promedio de clientes en la fila;
3) el tiempo promedio que un cliente espera en la fila.

Sea 𝑋1 la variable aleatoria que representa los tiempos entre llegadas, y


sea 𝑋2 la variable aleatoria que representa el tiempo de servicio. Luego,
dado un número aleatorio 𝑧 en el intervalo (0, 1), tenemos que:
𝑋1 = −10 ln(𝑧);
𝑋2 = 5 + 5𝑧.
Donde usamos el método de la inversa para encontrar las inversas de las
funciones de probabiliad acumulada 𝐹𝑋1 (exponencial) y de 𝐹𝑋2 (uniforme).
Para los valores arbitrarios del intervalo (0, 1), utilizaremos la Tabla 1. Por
cuestiones de computacionales, solo realizamos la simulación hasta la
llegada del cliente número 5. Denotamos por 𝑇 la variable de reloj de
simulación y suponemos que el primer cliente llega en el tiempo 𝑇1 = 0.
 Llegada del cliente número 1 en el tiempo 𝑻𝟏 = 𝟎. El tiempo de
llegada del segundo cliente es generado por la inversa de la función 𝐹𝑋1
usando el primer valor de 𝑧1 de la Tabla 1:
𝑇2 = 0 + (−10 ln(0,0598)) = 28,18.
Como es el primer cliente, el servidor está libre, por lo que comienza de
inmediato su atendimiento. El tiempo de atendimiento está dado por
𝑐1 = 5 + 5 × 0,3529 = 6,76.

5
Después de estos primeros cálculos, obtenemos que la salida del
primer cliente se produce a los 6,76 minutos, y la llegada del segundo
se produce a los 28,18 minutos. De estos dos eventos, el más próximo
es la salida del primer cliente. Por lo tanto, 𝑒2 = 6,76.
 El evento más próximo es la salida del primer cliente en el instante
𝑐1 = 6,76. Producida la salida, el servidor queda libre, y registramos el
tiempo que el servidor permaneció ocupado: 6,76. Luego, el único
futuro evento posible es la llegada del segundo cliente.
 Llegada del segundo cliente en el tiempo 𝑻𝟐 = 𝟐𝟖, 𝟏𝟖 minutos. El
tercer cliente llegará entonces en el tiempo
𝑇3 = 𝑇2 + (−10 ln(𝑧)) = 28,18 − 10 ln(0,5869) = 33,51.
Como el servidor está libre, el segundo cliente comienza a ser atendido
en el momento en que entra al banco. Su tiempo de salida está dado
por
𝑐2 = 𝑇2 + 𝑆2 = 28,18 + (5 + 5 × 0,3455) = 34,91.
De los futuros eventos posibles (llegada del tercer cliente o salida del
segundo), el más próximo es la llegada de un nuevo cliente al banco.
Luego, 𝑒3 = 𝑇3 .
 Llegada del tercer cliente en el tiempo 𝑻𝟑 = 𝟑𝟑, 𝟓𝟏. El cuarto cliente
llegará
𝑇4 = 𝑇3 + (−10 ln(𝑧)) = 33,51 − 10 ln(0,6733) = 37,46.
Tenemos ahora dos nuevos posibles eventos futuros: la salida del
cliente número 2 y la llegada del cuarto. Como 𝑐2 < 𝑇4 , entonces el
evento más próximo es la salida del segundo cliente, por lo que 𝑒4 =
𝑐2 .
 Salida del segundo cliente en el tiempo 𝒄𝟐 = 𝟑𝟒, 𝟗𝟏. En ese momento,
el cliente 3 pasa a ser atendido, por lo que el tiempo de espera fue
𝐷3 = 𝑐2 − 𝑇3 = 34,91 − 33,51 = 1,40.
El tiempo de salida del tercer cliente es
𝑐3 = 𝑇3 + 𝑆3 = 33,51 + (5 + 5 × 0,3646) = 40,33.
Los dos eventos futuros posibles son la salida del tercer cliente o la
llegada del cuarto. Como 𝑇4 < 𝑐3, el evento más próximo es la llegada
del cuarto cliente. Así, 𝑒5 = 𝑇4 .
 Llegada del cuarto cliente en el tiempo 𝑻𝟒 = 𝟑𝟕, 𝟒𝟔. El quinto sucede
en el tiempo
𝑇5 = 𝑇4 + (−10 ln(𝑧)) = 37,46 − 10 ln(0,1281) = 58,00.
Los futuros eventos posibles son la salida del tercer cliente y la llegada
del quinto. Como 𝑐3 < 𝑇5 , el evento más próximo es la salida del tercer
cliente del banco. Luego, 𝑒6 = 𝑐3 .
 Salida del tercer cliente en el tiempo 𝒄𝟑 = 𝟒𝟎, 𝟑𝟑. El cuarto cliente
comienza a ser atendido, por lo que su tiempo de espera fue
𝐷4 = 𝑐3 − 𝑇4 = 40,33 − 37,46 = 2,87.
El tiempo de salida del cliente 4 es
𝑐4 = 𝑇4 + 𝑆4 = 37,46 + (5 + 5 × 0,4871) = 44,89.

6
Como 𝑐4 < 𝑇5 , el evento más próximo es la salida del cuarto. Por lo
tanto 𝑒7 = 𝑇4 .
 Salida del cuarto cliente en el tiempo 𝑻𝟒 = 𝟒𝟒, 𝟖𝟗. El evento más
próximo es la llegada del quinto cliente en el tiempo 𝑇5 = 58,00, por lo
que 𝑒8 = 𝑇5.
 Llegada del quinto cliente en el tiempo 𝑻𝟓 = 𝟓𝟖, 𝟎𝟎. El último evento
que resta es la salida del último cliente, cuyo tiempo está dado
𝑐5 = 𝑇5 + 𝑆5 = 58,00 + (5 + 5 × 0,2346) = 64,17.
Ahora podemos responder las preguntas del comienzo. La utilización
promedio de las instalaciones está dada por el tiempo que el servidor
estuvo ocupado, dividido por el tiempo total de la simulación. Tenemos
entonces que el tiempo total de la simulación fue 64,17. Recordemos que
los valores 𝑆𝑖 representan el tiempo que pasa en el atendimiento cada
cliente. Por lo tanto:

𝑈𝑡𝑖𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 6,76 + 6,73 + 6,82 + 7,43 + 6,17


( )= = 0,54.
𝑑𝑒 𝑙𝑎𝑠 𝑖𝑛𝑠𝑡𝑎𝑙𝑎𝑐𝑖𝑜𝑛𝑒𝑠 64,17

La longitud promedio de la cola está dada por la suma de los tiempos de


esperas por la cantidad de personas para esa espera, dividido por el tiempo
total de simulación (Taha, 2004).
En nuestro caso, solo el tercer y cuarto cliente estuvieron en la cola, y
fueron los únicos de ella. Así tenemos

𝐿𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 1 × 1,4 + 1 × 2,87


( )= = 0,07.
𝑑𝑒 𝑙𝑎 𝑐𝑜𝑙𝑎 64,17

Por último, el promedio de espera es

𝐷1 + 𝐷2 + 𝐷3 + 𝐷4 + 𝐷5 1,4 + 2,87
̅=
𝐷 = = 0,85.
5 5

Componentes y organización de un modelo de simulación de


un evento discreto

Los modelos de simulación de eventos discretos se aplican a una gran


variedad de sistemas reales. A pesar de la diversidad de aplicaciones, la
mayoría tiene los siguientes componentes.
 Estado del sistema: es el conjunto de las variables de estado que son
necesarias para describir el sistema en un determinado tiempo (Kelton,
Law, 1991).
 Reloj de simulación: variable que registra el tiempo actual de la
simulación (Kelton, Law, 1991).

7
 Lista de sucesos: lista que contiene los tiempos de los futuros posibles
sucesos.
 Estadística: son las variables destinadas a recolectar la información
estadística sobre el desempeño del sistema.
 Rutina de inicialización: subprograma para iniciar la simulación en el
instante cero.
 Rutina de tiempo: subprograma que determina el próximo evento
almacenado en la lista de suceso y hace avanzar el reloj al tiempo en
que se produce dicho evento.
 Rutina de sucesos: subprograma que actualiza la lista de sucesos
después de haber ocurrido un evento.
 Librería de rutinas: conjunto de subprogramas usados para generar
observaciones aleatorias de las distribuciones de probabilidad, que
corresponden a los eventos aleatorios del sistema.
 Generador de informes: subprograma que calcula las estimaciones a
partir de las estadísticas, de las medidas de desempeño del modelo y
genera un reporte cuando la simulación finaliza.
 Programa principal: es un subprograma que invoca a la rutina de
tiempo para determinar el próximo evento. Luego llama a la rutina de
sucesos correspondiente para actualizar el estado del sistema. El
programa principal chequea el fin de la simulación y llama al generador
de informes cuando la simulación ha finalizado.

Mecanismo de intervalos de tiempos fijos

En los mecanismos de intervalos de tiempos fijos, el reloj de simulación


avanza exactamente un valor ∆𝑡 de tiempo, el cual es determinado
apropiedamente de acuerdo al modelo. Después de cada avance del reloj
de simulación, se debe verificar si se produjo algún evento en el intervalo
de tiempo ∆𝑡 inmediatamente anterior. Si se produjo algún evento en ese
intervalo previo, se considera que ocurrió el fin del intervalo de tiempo, y
la actualización del estado y las estadística se realizan con base en esta
consideración.

La simulación de eventos discretos, utilizando un mecanismo de intervalos


de tiempos fijos, tiene dos desventajas importantes. La primera es que se
genera un error al considerar que los eventos suceden al final de cada
intervalo de tiempo. Se genera así una dificultad al analizar el desempeño
del modelo. La segunda desventaja se da cuando, en el intervalo de
tiempo, se produce más de un evento, donde hay que decidir cuál se
considera primero. En este caso, se podría disminuir el tamaño del
intervalo de tiempo ∆𝑡, pero esto implicaría um mayor costo operacional
de la simulación (Kelton, Law, 1991).

8
Estas dificultades hacen que este mecanismo sea escasamente utilizado en
la simulación de eventos discretos.

9
Referencias
Kelton, D., y Law, A. (1991). Simulation Modeling and analysis. Estados Unidos:
McGraw-Hill.

Taha, H. (2004). Investigación de operaciones. México: Pearson Educación.

10

S-ar putea să vă placă și