Examen Parcial - 75.26. Simulación - 30/11/2005 [Foros-FIUBA::Wiki]
 

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á.
materias/75/26/parcial_1_20051130_1.txt · Última modificación: 2014/02/08 22:20 por loonatic
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki