simulacion discreta

7
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 simula- ció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 en- tran 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, de- bido 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í mu- cha 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 or- den 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 su- pone también que los tiempos de servicio son aleatorios. Después del servicio, los clien- tes 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

Upload: hernancho6819

Post on 04-Aug-2015

119 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: simulacion discreta

21.2 Ejemplo de una simulación de eventos discretosAntes de proceder con los detalles del modelado de la simulación, será útil trabajar en unejemplo de simulación simple para ilustrar algunos de los conceptos básicos de la simula-ción de eventos discretos. El modelo elegido como ejemplo inicial es un sistema de colasde un solo servidor. Los clientes llegan a este sistema a partir de alguna población y en-tran 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íacon un solo peluquero, una pequeña dulcería con un solo cajero y un solo expendedor deboletos 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óndel sistema. Sin embargo, se tuvo que hacer varias suposiciones restrictivas para usar lateoría de colas. En particular, cuando se estudió un sistema M/MII, se supuso que tanto lostiempos 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, de-bido a factores como las llegadas de autobuses de transbordo y vuelos de conexión. Paraeste sistema, se debe usar una distribución de tiempos de llegada, lo que implica que ya noes factible el modelo analítico a partir de la teoría de colas. Con la simulación, se podríausar cualquier distribución de tiempos entre llegadas y tiempos de servicio, dando así mu-cha más flexibilidad al proceso de solución.

Para simular un sistema de colas, primero hay que describirlo. Para este sistema de unsolo 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 or-den que llegan; es decir, primero en llegar, primero en ser atendido (FCFS,jirst come.firstserved). Se supone además que las llegadas ocurren una a la vez en un modo aleatorio, conla distribución de tiempos entre llegadas como se especifica en la tabla l. Finalmente seatienden a todos, con la distribución de tiempos de servicio mostrada en la tabla 2. Se su-pone también que los tiempos de servicio son aleatorios. Después del servicio, los clien-tes vuelven a la población demandante. Este sistema de lineas de espera se puederepresentar como se ilustra en la figura 1.

2 1 • 2 EjemplO de una simu ación de eventos discretos 1147

Page 2: simulacion discreta

FIGURA 1Sistema de colas de un

solo servidor

FIGURA 2Diagrama de flujo

para una llegada

1148

TABLA 1Distribución de fiempo entre llegadas

TABLA 2Distribución de fiempo de servicio

TIempo entre llegadas(minutos) Probabilidad

TIempo de servicio(minutos) Probabilidad

1 .202 .303 .354 .15

1 .352 AO3 .25

Antes de explicar los detalles de la simulación, es necesario definir el estado de este -tema y entender los conceptos de eventos y tiempo de reloj dentro de una simulación.este ejemplo, se usan las siguientes variables para definir el estado del sistema: (1) elmero 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 relación estrecha con el estado del sistema. Un e,to se define como una situación que causa que cambie de forma instantánea el estadosistema. En el modelo de colas de un solo servidor, sólo hay dos eventos posibles quebian el estado del sistema: una llegada al sistema y una salida al completar el servicio. 7

la simulación, estos acontecimientos se programan para que tengan lugar en ciertos p -tos del tiempo. Toda la información acerca de ellos se mantiene en una lista llamada .de eventos. En esta lista, se mantiene un registro del tipo de eventos programados y, loes más importante, el tiempo al que está programado que estos eventos tengan lugar. -tiempo en una simulación se mantiene por medio de una variable llamada tiempo deloj. El concepto de tiempo de reloj será evidente a medida que se solucione el ejemplo.

Esta simulación se empieza con un sistema vacío y se supone que el primer acontmiento, una llegada, tiene lugar en el tiempo de reloj O. Esta llegada encuentra al servidisponible y es atendida de inmediato. Las llegadas en otros puntos del tiempo podrían er-contrar al servidor desocupado u ocupado. Si el servidor está disponible, se atiendecliente. Si el servidor está ocupado, el cliente se agrega a la línea de espera. Estas acci -nes se pueden resumir como se muestra en la figura 2.

A continuación, se programa el tiempo de partida del primer cliente. Esto se hace al ge-nerar al azar un tiempo de servicio de la distribución de tiempos de servicio (descrita des-pué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

Población __ L_le_ga_das__

olicitante 0000Cola

o

Desocupado OcupadoStatusdel servidor

Cliente que es atendido Cliente que se forma en la cola

e A P í TUL o 2 1 Simulación

Page 3: simulacion discreta

FIGURA 3Diagrama de flujo

para una salida

NO ¿Hayalguien en la

cola?

Quitar al cliente de la colay empezar el servicio

Fijar el status delsistema a desocupado

También, ahora se programa la siguiente llegada al sistema generando al azar un tiempoentre llegadas a partir de la distribución de tiempo entre llegadas y estableciendo el tiem-po 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 departida para el primer cliente se establecerá en el tiempo de reloj 2. De manera similar, sise generó un tiempo entre llegadas de un minuto, la siguiente llegada se programará parael tiempo de reloj 1.

Ambos eventos y sus tiempos programados se mantienen en la lista de eventos. Una vezcompletadas las acciones necesarias para la primera llegada, se explora la lista de eventospara determinar el siguiente evento programado y su hora. Si el siguiente evento se deter-mina como una llegada, se mueve el tiempo de reloj al tiempo programado de llegada y sepasa por la secuencia anterior de acciones para una llegada. Si el siguiente evento es unasalida, se mueve el tiempo de reloj al tiempo de salida y se procesa una salida. Para unasalida, se comprueba si la longitud de la línea de espera es mayor que cero. Si es así, sequita al primer cliente de la cola y se comienza a atender al cliente estableciendo un tiem-po de partida por medio de la ecuación (1). Si nadie está esperando, se fija el status del sis-tema a desocupado. Estas acciones de partida se resumen en la figura 3.

Este método de simulación se llama mecanismo de tiempo de avance del siguienteevento, debido a la forma como se actualiza el reloj. Se adelanta el reloj de simulación altiempo de evento inminente más importante; es decir, el primer evento en la lista de even-tos. Puesto que las variables de estado cambian sólo en los tiempos de evento, se pasan poralto los periodos de inactividad entre eventos saltando de un evento a otro. A medida quese pasa de un evento al siguiente, se llevan a cabo las acciones apropiadas para cada even-to, incluso cualquier programación de eventos futuros. Se continúa de esta manera hastaque se satisface alguna condición de paro especificada previamente. Sin embargo, el pro-cedimiento requiere que en algún punto de la simulación, se tenga una llegada y una sali-da programada para el futuro. Así, una llegada futura siempre se programa al procesar unanueva llegada al sistema. Por otro lado, un tiempo de partida sólo se puede programarcuando un cliente entra al servicio. Así, si el sistema está desocupado, no es posible pro-gramar salidas. En estos casos, la práctica usual es programar una salida ficticia estable-ciendo un tiempo de partida igual a un número muy grande, por ejemplo, 9999 (o másgrande si es probable que el tiempo de reloj sea mayor que 9999). De esta manera, los doseventos consistirán en una llegada real y una salida ficticia.

El salto al siguiente evento en el mecanismo podría ser uno largo o uno pequeño; es de-cir, los saltos en este método son de tamaño variable. Este enfoque se confronta con el mé-todo de tiempo de avance de incremento fijo. Con este método, se adelanta el reloj desimulación en incrementos de !::..t unidades de tiempo, donde !::..t es alguna unidad de tiem-po apropiada, por lo común una unidad de tiempo. Después de cada actualización del re-loj, se comprueba si algún evento está programado para que tenga lugar en el tiempo dereloj actual. Si está programado un evento, se llevan a cabo las acciones apropiadas para

2 1 • 2 Ejemplo de una simulación de eventos discretos 1149

Page 4: simulacion discreta

el suceso. Si no está programada ninguna, o si ya se completaron las acciones requeridaspara el tiempo actual, se actualiza el reloj de simulación por 6.t unidades y se repite el pro-ceso. Al igual que con el método del siguiente evento, se continúa de esta manera hastaque se alcanza la condición de paro preespecificada. El mecanismo de tiempo de avancede incremento fijo es más fácil de comprender, debido a sus pasos fijos en el tiempo. Sinembargo, para la mayoría de los modelos el mecanismo del siguiente evento tiende a sermás eficaz en cuanto a cálculos. En consecuencia, el método del siguiente evento sólo seusa para obtener los modelos del resto del capítulo.

Ahora se ilustran los mecanismos de la simulación del sistema de colas de un solo ser-vidor, por medio de un ejemplo numérico. En particular, se quiere mostrar cómo se repre-senta el modelo de simulación en la computadora a medida que la simulación avanza porel tiempo. El proceso de simulación completo para el modelo de colas con un solo servi-dor se presenta en el diagrama de flujo de la figura 4. Los bloques del diagrama de flujo senumeran para tenerlos como referencia. Por simplicidad, se supone que tanto los tiemposentre llegadas (TE) como los tiempos de servicio (TS) ya se generaron para los primerosclientes a partir de las distribuciones de probabilidad de las tablas 1 y 2. Estos tiempos semuestran en la tabla 3, de la cual se puede ver que el tiempo entre la primera y la segundallegada son dos unidades de tiempo, el tiempo entre la segunda y la tercera llegada tam-bién son dos unidades de tiempo, etcétera. De manera similar, el tiempo de servicio parael primer cliente son tres unidades de tiempo, TS para el segundo cliente también son tresunidades de tiempo, etcétera.

Para demostrar el modelo de simulación, es necesario definir varias variables:

TM = tiempo de reloj de la simulaciónAT = tiempo programado para la siguiente llegadaDT = tiempo programado de la siguiente salidaSS = status del servidor (1 = ocupado, ° = desocupado)

WL = longitud de la línea de esperaMX = longitud (en unidades de tiempo) de una ejecución de la simulación

Una vez tomados en cuenta estos preparativos, se comienza la simulación con valores ini-ciales de las variables (bloque 1 de la figura 4). Puesto que se supone que la primera lle-gada tiene lugar en el tiempo 0, se establece que AT = O. Se supone también que el sistemaestá vacío en el tiempo 0, así que se fija SS = 0, WL = ° y DT = 9999. (Observe que DTdebe ser mayor que MX). Esto implica que la lista de eventos ahora consiste en dos even-tos 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 decomputadora de la simulación mostrada en la tabla 4.

En este momento se está listo para la primera acción en la simulación: buscar en la lis-ta de eventos para determinar el primer evento (bloque 2). Puesto que la simulación con-siste en sólo dos eventos, se determina simplemente el siguiente evento comparando AT yDT. (En otras simulaciones, se podría tener más de dos eventos, así que se tendría que con-tar con un sistema eficaz de búsqueda 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 quea continuación tendrá lugar una llegada. Se marca con 1 este evento y se actualiza el tiem-po de reloj, TM, al tiempo del evento 1 (bloque 3). Es decir, se fija TM = O.

La llegada en el tiempo ° encuentra vacío al sistema, indicado por el hecho de queSS = ° (bloque 4). En consecuencia, el cliente entra al servicio de inmediato. Para esta par-te de la simulación, primero se establece SS = 1 para indicar que ahora el servidor está ocu-pado (bloque 6). A continuación se genera un tiempo de servicio (bloque 7) y se establece eltiempo de partida para este cliente (bloque 8). de la tabla 3, se ve que STpara el cliente 1 es3. 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 accionesde procesar una llegada, se programa la siguiente llegada al sistema generando un tiempo en-tre llegadas, 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

Page 5: simulacion discreta

FIGURA 4Diagrama de flujo del modelo de simulación para el sistema de colas con un solo servidnr

.--------,'0Condiciones iniciales de "-!Jlas variables de estado

Procesaruna llegada ¿Es

AT < on

Procesaruna salida

¿EsSS = O?

Servidorocupado

,-------'------,G

Servidorocupado WL = O ¿Es

WL > O?WL > O

Actualice WL = WL + I

NO ¿EsTM 2: MX?

Imprima los resultados>---------1 y deténgase

= TM + TE (bloque 10). Puesto que TE = 2, se fija AT = 2. Es decir, la segunda llegadatendrá lugar al tiempo de reloj 2. Al final del suceso 1, la representación de computadora dela simulación será como se muestra en la tabla 4.

En esta etapa de la simulación, se procede a bloquear 18 para determinar si el tiempode reloj, TM, ha excedido el tiempo de simulación especificado, MX. En caso afirmativo,imprima los resultados (bloque 19) y detenga la ejecución. A esto se le conoce como pro-ceso de terminación. Este proceso se ejecuta al final de cada evento. Sin embargo, para es-te ejemplo, se supone que MX es un número grande. En consecuencia, de aquí en adelante,no se hablará del proceso de terminación.

2 1 • 2 Ejemplo de una simulación oe eventos discretos 1151

Page 6: simulacion discreta

TABLA 3Tiempos entre llegadas y servicio generndos

Número de Tiempo entre Tiempo decliente llegadas (TE) servicio (TS)

1 32 2 33 2 24 3 l5 4 l6 2 27 1 l8 3 29 3

TABLA 4Representación de computadorn de la simulación

Fin del Tipo de Número deVariables del sistema Lista de eventos

evento evento cliente TM SS Wl AT OT

O Condiciones iniciales O O O O 99991 Llegada l O 1 O 2 32 Llegada 2 2 1 1 4 33 Salida 1 3 1 O 4 64 Llegada 3 4 1 1 7 65 Salida 2 6 1 O 7 86 Llegada 4 7 1 1 11 87 Salida 3 8 l O 11 98 Salida 4 9 O O 11 99999 Llegada 5 11 1 O 13 12

10 Salida 5 12 O O 13 999911 Llegada 6 13 1 O 14 1512 Llegada 7 14 1 1 17 1513 Salida 6 15 1 O 17 1614 Salida 7 16 O O 17 999915 Llegada 8 17 1 O 20 19

En este punto, se retorna al bloque 2 para determinar el siguiente evento. Puesto que AT =2 YDT = 3, el siguiente evento, evento 2, será una llegada en el tiempo 2. Una vez deter-minado el siguiente evento, se adelanta la simulación al tiempo de este arribo actualizan-do TMa2.

La llegada en el tiempo 2 encuentra ocupado al servidor, así que se coloca a este clien-te en la línea de espera al actualizar WL de O a 1 (bloque 5). Puesto que el evento actual esuna 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 completalas acciones necesarias para el evento 2. De nuevo se retorna al bloque 2 para determinarel siguiente evento. A partir de la representación de computadora para el sistema en la ta-bla 4, se ve que en este punto (fin del evento 2), DT = 3 es menor que AT = 4. Esto im-plica que el siguiente evento, evento 3, será una salida en el tiempo de reloj 3. Se adelantael reloj al tiempo de esta salida; es decir, se actualiza TM a 3 (bloque 11).

1152 e HiT U LO 2 1 Simulación

Page 7: simulacion discreta

FIGURA 5Representación

continua de tiempo dela simulación de un

solo servidorTiempo

En el tiempo 3, se procesa la primera salida del sistema. Con la salida, ahora el servidorse desocupa. Se comprueba el status de la cola para ver si hay clientes esperando ser aten-didos (bloque 12). Puesto que WL = 1, se tiene un cliente esperando. Se saca a este clien-te de la línea de espera, establezca WL = O (bloque 15) y se atiende al cliente generandoun tiempo de servicio, ST (bloque 16), y estableciendo el tiempo de partida por medio dela relación 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 elevento 3, con lo que se obtiene la representación de computadora mostrada en la tabla 4.

De aquí en adelante, se deja al lector que solucione la lógica de la simulación para el res-to de los eventos de este ejemplo. En la tabla 4 se muestra el status de la simulación al finalde cada uno de estos eventos. Obsérvese que al final de los eventos 8, 10 y 14 (todos ellossalidas), el sistema se desocupa. Durante la secuencia de acciones para estos eventos, defi-nimos 55=0 (bloque 13) y DT=5999 (bloque 14). En cada caso, el sistema permanecedesocupado hasta que llega un cliente. Esta simulación se resume en un diagrama continuode 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 sis-tema está desocupado.

Este ejemplo ilustra algunos de los conceptos básicos en la simulación y la forma co-mo se puede usar para analizar un problema particular. Aunque es probable que este mo-delo no se utilice para evaluar muchas situaciones de importancia, nos ha dado un ejemploespecífico y, lo que es más importante, introdujo diversos conceptos clave de simulación.En el resto del capítulo, se analizan algunos de estos conceptos de simulación con más de-talle. No se hizo mención en el ejemplo de la colección de estadísticas, pero los procedi-mientos se pueden incorporar fácilmente en el modelo para determinar las medidas dedesempeño de este sistema. Por ejemplo, se podría ampliar el diagrama de flujo paracalcular e imprimir el tiempo de espera promedio, el número promedio en la línea de es-pera y la proporción de tiempo desocupado. Los temas estadísticos se estudian con másdetalle más adelante en el capítulo.