Manual del estudiante de Ingeniería en Sistemas de UTN/Simulación/Software de simulación de eventos discretos/Ejercicio 7 GPSS

Problema 7Editar

La cafetería de una universidad esta tratando de mejorar su servicio durante el almuerzo desde las 11:30 a la 13:00 horas. Los clientes arriban en grupos de 1, 2, 3 y 4 alumnos con las siguientes probabilidades 0.5, 0.3, 0.1, y 0.1, respectivamente. Los interarribos están distribuidos exponencialmente con una media de 30 segundos. Inicialmente el sistema esta vacío y ocioso, y será corrido por un período de 90 minutos. Cada cliente que arriba, sea solo o en grupo, toma una de las tres rutas siguientes a través de la cafetería (los grupos se separan al llegar):

  1. Comida caliente, luego bebida y luego cajero. (Probabilidad: 0.8)
  2. Sándwiches, luego bebida y luego cajero. (Probabilidad: 0.1)
  3. Sólo bebidas y luego cajero. (Probabilidad: 0.05).

El tiempo de servicio en comida caliente esta uniformemente distribuido entre 50 y 120 segundos; en sándwiches esta uniformemente distribuido entre 60 y 180 segundos y en bebidas entre 5 y 20 segundos. Los dos primeros son servidos de uno por vez y las bebidas son de autoservicio y se supone que existe en cantidad suficiente para satisfacer todos los requerimientos. Hay dos cajeros, cada uno con su cola, y los clientes eligen la cola más corta pero no cambian de cola. Solo cuando un cajero terminó de atender su cola sigue atendiendo los clientes del otro en el mismo orden. Todas las colas son del tipo FIFO. Haga un modelo que reporte las siguientes medidas de performance:

  • La demora media y máxima en la cola de comida caliente, sándwichs y cajeros.
  • Máximo numero de cada cola.
  • La cantidad de cada tipo de clientes
  • El tiempo medio de clientes en el sistema y la cantidad que pasaron por el mismo.
cafeteria        STORAGE 1000

                 GENERATE (EXPONENTIAL(1,0,30))  ;personas
                 TRANSFER 0.5,entrar,grupos
entrar           ENTER cafeteria
                 TRANSFER 0.8,demas,aComida
aComida          QUEUE colaComida
                 SEIZE comida
                 DEPART colaComida
                 ADVANCE (UNIFORM(2,50,120))
                 RELEASE comida
aBebida          ADVANCE (UNIFORM(3,5,20))
aCaja            TEST L Q$colaCaja1,Q$colaCaja2,enCola2
                 TRANSFER ,enCola1
vacia1           TEST E Q$colaCaja1,0
                 DEPART colaCaja2
enCola1          QUEUE colaCaja1

                 ;F$<entidad> devuelve 1 si está ocupada
                 TEST E F$caja1,1,enCaja1
                                   ;si está ocupada continúa
                                   ;si no, va al bloque
                                   ;alternativo, que es ocupar
                                   ;la caja
                 TRANSFER BOTH enCaja1,vacia2
enCaja1          SEIZE caja1
                 DEPART colaCaja1
                 ADVANCE 45,20
                 RELEASE caja1
salir            LEAVE cafeteria
                 TERMINATE
vacia2           TEST E Q$colaCaja2,0
                 DEPART colaCaja1
enCola2          QUEUE colaCaja2
aCaja2           TEST E F$caja2,1,enCaja2
                 TRANSFER BOTH enCaja2,vacia1
enCaja2          SEIZE caja2
                 DEPART colaCaja2
                 ADVANCE 45,20
                 RELEASE caja2
                 TRANSFER ,salir
grupos           TRANSFER 0.6,masD2,dos
dos              SPLIT 1
                 TRANSFER ,entrar
masD2            TRANSFER 0.5,tres,cuatro
tres             SPLIT 2
                 TRANSFER ,entrar
cuatro           SPLIT 3
                 TRANSFER ,entrar
demas            TRANSFER 0.75,aSandwich,aBebida
aSandwich        QUEUE colaSandwich
                 SEIZE sandwichero
                 DEPART colaSandwich
                 ADVANCE (UNIFORM(4,60,180))
                 RELEASE sandwichero
                 TRANSFER ,aBebida

                 GENERATE 540
                 TERMINATE 1

(Faltan los reportes)