21.

2

Ejemplo de una simulación de eventos discretos
Antes de proceder con los detalles del modelado de la simulación, será útil trabajar en un ejemplo de simulación simple para ilustrar algunos de los conceptos básicos de la simulación 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 población y entran al servicio de inmediato si el servidor está desocupado o se unen a la línea de espera (cola) si el servidor está ocupado. Ejemplos de esta clase de sistemas son una peluquería con un solo peluquero, una pequeña dulcería con un solo cajero y un solo expendedor de boletos en una terminal aérea. El mismo modelo se estudió en el capítulo 20 junto con la teoría de colas. En ese capítulo, se usó un modelo analítico para determinar las distintas características de operación del sistema. Sin embargo, se tuvo que hacer varias suposiciones restrictivas para usar la teoría de colas. En particular, cuando se estudió un sistema M/MII, se supuso que tanto los tiempos entre llegadas como los tiempos de servicio tenían una distribución exponencial. En muchas situaciones, es posible que estas suposiciones no sean apropiadas. Por ejemplo, las llegadas a un mostrador de una aerolínea por lo general tienden a ocurrir en grupos, debido a factores como las llegadas de autobuses de transbordo y vuelos de conexión. Para este sistema, se debe usar una distribución de tiempos de llegada, lo que implica que ya no es factible el modelo analítico a partir de la teoría de colas. Con la simulación, se podría usar cualquier distribución de tiempos entre llegadas y tiempos de servicio, dando así mucha más flexibilidad al proceso de solución. 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 población demandante infinita. Hay una capacidad ilimitada de la sala de espera, y los clientes serán atendidos en el orden que llegan; es decir, primero en llegar, primero en ser atendido (FCFS,jirst come.first served). Se supone además que las llegadas ocurren una a la vez en un modo aleatorio, con la distribución de tiempos entre llegadas como se especifica en la tabla l. Finalmente se atienden a todos, con la distribución de tiempos de servicio mostrada en la tabla 2. Se supone también que los tiempos de servicio son aleatorios. Después del servicio, los clientes vuelven a la población demandante. Este sistema de lineas de espera se puede representar como se ilustra en la figura 1.

2 1 •2

EjemplO de una simu ación de eventos discretos

1147

una llegada. A continuación. En esta lista. este ejemplo. Si el servidor está ocupado. (2) el status del servidor -es decir. se programa el tiempo de partida del primer cliente. El concepto de eventos tiene una relación estrecha con el estado del sistema. to se define como una situación que causa que cambie de forma instantánea el estado sistema. y (3) el tiempo de la siguiente llegada. Estas acci nes se pueden resumir como se muestra en la figura 2. Toda la información acerca de ellos se mantiene en una lista llamada . Las llegadas en otros puntos del tiempo podrían ercontrar al servidor desocupado u ocupado. Esta simulación se empieza con un sistema vacío y se supone que el primer acont miento. se mantiene un registro del tipo de eventos programados y. tiempo en una simulación se mantiene por medio de una variable llamada tiempo de loj. sólo hay dos eventos posibles que bian el estado del sistema: una llegada al sistema y una salida al completar el servicio.35 .25 Antes de explicar los detalles de la simulación.15 Distribución de fiempo de servicio TIempo de servicio (minutos) Probabilidad 1 2 3 . Un e. tiene lugar en el tiempo de reloj O. Esta llegada encuentra al servi disponible y es atendida de inmediato.20 . se usan las siguientes variables para definir el estado del sistema: (1) el mero de clientes en el sistema.30 . el cliente se agrega a la línea de espera. Esto se hace al generar al azar un tiempo de servicio de la distribución de tiempos de servicio (descrita después en el capítulo) y establecer el tiempo de partida como Tiempo de partida = tiempo de reloj en este momento + tiempo de servicio generado (l Salidas FIGURA 1 Población olicitante __ L_le_ga_das __ Sistema de colas de un solo servidor 0000 Cola o 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 Simulación . si el servidor está pado o disponible. lo es más importante. se atiende cliente. En el modelo de colas de un solo servidor. el tiempo al que está programado que estos eventos tengan lugar. Si el servidor está disponible.35 AO .TABLA 1 TABLA 2 Distribución de fiempo entre llegadas TIempo entre llegadas (minutos) Probabilidad 1 2 3 4 . es necesario definir el estado de este tema y entender los conceptos de eventos y tiempo de reloj dentro de una simulación. estos acontecimientos se programan para que tengan lugar en ciertos p tos del tiempo. 7 la simulación. El concepto de tiempo de reloj será evidente a medida que se solucione el ejemplo. de eventos.

Así. Después de cada actualización del reloj. 9999 (o más grande si es probable que el tiempo de reloj sea mayor que 9999). Este método de simulación se llama mecanismo de tiempo de avance del siguiente evento. Así.. por ejemplo. Con este método. por ejemplo. Si es así. Si el siguiente evento es una salida. es decir. Si el siguiente evento se determina como una llegada. la siguiente llegada se programará para el tiempo de reloj 1. debido a la forma como se actualiza el reloj. Se continúa de esta manera hasta que se satisface alguna condición de paro especificada previamente. un tiempo de partida sólo se puede programar cuando un cliente entra al servicio. se pasan por alto los periodos de inactividad entre eventos saltando de un evento a otro. El salto al siguiente evento en el mecanismo podría ser uno largo o uno pequeño. Puesto que las variables de estado cambian sólo en los tiempos de evento. Este enfoque se confronta con el método de tiempo de avance de incremento fijo.t unidades de tiempo. el procedimiento requiere que en algún punto de la simulación. se adelanta el reloj de simulación en incrementos de !::. por lo común una unidad de tiempo. no es posible programar salidas. Estas acciones de partida se resumen en la figura 3. se mueve el tiempo de reloj al tiempo programado de llegada y se pasa por la secuencia anterior de acciones para una llegada. Una vez completadas las acciones necesarias para la primera llegada. se tenga una llegada y una salida programada para el futuro. los dos eventos consistirán en una llegada real y una salida ficticia. Ambos eventos y sus tiempos programados se mantienen en la lista de eventos. una llegada futura siempre se programa al procesar una nueva llegada al sistema..NO ¿Hay alguien en la cola? SÍ 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 También. se llevan a cabo las acciones apropiadas para 2 1 •2 Ejemplo de una simulación de eventos discretos 1149 . se quita al primer cliente de la cola y se comienza a atender al cliente estableciendo un tiempo de partida por medio de la ecuación (1). Si nadie está esperando. En estos casos. Si está programado un evento. A medida que se pasa de un evento al siguiente. incluso cualquier programación de eventos futuros. Sin embargo. entonces el tiempo de partida para el primer cliente se establecerá en el tiempo de reloj 2. la práctica usual es programar una salida ficticia estableciendo un tiempo de partida igual a un número muy grande. se generó un tiempo de servicio de dos minutos. el primer evento en la lista de eventos. los saltos en este método son de tamaño variable. se comprueba si la longitud de la línea de espera es mayor que cero. se llevan a cabo las acciones apropiadas para cada evento. se mueve el tiempo de reloj al tiempo de salida y se procesa una salida. Para una salida. es decir. donde !::. si el sistema está desocupado. se fija el status del sistema a desocupado. si se generó un tiempo entre llegadas de un minuto. Por otro lado. ahora se programa la siguiente llegada al sistema generando al azar un tiempo entre llegadas a partir de la distribución 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. De manera similar. Se adelanta el reloj de simulación al tiempo de evento inminente más importante. se explora la lista de eventos para determinar el siguiente evento programado y su hora. se comprueba si algún evento está programado para que tenga lugar en el tiempo de reloj actual.t es alguna unidad de tiempo apropiada. De esta manera.

En este punto. Para demostrar el modelo de simulación. el método del siguiente evento sólo se usa para obtener los modelos del resto del capítulo. se actualiza el reloj de simulación por 6. el cliente 1 saldrá del sistema al tiempo de reloj 3. se fija TM = O. Puesto que TM = en este punto. el cliente entra al servicio de inmediato. se establece que AT = O. En otras palabras. Para esta parte de la simulación. AT = es menor que DT = 9 999. se fija DT = 3 para el primer cliente. el tiempo de servicio para el primer cliente son tres unidades de tiempo. Se supone también que el sistema está vacío en el tiempo 0. En consecuencia. Por simplicidad. se quiere mostrar cómo se representa el modelo de simulación en la computadora a medida que la simulación avanza por el tiempo. debido a sus pasos fijos en el tiempo. = longitud de la línea de espera °= desocupado) longitud (en unidades de tiempo) de una ejecución de la simulación Una vez tomados en cuenta estos preparativos. Ahora se ilustran los mecanismos de la simulación del sistema de colas de un solo servidor. 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. De manera similar. etcétera.el suceso. Es decir. Por último. así que se tendría que contar con un sistema eficaz de búsqueda en la lista de eventos.cicn de computadora de la simulación mostrada en la tabla 4. El mecanismo de tiempo de avance de incremento fijo es más fácil de comprender.) AT < DT indica una llegada. Los bloques del diagrama de flujo se numeran para tenerlos como referencia. TM. Estos tiempos se muestran en la tabla 3. Si no está programada ninguna. etcétera. al tiempo del evento 1 (bloque 3). Con esto se completa el proceso de condiciones iniciales y se obtiene la represenz. El proceso de simulación completo para el modelo de colas con un solo servidor se presenta en el diagrama de flujo de la figura 4. La llegada en el tiempo encuentra vacío al sistema. se determina simplemente el siguiente evento comparando AT y DT. de la cual se puede ver que el tiempo entre la primera y la segunda llegada son dos unidades de tiempo. (Observe que DT debe ser mayor que MX). para la mayoría de los modelos el mecanismo del siguiente evento tiende a ser más eficaz en cuanto a cálculos. o si ya se completaron las acciones requeridas para el tiempo actual. Se marca con 1 este evento y se actualiza el tiempo de reloj. En particular. En este momento se está listo para la primera acción en la simulación: buscar en la lista de eventos para determinar el primer evento (bloque 2). de la tabla 3. primero se establece SS = 1 para indicar que ahora el servidor está ocupado (bloque 6). DT < AT una salida. por medio de un ejemplo numérico. (En otras simulaciones. es necesario definir varias variables: TM DT SS WL MX = tiempo de reloj de la simulación AT = tiempo programado para la siguiente llegada = tiempo programado de la siguiente salida = = status del servidor (1 = ocupado. se podría tener más de dos eventos. el tiempo entre la segunda y la tercera llegada también son dos unidades de tiempo. TE (bloque 9) y fijando el tiempo de esta llegada por medio de la ecuación AT ° ° ° ° ° 1150 e A P ¡TU l o 2 1 Simulación . así que se fija SS = 0. WL = y DT = 9999. para completar las acciones de procesar una llegada. 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.t unidades y se repite el proceso. se comienza la simulación con valores iniciales de las variables (bloque 1 de la figura 4). TS para el segundo cliente también son tres unidades de tiempo. lo cual indica que a continuación tendrá lugar una llegada. Sin embargo. se ve que STpara el cliente 1 es 3. se continúa de esta manera hasta que se alcanza la condición de paro preespecificada. En consecuencia. se programa la siguiente llegada al sistema generando un tiempo entre llegadas. indicado por el hecho de que SS = (bloque 4). Al igual que con el método del siguiente evento. A continuación se genera un tiempo de servicio (bloque 7) y se establece el tiempo de partida para este cliente (bloque 8). Puesto que la simulación consiste en sólo dos eventos. Puesto que se supone que la primera llegada tiene lugar en el tiempo 0.

se procede a bloquear 18 para determinar si el tiempo de reloj. la segunda llegada tendrá lugar al tiempo de reloj 2. imprima los resultados (bloque 19) y detenga la ejecución. Sin embargo. En esta etapa de la simulación. A esto se le conoce como proceso de terminación.'0 Condiciones iniciales de "-!J las variables de estado Procesar una llegada ¿Es AT < Procesar una salida on . Puesto que TE = 2. Al final del suceso 1.-------'------.FIGURA 4 Diagrama de flujo del modelo de simulación para el sistema de colas con un solo servidnr . se fija AT = 2. Este proceso se ejecuta al final de cada evento. se supone que MX es un número grande. Es decir. 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 deténgase = TM + TE (bloque 10). ha excedido el tiempo de simulación especificado. En consecuencia. TM. de aquí en adelante. para este ejemplo.--------. la representación de computadora de la simulación será como se muestra en la tabla 4. 2 1 •2 Ejemplo de una simulación oe eventos discretos 1151 . En caso afirmativo. MX. no se hablará del proceso de terminación.

se ve que en este punto (fin del evento 2). Esto implica que el siguiente evento. 1152 e HiT 2 1 Simulación U LO . Puesto que el evento actual es una llegada. en este momento se programa la siguiente llegada al sistema. el siguiente evento. DT = 3 es menor que AT = 4. es decir. será una llegada en el tiempo 2. La llegada en el tiempo 2 encuentra ocupado al servidor. así que se coloca a este cliente en la línea de espera al actualizar WL de O a 1 (bloque 5). evento 2.TABLA 3 Tiempos entre llegadas y servicio generndos Número 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 Representación de computadorn de la simulación Tipo de evento Número 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 8 En este punto. la siguiente llegada tiene lugar en el tiempo de reloj 4. Una vez determinado el siguiente evento. se adelanta la simulación al tiempo de este arribo actualizando TMa2. Puesto que AT = 2 Y DT = 3. se actualiza TM a 3 (bloque 11). A partir de la representación de computadora para el sistema en la tabla 4. Esto completa las acciones necesarias para el evento 2. se retorna al bloque 2 para determinar el siguiente evento. De nuevo se retorna al bloque 2 para determinar el siguiente evento. será una salida en el tiempo de reloj 3. evento 3. Se adelanta el reloj al tiempo de esta salida. Dado que TE = 2 para la llegada 3.

se ve que para el cliente 2. . como la que está entre los tiempos 9 y 11. Puesto que TM = 3. ST (bloque 16). se podría ampliar el diagrama de flujo para calcular e imprimir el tiempo de espera promedio. se deja al lector que solucione la lógica de la simulación para el resto de los eventos de este ejemplo. De la tabla 3. se tiene un cliente esperando. Puesto que WL = 1. ahora el servidor se desocupa. el número promedio en la línea de espera y la proporción de tiempo desocupado. lo que es más importante. Por ejemplo. Aquí. Este ejemplo ilustra algunos de los conceptos básicos en la simulación y la forma como se puede usar para analizar un problema particular. con lo que se obtiene la representación de computadora mostrada en la tabla 4. se procesa la primera salida del sistema. Esta simulación se resume en un diagrama continuo de tiempo de la figura 5. No se hizo mención en el ejemplo de la colección de estadísticas. el sistema permanece desocupado hasta que llega un cliente. Los temas estadísticos se estudian con más detalle más adelante en el capítulo. Ahora ya se completaron las acciones para el evento 3. En cada caso.FIGURA 5 Representación continua de tiempo de la simulación de un solo servidor Tiempo En el tiempo 3. se analizan algunos de estos conceptos de simulación con más detalle. Se comprueba el status de la cola para ver si hay clientes esperando ser atendidos (bloque 12). definimos 55=0 (bloque 13) y DT=5999 (bloque 14). 10 y 14 (todos ellos salidas). Con la salida. se establece DT = 6. En el resto del capítulo. significa que el sistema está desocupado. Aunque es probable que este modelo no se utilice para evaluar muchas situaciones de importancia. En la tabla 4 se muestra el status de la simulación al final de cada uno de estos eventos. y estableciendo el tiempo de partida por medio de la relación DT = TM + ST (bloque 17). ST = 3. Obsérvese que al final de los eventos 8. establezca WL = O (bloque 15) y se atiende al cliente generando un tiempo de servicio. Durante la secuencia de acciones para estos eventos. De aquí en adelante. Se saca a este cliente de la línea de espera. el sistema se desocupa. pero los procedimientos se pueden incorporar fácilmente en el modelo para determinar las medidas de desempeño de este sistema. nos ha dado un ejemplo específico y. las letras A representan las llegadas y las letras D las salidas. introdujo diversos conceptos clave de simulación. Observe que las áreas rayadas.

Sign up to vote on this title
UsefulNot useful