Manual del estudiante de Ingeniería en Sistemas de UTN/Simulación/Software de simulación de eventos discretos/Ejercicio 4 GPSS
Problema 4
[editar]A un supermercado llegan clientes por 2 puertas. Por la puerta 1, uno cada 2 +/- 1 minutos, y por la puerta 2 cada 45 +/- 15 seg. Los que ingresaron por la puerta 1 demoran 40 +/- 20 segundos en juntarse con los que ingresaron por la puerta 2. Un 30% va a dejar los envases a una empleada que los atiende en 30 +/- 10 seg., el resto sigue el recorrido. El 60% va a fiambrería donde sacan un número por el cual los llaman; el puesto es atendido por 3 empleados y el tiempo de atención es de 100 +/- 45 seg. El resto va a verdulería donde hay un único empleado que atiende en 50 +/- 20 seg. Luego recorren la zona de autoservicio durante 300 +/- 120 seg. Una vez finalizadas las compras se dirigen a una única caja que demora 60 +/- 30 segundos en atenderlos. Al terminar de pagar se retiran del supermercado. Simular de 9 a 13 horas. Y obtener:
- La cantidad de personas que hay en cola frente a la empleada que recibe los envases, vista por una persona antes de ponerse en la citada cola.
- El tiempo de permanencia de los clientes en el supermercado.
tiempo TABLE M1 300,300,25
cantCola TABLE Q$colaEnv 4,4,10
supermercado STORAGE 10000
fiambres STORAGE 3
GENERATE 120,60
ENTER supermercado
MARK
ADVANCE 40,20 ;caminando
TRANSFER ,entrada2
GENERATE 45,15
ENTER supermercado
MARK
entrada2 TRANSFER 0.3,sigue,irEnvases
irEnvases TABULATE cantCola
QUEUE colaEnv
SEIZE empleada
DEPART colaEnv
ADVANCE 30,10
RELEASE empleada
sigue TRANSFER 0.6,irVerd,irFiamb
irFiamb ENTER fiambres
ADVANCE 100,45
LEAVE fiambres
TRANSFER ,compras
irVerd SEIZE verdulero
ADVANCE 50,20
RELEASE verdulero
compras ADVANCE 300,120
SEIZE caja
ADVANCE 60,30
RELEASE caja
LEAVE supermercado
TABULATE tiempo
TERMINATE
GENERATE 14400
TERMINATE 1
;guía
START 1
Como se ve, para evitar código redundante, se utiliza un TRANSFER incondicional que lleva a la transacción a un bloque ubicado en la secuencia de bloques de otro GENERATE.