====== Examen Parcial - 75.26. Simulación - 30/11/2005 ======
**Cátedra:** Rocca \\
**Fecha:** Primera Oportunidad - Segundo Cuatrimestre 2005\\
**Día:** 30/11/2005
===== Enunciado =====
==== Punto I ====
Construir un modelo utilizando el lenguaje GPSS que simule lo que sucede en un supermercado de acuerdo a la siguiente descripción:
A partir de las 8 horas, hora en que abre el supermercado, arriban:
* Una persona cada X$MEDIA segundos, distribución Poisson (X\$MEDIA es función del horario - ver tabla-, función POISSON al final de la hoja).
* Personas que llegan en tren a una estación ubicada en las proximidades del supermercado. Llega un tren cada 360±60 segundos, trayendo X$CANT±5 personas por viaje. Los pasajeros bajan todos juntos demorando 45±15 segundos en llegar a una parada de micros de la propia empresa. Hay cuatro micros, los cuales aparecen a las 8:15, 8:35, 8:50 y 9:10 horas. Solamente un micro por vez recoge pasajeros en la parda (si un micro está recogiendo pasajeros y llega otro micro, este último espera a que el anterior termine para empezar a recoger). Demora 4±1 segundo en hacer subir a un pasajero (sube un por vez) y parte cuando no hay más pasajeros esperando y hace por lo menos cinco minutos que está recogiendo pasajeros en la parada. Demora 15±2 minutos en llegar al supermercado. Allí hace bajar a los pasajeros, de a uno por vez, demorando cada pasajero 4±1 segundo en bajar. Una vez que bajaron todos, se dirige a la parada donde ascienden los pasajeros demorando 25±15 segundos en llegar allí. Sólo un micro por vez recoge pasajeros, comportándose de la misma manera que en la estación (demora 4±1 segundo en hacer subir a un pasajero, sube un por vez y parte cuando no hay más pasajeros y hace por lo menos cinco minutos que recoge pasajeros). Demora 16±2 minutos en llegar a la estación del ferrocarril. Allí hace bajar a los pasajeros, de a uno por vez, demorando cada pasajero 4±1 segundo en bajar. Una vez que bajaron todos, se dirige a la parda donde ascienden los pasajeros demorando 25±15 segundos en llegar allí, donde repite el ciclo aquí descripto indefinidamente.
^ Horario(hs.) ^ X$MEDIA (seg.) ^ X$CANT (personas) ^ Cantidad de cajas habilitadas (X1) ^
| 8-9 | 180 | 7 | 6 |
| 9-10 | 150 | 9 | 7 |
| 10-12 | 90 | 13 | 8 |
| 12-13 | 60 | 15 | 9 |
| 13-15 | 75 | 8 | 6 |
| 15-18 | 90 | 12 | 7 |
| 18-Fin | 120 | 10 | 8 |
Los clientes pertenecen a cuatro tipos según la siguiente tabla:
^ Tipo ^ Probabilidad ^ Tiempo en información ^ Tiempo en zona de AutoServicio ^ Cantidad de artículos ^ Y% ^
| 1 | 15% | 60±30 seg. | 20±4 minutos | 12 a 24 | 40%|
| 2 | 40% | 30±15 seg. | 12±4 minutos | 5 a 10 | 25%|
| 3 | 20% | 90±30 seg. | 25±4 minutos | 15 a 36 | 60%|
| 4 | 25% | 45±15 seg. | 8±4 minutos | 2 a 10 | 35%|
El Y% pasa por informes (Y es función del tipo de cliente). Allí hay dos personas que atienden en forma indistinta (la cola es única). El tiempo que demoran en informes es función del tipo de cliente (Ver tabla anterior). Todos los clientes pasan por la zona de autoservicio, quedándose allí un tiempo que es función del tipo de cliente. La cantidad de artículos que compran también es función del tipo de cliente, con distribución equiprobable en el rango especificado. (ver tabla anterior).
Los clientes seleccionan al cajero con cola mínima entre los X1 que atienden (ver X1 en la primera tabla). En caja se demoran 4±2 segundos en registrar cada artículo y, en un 30% de los casos, 20±5 segundos en pagar. En el 70% restante de los casos la demora es de 45±10 segundos en pagar con tarjeta (en un 3% de los casos de estos pagos con tarjeta, hay una demora adicional porque el pago es rechazado. Un 85% de estos clientes soluciona el problema demorando 60±20 segundos en hacerlo, pero el 15% restante no puede solucionar el problema y se debe realizar una devolución que obliga a que un supervisor venga a solucionarlo). Hay un único supervisor que, cuando se produce una devolución se dirige a la caja donde se produjo la misma demorando 30±10 segundos en llegar, 40±20 segundos en solucionar el problema. En este momento se fija si existe otro problema y en caso de haberlo se dirige a solucionarlo de la manera ya descripta (demora 30±10 segundos en llegar, 40±20 segundos en solucionar el problema). En caso de haber más de una devolución que atender elige la caja cuyo número es menor.
Todos los clientes que vinieron en micro vuelven a tomarlo y un 35% de los que no vinieron en micro también lo toma, para lo cual demoran 45±15 segundos en llegar a la parada del micro, donde aguardan que un micro los recoja, El resto sale de nuestro sistema en estudio en el momento en que termina de ser atendido en caja.
A las 20 horas se cierra el supermercado (se sigue atendiendo hasta que se va el último cliente).
Simular un día completo de atención al público de este supermercado, o sea hasta que se retira el último cliente del supermercado (aunque queden clientes en la parada esperando el micro y/o viajando en él.
Tabular:
* El tiempo que cada cliente estuvo en el supermercado.
* El tiempo que cada cliente, que vuelve en tren estuvo en el sistema, o sea, desde que arribó al sistema hasta que bajó del micro en la estación. Una tabla por cada tipo de cliente (o sea en cuatro tablas distintas).
* La cantidad de artículos que llevó cada cliente.
* Cada dos minutos la cantidad de gente que hay en el supermercado.
==== Punto II ====
¿Se conformaría con que la mayoría de los casos que usted simula concuerdan con los datos reales? (los resultados obtenidos en la simulación en la mayoría de los casos concuerdan con los obtenidos en el sistema real).
==== Punto III ====
Describa como haría, utilizando el lenguaje GPSS para, en un subsistema de compras, averiguar el precio de una impresora cuya velocidad sea máxima, suponiendo que las impresoras pertenecen al grupo IMPRE, que el precio está en el parámetro PRECIO y que la velocidad está en el parámetro VELOCIDAD.
===== Resolución =====
==== Punto I ====
; Segundo parcial Simulación (75.26) de la fecha 30 de Noviembre del 2005.
POISSON FUNCTION RN4,C24
0.0,0.0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.69
0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12
0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5
0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7.0/0.9997,8.0
Media FUNCTION AC1,D7
3600,180/7200,150/14400,90/18000,60/25200,75/36000,90/36001,120
Cant FUNCTION AC1,D7
3600,7/7200,9/14400,13/18000,15/25200,8/36000,12/36001,10
3600,6/7200,7/14400,8/18000,9/25200,6/36000,7/36001,8
TiempoInfo FUNCTION P$Tipo,D4
1,60/2,30/3,90/4,45
DesvInfo FUNCTION P$Tipo,D4
1,30/2,15/3,30/4,15
TiempoAutoServ FUNCTION P$Tipo,D4
1,1200/2,720/3,1500/4,480
Articulos FUNCTION P$Tipo,E4
1,V1/2,V2/3,V3/4,V4
AInfo FUNCTION P$Tipo,D4
1,400/2,250/3,600/4,350
APie FUNCTION P$Vino,D2
1,650/2,0
Cant VARIABLE (FN$Cant-5)+RN6@11
Tipo VARIABLE RN5,D4
.15,1/.55,2/.75,3/1,4
DesvInfo VARIABLE FN$DesvInfo
1 VARIABLE 12+RN11@13
2 VARIABLE 5+RN12@6
3 VARIABLE 15+RN13@22
4 VARIABLE 2+RN14@9
AutoServicio STORAGE 999999; Infinito
Info STORAGE 2
EnSuper TABLE M3,600,60,20
1 TABLE M1,1800,90,20
2 TABLE M1,1800,90,20
3 TABLE M1,1800,90,20
4 TABLE M1,1800,90,20
Articulos TABLE P$Productos,0,1,37
GenteSup TABLE S$AutoServicio,0,5,40
[Trenes]
GENERATE 360,60
ASSIGN Pasajeros,V$Cant
ASSIGN Vino,2;Vino=2, el cliente vino en tren.
SPLIT P$Cajero,ParadaEst
TERMINATE
[Micros]
GENERATE 1200,,90,2
NuevoMicro SAVEVALUE 2+,1
ASSIGN Interno,X2
MARK 2
;SPLIT 1,EsperaEst
SEIZE ParadaEstSub
OtroSubeEst ALTER ParadaEst,Colectivo,P$Interno,Colectivo,0,NoHayEst
UNLINK ParadaEst,Sube,1,Colectivo,P$Interno,0
ADVANCE 4,1
TRANSFER ,OtroSubeEst
NoHayEst TEST L M2,300,AlSuper
ADVANCE 1
;CODIGO PARA CHEQUEAR 5 MINUTOS.
TRANSFER ,OtroSubeEst
AlSuper RELEASE ParaEstSub
ADVANCE 900,120
OtroBAjaSup UNLINK P$Colectivo,EntraSup,1,,,NoBajanSup
ADVANCE 4,1
TRANSFER ,OtroBajaSup
NoBajanSup ADVANCE 25,15
SEIZE ParadaSupSub
OtroSubSup ALTER ParadaSupSub,Colectivo,P$Interno,Colectivo,0,NoHaySup
UNLINK ParadaSupSub,SubeSup,1,Colectivo,P$Interno
ADVANCE 4,1
TRANSFER ,OtroSubSup
NoHaySup TEST L M2,300,ALaEst
ADVANCE 1
TRANSFER ,OtroSubSup
ALaEst RELEASE ParadaSupSub
ADVANCE 960,120
OtroBajaEst UNLINK P$Colectivo,EntrarEst,1,,,NoBajanEst
ADVANCE 4,1
TRANSFER ,OtroBajaEst
NoBajanEst ADVANCE 25,15
TRANSFER ,OtroSubEst
[OtroMicro]
GENERATE 1200,3000,2
TRANSFER NuevoMicro
[Clientes]
ParadaEst ASSIGN Colectivo,0
JOIN ParadaEst
QUEUE ParadaEst
LINK ParadaEst,FIFO
SubeEst REMOVE ParadaEst
DEPART ParadaEst
LINK P$Colectivo,FIFO
GENERATE FN$Media,FN$Poisson
ASSIGN Vino,1; Vino=1, el cliente vino caminando.
EntraSup ASSIGN Tipo,V$Tipo
TEST G AC1,43200,Fin
ENTER AutoServicio
TRANSFER FN$AInfo,AutoServicio
QUEUE Informes
ENTER Informes
DEPART Informes
ADVANCE FN$TiempoInfo,V$DesvInfo
LEAVE Informes
AutoServicio ADVANCE FN$TiempoAutoServ,240
ASSIGN Productos,FN$Articulos
SELECT MIN Caja,1,FN$Caja,,Q
ASSIGN Aux,P$Productos
QUEUE P$Caja
SEIZE P$Caja
DEPART P$Caja
OtroProd ADVANCE 4,2
LOOP Aux,OtroProd
TRANSFER .30,Efectivo
ADVANCE 45,10
TRANSFER .03,OKTarjeta
TRANSFER .15,Soluciona
LINK Errores,P$Caja
Efectivo ADVANCE 20,5
OKTarjeta TRANSFER ,Irse
Soluciona ADVANCE 60,20
Irse TABULATE Articulos
RELEASE P$Caja
LEAVE AutoServicio
TABULATE EnSuper
TRANSFER FN$APie,,Fin
ADVANCE 45,15
QUEUE ParadaSupSub
JOIN ParadaSupSub
LINK ParadaSupSub
SubeSup REMOVE ParadaSupSub
DEPART ParadaSupSub
LINK P$Colectivo,FIFO
EntrarEst TABULATE P$Tipo
Fin TERMINATE
IrseSinComprar ASSIGN Productos,0
TRANSFER Irse
[Supervisor] ; << que error hay en la simulación del supervisor?
GENERATE ,,,,1
Ver TEST G CH$Errores,0
ADVANCE 30,10
ADVANCE 40,20
UNLINK ERRORES,IrseSinComprar,1
TRANSFER ,Ver
[Control] ; << el control esta mal... por que?
GENERATE 120
TABULATE GenteSup
TERMINATE
==== Punto II ====
No, debido a que es una indicación de que el modelo difiere del sistema en estudio.
==== Punto III ====
Usando el bloque SCAN.
SCAN MAX IMPRE,VELOCIDAD,,PRECIO,PrecioMasRapida
Donde PrecioMasRapida es un parámetro de la transacción que ejecuta el SCAN.
===== Discusión =====
Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.