Está en la página 1de 7

21.

Ejemplo de una simulacin de eventos discretos


Antes de proceder con los detalles del modelado de la simulacin, ser til trabajar en un ejemplo de simulacin simple para ilustrar algunos de los conceptos bsicos de la simulacin de eventos discretos. El modelo elegido como ejemplo inicial es un sistema de colas de un solo servidor. Los clientes llegan a este sistema a partir de alguna poblacin y entran al servicio de inmediato si el servidor est desocupado o se unen a la lnea de espera (cola) si el servidor est ocupado. Ejemplos de esta clase de sistemas son una peluquera con un solo peluquero, una pequea dulcera con un solo cajero y un solo expendedor de boletos en una terminal area. El mismo modelo se estudi en el captulo 20 junto con la teora de colas. En ese captulo, se us un modelo analtico para determinar las distintas caractersticas de operacin del sistema. Sin embargo, se tuvo que hacer varias suposiciones restrictivas para usar la teora de colas. En particular, cuando se estudi un sistema M/MII, se supuso que tanto los tiempos entre llegadas como los tiempos de servicio tenan una distribucin exponencial. En muchas situaciones, es posible que estas suposiciones no sean apropiadas. Por ejemplo, las llegadas a un mostrador de una aerolnea por lo general tienden a ocurrir en grupos, debido a factores como las llegadas de autobuses de transbordo y vuelos de conexin. Para este sistema, se debe usar una distribucin de tiempos de llegada, lo que implica que ya no es factible el modelo analtico a partir de la teora de colas. Con la simulacin, se podra usar cualquier distribucin de tiempos entre llegadas y tiempos de servicio, dando as mucha ms flexibilidad al proceso de solucin. Para simular un sistema de colas, primero hay que describirlo. Para este sistema de un solo servidor, se supone que las llegadas se extraen de una poblacin demandante infinita. Hay una capacidad ilimitada de la sala de espera, y los clientes sern atendidos en el orden que llegan; es decir, primero en llegar, primero en ser atendido (FCFS,jirst come.first served). Se supone adems que las llegadas ocurren una a la vez en un modo aleatorio, con la distribucin de tiempos entre llegadas como se especifica en la tabla l. Finalmente se atienden a todos, con la distribucin de tiempos de servicio mostrada en la tabla 2. Se supone tambin que los tiempos de servicio son aleatorios. Despus del servicio, los clientes vuelven a la poblacin demandante. Este sistema de lineas de espera se puede representar como se ilustra en la figura 1.

2 1 2

EjemplO de una simu acin de eventos discretos

1147

TABLA

TABLA

Distribucin de fiempo entre llegadas


TIempo entre llegadas (minutos) Probabilidad 1 2 3 4 .20 .30 .35 .15

Distribucin de fiempo de servicio


TIempo de servicio (minutos) Probabilidad 1 2 3 .35 AO .25

Antes de explicar los detalles de la simulacin, es necesario definir el estado de este tema y entender los conceptos de eventos y tiempo de reloj dentro de una simulacin. este ejemplo, se usan las siguientes variables para definir el estado del sistema: (1) el mero de clientes en el sistema; (2) el status del servidor -es decir, si el servidor est pado o disponible, y (3) el tiempo de la siguiente llegada. El concepto de eventos tiene una relacin estrecha con el estado del sistema. Un e, to se define como una situacin que causa que cambie de forma instantnea el estado sistema. En el modelo de colas de un solo servidor, slo hay dos eventos posibles que bian el estado del sistema: una llegada al sistema y una salida al completar el servicio. 7 la simulacin, estos acontecimientos se programan para que tengan lugar en ciertos p tos del tiempo. Toda la informacin acerca de ellos se mantiene en una lista llamada . de eventos. En esta lista, se mantiene un registro del tipo de eventos programados y, lo es ms importante, el tiempo al que est programado que estos eventos tengan lugar. tiempo en una simulacin se mantiene por medio de una variable llamada tiempo de loj. El concepto de tiempo de reloj ser evidente a medida que se solucione el ejemplo. Esta simulacin se empieza con un sistema vaco y se supone que el primer acont miento, una llegada, tiene lugar en el tiempo de reloj O. Esta llegada encuentra al servi disponible y es atendida de inmediato. Las llegadas en otros puntos del tiempo podran ercontrar al servidor desocupado u ocupado. Si el servidor est disponible, se atiende cliente. Si el servidor est ocupado, el cliente se agrega a la lnea de espera. Estas acci nes se pueden resumir como se muestra en la figura 2. A continuacin, se programa el tiempo de partida del primer cliente. Esto se hace al generar al azar un tiempo de servicio de la distribucin de tiempos de servicio (descrita despus en el captulo) y establecer el tiempo de partida como Tiempo de partida

tiempo de reloj en este momento + tiempo de servicio generado

(l

Salidas FIGURA

1
Poblacin olicitante __ L_le_ga_das __

Sistema de colas de un solo servidor

0000
Cola

Desocupado

Status del servidor

Ocupado

FIGURA

2
Cliente que es atendido Cliente que se forma en la cola

Diagrama de flujo para una llegada

1148

e A P TUL o 2 1 Simulacin

NO

Hay alguien en la cola?

FIGURA

3
Quitar al cliente de la cola y empezar el servicio Fijar el status del sistema a desocupado

Diagrama de flujo para una salida

Tambin, ahora se programa la siguiente llegada al sistema generando al azar un tiempo entre llegadas a partir de la distribucin de tiempo entre llegadas y estableciendo el tiempo de arribo como Tiempo de llegada
=

tiempo de reloj en el momento + tiempo entre llegadas generado

(2)

Si, por ejemplo, se gener un tiempo de servicio de dos minutos, entonces el tiempo de partida para el primer cliente se establecer en el tiempo de reloj 2. De manera similar, si se gener un tiempo entre llegadas de un minuto, la siguiente llegada se programar para el tiempo de reloj 1. Ambos eventos y sus tiempos programados se mantienen en la lista de eventos. Una vez completadas las acciones necesarias para la primera llegada, se explora la lista de eventos para determinar el siguiente evento programado y su hora. Si el siguiente evento se determina como una llegada, se mueve el tiempo de reloj al tiempo programado de llegada y se pasa por la secuencia anterior de acciones para una llegada. Si el siguiente evento es una salida, se mueve el tiempo de reloj al tiempo de salida y se procesa una salida. Para una salida, se comprueba si la longitud de la lnea de espera es mayor que cero. Si es as, se quita al primer cliente de la cola y se comienza a atender al cliente estableciendo un tiempo de partida por medio de la ecuacin (1). Si nadie est esperando, se fija el status del sistema a desocupado. Estas acciones de partida se resumen en la figura 3. Este mtodo de simulacin se llama mecanismo de tiempo de avance del siguiente evento, debido a la forma como se actualiza el reloj. Se adelanta el reloj de simulacin al tiempo de evento inminente ms importante; es decir, el primer evento en la lista de eventos. Puesto que las variables de estado cambian slo en los tiempos de evento, se pasan por alto los periodos de inactividad entre eventos saltando de un evento a otro. A medida que se pasa de un evento al siguiente, se llevan a cabo las acciones apropiadas para cada evento, incluso cualquier programacin de eventos futuros. Se contina de esta manera hasta que se satisface alguna condicin de paro especificada previamente. Sin embargo, el procedimiento requiere que en algn punto de la simulacin, se tenga una llegada y una salida programada para el futuro. As, una llegada futura siempre se programa al procesar una nueva llegada al sistema. Por otro lado, un tiempo de partida slo se puede programar cuando un cliente entra al servicio. As, si el sistema est desocupado, no es posible programar salidas. En estos casos, la prctica usual es programar una salida ficticia estableciendo un tiempo de partida igual a un nmero muy grande, por ejemplo, 9999 (o ms grande si es probable que el tiempo de reloj sea mayor que 9999). De esta manera, los dos eventos consistirn en una llegada real y una salida ficticia. El salto al siguiente evento en el mecanismo podra ser uno largo o uno pequeo; es decir, los saltos en este mtodo son de tamao variable. Este enfoque se confronta con el mtodo de tiempo de avance de incremento fijo. Con este mtodo, se adelanta el reloj de simulacin en incrementos de !::..t unidades de tiempo, donde !::..t es alguna unidad de tiempo apropiada, por lo comn una unidad de tiempo. Despus de cada actualizacin del reloj, se comprueba si algn evento est programado para que tenga lugar en el tiempo de reloj actual. Si est programado un evento, se llevan a cabo las acciones apropiadas para 2 1 2 Ejemplo de una simulacin de eventos discretos 1149

el suceso. Si no est programada ninguna, o si ya se completaron las acciones requeridas para el tiempo actual, se actualiza el reloj de simulacin por 6.t unidades y se repite el proceso. Al igual que con el mtodo del siguiente evento, se contina de esta manera hasta que se alcanza la condicin de paro preespecificada. El mecanismo de tiempo de avance de incremento fijo es ms fcil de comprender, debido a sus pasos fijos en el tiempo. Sin embargo, para la mayora de los modelos el mecanismo del siguiente evento tiende a ser ms eficaz en cuanto a clculos. En consecuencia, el mtodo del siguiente evento slo se usa para obtener los modelos del resto del captulo. Ahora se ilustran los mecanismos de la simulacin del sistema de colas de un solo servidor, por medio de un ejemplo numrico. En particular, se quiere mostrar cmo se representa el modelo de simulacin en la computadora a medida que la simulacin avanza por el tiempo. El proceso de simulacin completo para el modelo de colas con un solo servidor se presenta en el diagrama de flujo de la figura 4. Los bloques del diagrama de flujo se numeran para tenerlos como referencia. Por simplicidad, se supone que tanto los tiempos entre llegadas (TE) como los tiempos de servicio (TS) ya se generaron para los primeros clientes a partir de las distribuciones de probabilidad de las tablas 1 y 2. Estos tiempos se muestran en la tabla 3, de la cual se puede ver que el tiempo entre la primera y la segunda llegada son dos unidades de tiempo, el tiempo entre la segunda y la tercera llegada tambin son dos unidades de tiempo, etctera. De manera similar, el tiempo de servicio para el primer cliente son tres unidades de tiempo, TS para el segundo cliente tambin son tres unidades de tiempo, etctera. Para demostrar el modelo de simulacin, es necesario definir varias variables: TM DT SS WL MX
=

tiempo de reloj de la simulacin

AT = tiempo programado para la siguiente llegada

= tiempo programado de la siguiente salida

= =

status del servidor (1

ocupado,

= longitud de la lnea de espera

desocupado)

longitud (en unidades de tiempo) de una ejecucin de la simulacin

Una vez tomados en cuenta estos preparativos, se comienza la simulacin con valores iniciales de las variables (bloque 1 de la figura 4). Puesto que se supone que la primera llegada tiene lugar en el tiempo 0, se establece que AT = O. Se supone tambin que el sistema est vaco en el tiempo 0, as que se fija SS = 0, WL = y DT = 9999. (Observe que DT debe ser mayor que MX). Esto implica que la lista de eventos ahora consiste en dos eventos programados: una llegada en el tiempo cero y una salida ficticia en el tiempo 9 999. Con esto se completa el proceso de condiciones iniciales y se obtiene la represenz.cicn de computadora de la simulacin mostrada en la tabla 4. En este momento se est listo para la primera accin en la simulacin: buscar en la lista de eventos para determinar el primer evento (bloque 2). Puesto que la simulacin consiste en slo dos eventos, se determina simplemente el siguiente evento comparando AT y DT. (En otras simulaciones, se podra tener ms de dos eventos, as que se tendra que contar con un sistema eficaz de bsqueda en la lista de eventos.) AT < DT indica una llegada, DT < AT una salida. En este punto, AT = es menor que DT = 9 999, lo cual indica que a continuacin tendr lugar una llegada. Se marca con 1 este evento y se actualiza el tiempo de reloj, TM, al tiempo del evento 1 (bloque 3). Es decir, se fija TM = O. La llegada en el tiempo encuentra vaco al sistema, indicado por el hecho de que SS = (bloque 4). En consecuencia, el cliente entra al servicio de inmediato. Para esta parte de la simulacin, primero se establece SS = 1 para indicar que ahora el servidor est ocupado (bloque 6). A continuacin se genera un tiempo de servicio (bloque 7) y se establece el tiempo de partida para este cliente (bloque 8). de la tabla 3, se ve que STpara el cliente 1 es 3. Puesto que TM = en este punto, se fija DT = 3 para el primer cliente. En otras palabras, el cliente 1 saldr del sistema al tiempo de reloj 3. Por ltimo, para completar las acciones de procesar una llegada, se programa la siguiente llegada al sistema generando un tiempo entre llegadas, TE (bloque 9) y fijando el tiempo de esta llegada por medio de la ecuacin AT

1150

e A P TU l o 2 1 Simulacin

FIGURA 4 Diagrama de flujo del modelo de simulacin para el sistema de colas con un solo servidnr

.--------,'0 Condiciones iniciales de "-!J


las variables de estado

Procesar una llegada

Es AT <

Procesar una salida

on

,-------'------, G
WL = O

Servidor ocupado

Es SS = O?

Servidor ocupado

Es
WL > O?

WL > O

Actualice WL = WL + I

NO

Es
TM 2: MX?

s
>---------1

Imprima los resultados y detngase

= TM + TE (bloque 10). Puesto que TE = 2, se fija AT = 2. Es decir, la segunda llegada tendr lugar al tiempo de reloj 2. Al final del suceso 1, la representacin de computadora de la simulacin ser como se muestra en la tabla 4. En esta etapa de la simulacin, se procede a bloquear 18 para determinar si el tiempo de reloj, TM, ha excedido el tiempo de simulacin especificado, MX. En caso afirmativo, imprima los resultados (bloque 19) y detenga la ejecucin. A esto se le conoce como proceso de terminacin. Este proceso se ejecuta al final de cada evento. Sin embargo, para este ejemplo, se supone que MX es un nmero grande. En consecuencia, de aqu en adelante, no se hablar del proceso de terminacin.
2 1 2 Ejemplo de una simulacin oe eventos discretos 1151

TABLA

Tiempos entre llegadas y servicio generndos


Nmero de cliente Tiempo entre llegadas (TE) Tiempo de servicio (TS)

1 2 3 4 5 6 7 8 9

2 2 3 4 2 1 3 3

3 3 2 l l 2 l 2

TABLA

4 Representacin de computadorn de la simulacin


Tipo de evento Nmero de cliente Variables del sistema TM Lista de eventos

Fin del evento

SS
O 1 1 1 1 1 1 l O 1 O 1 1 1 O 1

Wl O O 1 O 1 O 1 O O O O O 1 O O O

AT

OT

O 1 2 3 4 5 6 7

Condiciones iniciales Llegada Llegada Salida Llegada Salida Llegada Salida Salida Llegada Salida Llegada Llegada Salida Salida Llegada l 2 1 3 2 4 3 4 5 5 6 7 6 7

O O 2 3 4 6 7

O 2 4 4 7 7 11 11 11 13 13 14 17 17 17 20

9999 3 3 6 6

8 8
9 9999 12 9999 15 15 16 9999 19

8
9 11 12 13 14 15 16 17

8
9 10 11 12 13 14 15

En este punto, se retorna al bloque 2 para determinar el siguiente evento. Puesto que AT = 2 Y DT = 3, el siguiente evento, evento 2, ser una llegada en el tiempo 2. Una vez determinado el siguiente evento, se adelanta la simulacin al tiempo de este arribo actualizando TMa2. La llegada en el tiempo 2 encuentra ocupado al servidor, as que se coloca a este cliente en la lnea de espera al actualizar WL de O a 1 (bloque 5). Puesto que el evento actual es una llegada, en este momento se programa la siguiente llegada al sistema. Dado que TE = 2 para la llegada 3, la siguiente llegada tiene lugar en el tiempo de reloj 4. Esto completa las acciones necesarias para el evento 2. De nuevo se retorna al bloque 2 para determinar el siguiente evento. A partir de la representacin de computadora para el sistema en la tabla 4, se ve que en este punto (fin del evento 2), DT = 3 es menor que AT = 4. Esto implica que el siguiente evento, evento 3, ser una salida en el tiempo de reloj 3. Se adelanta el reloj al tiempo de esta salida; es decir, se actualiza TM a 3 (bloque 11). 1152 e HiT 2 1 Simulacin

U LO

FIGURA

Representacin continua de tiempo de la simulacin de un solo servidor

Tiempo

En el tiempo 3, se procesa la primera salida del sistema. Con la salida, ahora el servidor se desocupa. Se comprueba el status de la cola para ver si hay clientes esperando ser atendidos (bloque 12). Puesto que WL = 1, se tiene un cliente esperando. Se saca a este cliente de la lnea de espera, establezca WL = O (bloque 15) y se atiende al cliente generando un tiempo de servicio, ST (bloque 16), y estableciendo el tiempo de partida por medio de la relacin DT = TM + ST (bloque 17). De la tabla 3, se ve que para el cliente 2, ST = 3. Puesto que TM = 3, se establece DT = 6. Ahora ya se completaron las acciones para el evento 3, con lo que se obtiene la representacin de computadora mostrada en la tabla 4. De aqu en adelante, se deja al lector que solucione la lgica de la simulacin para el resto de los eventos de este ejemplo. En la tabla 4 se muestra el status de la simulacin al final de cada uno de estos eventos. Obsrvese que al final de los eventos 8, 10 y 14 (todos ellos salidas), el sistema se desocupa. Durante la secuencia de acciones para estos eventos, definimos 55=0 (bloque 13) y DT=5999 (bloque 14). En cada caso, el sistema permanece desocupado hasta que llega un cliente. Esta simulacin se resume en un diagrama continuo de tiempo de la figura 5. Aqu, las letras A representan las llegadas y las letras D las salidas. Observe que las reas rayadas, como la que est entre los tiempos 9 y 11, significa que el sistema est desocupado. Este ejemplo ilustra algunos de los conceptos bsicos en la simulacin y la forma como se puede usar para analizar un problema particular. Aunque es probable que este modelo no se utilice para evaluar muchas situaciones de importancia, nos ha dado un ejemplo especfico y, lo que es ms importante, introdujo diversos conceptos clave de simulacin. En el resto del captulo, se analizan algunos de estos conceptos de simulacin con ms detalle. No se hizo mencin en el ejemplo de la coleccin de estadsticas, pero los procedimientos se pueden incorporar fcilmente en el modelo para determinar las medidas de desempeo de este sistema. Por ejemplo, se podra ampliar el diagrama de flujo para calcular e imprimir el tiempo de espera promedio, el nmero promedio en la lnea de espera y la proporcin de tiempo desocupado. Los temas estadsticos se estudian con ms detalle ms adelante en el captulo.

También podría gustarte