Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Simulacion de Sistemas - Cola
Simulacion de Sistemas - Cola
2 1 2
1147
TABLA
TABLA
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
(l
Salidas FIGURA
1
Poblacin olicitante __ L_le_ga_das __
0000
Cola
Desocupado
Ocupado
FIGURA
2
Cliente que es atendido Cliente que se forma en la cola
1148
e A P TUL o 2 1 Simulacin
NO
FIGURA
3
Quitar al cliente de la cola y empezar el servicio Fijar el status del sistema a desocupado
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
=
(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
=
= =
ocupado,
desocupado)
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
Es AT <
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
= 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
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
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
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.