MODELOS Y SIMULACIÓN TAREA 1
ANNI ALEJANDRA PIRAGAUTA URREA ANDRÉS FELIPE CAJAMARCA ROJAS JUAN FELIPE ARANGO MANRIQUE
PROFESOR: LUIS GERARDO ASTAIZA
UNIVERSIDAD NACIONAL DE COLOMBIA BOGOTÁ D.C. 2016
A. Problemas Comunes para cada equipo de trabajo 1. Nombr Nombre e entid entidade ades, s, atribu atributos tos,, activi actividad dades, es, evento eventos, s, y varia variable bles s de estado estado para para los siguientes sistemas:
(a) Biblioteca Biblioteca Universitaria: Universitaria: la biblioteca ofrece el servicio de préstamo de libros, se presta si el estudiante está a paz y salvo, y si la unidad está disponible; cuando se presta un libro se toma el tiempo de préstamo y se asigna un plazo de devolución. Entidades: - Alumno: número de préstamos, fecha de préstamo, fecha de devolución, estado de paz y salvo. - Bibliotecario: disponibilidad. disponibilidad.
biblioteca. Actividades: Atender usuario y brindarle un buen servicio en su paso por la biblioteca. Eventos: inicio del servicio, préstamo de libro, devolución de libro, terminación del servicio.
horari rio, o, frec frecue uenc ncia ia de lleg llegad ada a de alum alumno no,, cant cantid idad ad de libr libros os Vari Variab able les s de estad estado: o: hora disponibles.
(b) Banco: Banco: un usuari usuario o ingres ingresa a a realiz realizar ar difere diferente ntes s tipos tipos de transa transacci cción ón,, su atenci atención ón depende de su estado de afiliación, la consulta que el usuario vaya a realizar y/o por su edad como una prioridad. Entidades: - Cajero: disponibilidad. - Asesor Comercial : disponibilidad. - Usuario: tipo de transacción, edad, estado de afiliación. Actividades: Atender usuario.
llegada a de clien cliente, te, salida salida del del clien cliente, te, inicio inicio del del servic servicio io,, espera espera del servic servicio, io, Eventos: llegad terminación del servicio. Variables de estado: horario, frecuencia de llegada, dinero disponible.
(c) Call center: el operador recibe llamadas frecuentes de usuarios, puede atender varias llam llamad adas as simu simult ltán ánea eame ment nte, e, y el usua usuari rio o pued puede e depe depend nder er de su tiem tiempo po lími límite te como como terminación de la llamada, y podrá ser atendido más prioritariamente según su estado de afiliación. Entidades: - Solicitud: tipo de solicitud, disponibilidad. - Operador : disponibilidad, capacidad simultánea. - Usuario: tiempo límite, tiempo de espera, estado de afiliación.
Actividades: Atender llamada. Eventos: recibir llamada, terminar llamada, transferir llamada, iniciar solicitud, esperar solicitud, terminar solicitud.. Variables de estado: horario, frecuencia de llamada, solicitudes recibidas, solicitudes atendidas..
(d) Banco de sangre de Hospital: el donante podrá donar sangre si el enfermero está disponible para atenderlo, si pasa los controles mínimos que se exigen y puede que exista limitantes del tipo de sangre. Entidades: - Donante: tipo de sangre. - Enfermero: disponibilidad. Actividades: atender donante, estudio del donante, extracción de sangre. Eventos: llegada donante, transferir donante, salida del donante. Variables de estado: horario, frecuencia de llegada, cantidad de reservas de cada tipo de sangre.
(e) Taller: los automóviles son llevados al taller a realizar reparaciones y mantenimiento puede depender de la capacidad del taller y capacidad del personal para poder ser atendido. Entidades: - Mecánico: disponibilidad. - Automovil : tipo de reparación, tipo de repuestos. - Taller: disponibilidad. Actividades: diagnóstico, reparación, preparación. Eventos: recepción del automóvil, entrega del automóvil, inicio del servicio, terminación del servicio. Variables de estado: horario, disponibilidad de repuestos, capacidad.
(f) Estación de bomberos: los bomberos reciben llamadas de emergencia, y según su gravedad se atenderán primero, se demora según la emergencia, ubicación y disponibilidad de los vehículos. Entidades: - Bombero: disponibilidad. - Emergencia: tipo de emergencia, prioridad, ubicación. - Vehículo: disponibilidad
Actividades: Atender emergencia, resolver la situación, ayudar a la comunidad. Eventos: recibir llamada de emergencia, terminar llamada de emergencia, servicio, terminación del servicio. . Variables de estado: frecuencia de llamadas de emergencia.
inicio del
(g) Aeropuerto: los pasajeros pueden realizar su chequeo, y según su equipaje demora más y tendrá prioridad según la clase de reserva. Entidades: - Pasajero: clase de reserva, cantidad de equipaje. - Atendedor: disponibilidad. Actividades: hacer chequeo, recibir equipaje. Eventos: llegada pasajero, salida del pasajero, inicio del servicio, fin del servicio. Variables de estado: horario de vuelo.
(e) Organización de Software: la organización recibe contratos de proyectos de software, toma requerimientos, proyecta plazos de entrega y según el tipo de desarrollo y prioridad la demora puede variar. Entidades: - Grupo de desarrollo: disponibilidad, habilidad. - Cliente: prioridad, requerimientos, tiempo límite. Actividades: Desarrollo de software, contratación, estudiar requerimientos. Eventos: Iniciar el desarrollo, terminar desarrollo, entrega de software. Variables de estado: frecuencia de contrato, capacidad de proyectos simultáneos.
2. Examinar la Cooperación de los tres equipos A, B y C que se muestra a continuación. Los tiempos de llegada y de procesos son los que se indican a continuación (tiempo en minutos).
Entidades: - Máquina: Tipo de pieza, tiempo de proceso, tiempo de fallo, ocupado. - Piezas: Prioridad, tiempo de llegada, tiempo de salida. Actividades: Procesar pieza, inactividad de máquina Eventos: Llegada de la pieza a la primera máquina, salida de la pieza de la primera máquina, llegada de la pieza a la segunda máquina, salida de la pieza de la segunda máquina, daño de la máquina, reparación de la máquina. Variables de estado: Disponibilidad máquina A, disponibilidad máquina B.
Diagramas de Flujo
Resultados en C En la simulación hecha con lenguaje de alto nivel se lograron los siguientes resultados:
En estos resultados se aprecia que la utilización de la máquina A y B tienen una utilización baja, posiblemente a causa de los daños que surgen y de su tiempo de reparación tan elevado. Así mismo, el número promedio de piezas en la cola de la máquina A es muy bajo, debido a su taza de llegada tan grande, mientras que en la cola de la máquina B sí alcanza a haber al menos una pieza en espera durante la gran parte de la simulación.
Run 1
Run 2
Average of 2 runs
Utilization A
71%
59%
65%
Utilization B
60%
66%
63%
Utilization C
67%
61%
64%
B. Problemas asignados individualmente. 1.6 Un sistema de colas con cuatro canales en serie funciona con las características siguientes: ʎ = 0.04 • Llegadas de Poisson, • Tasas de servicio µ1= 0.05, µ2 = 0.06, µ3 = 0.05 y µ4= 0.07 todas con distribución exponencial • Longitud de las colas NQ1 = 100, NQ2= 10, NQ3 = 20 y NQ4 = 30 • Solo el 60% entran en la instalación 2. Las otras van con igual probabilidad a las instalaciones 3 ó 4
Analice este sistema durante un periodo de 30 días de tiempo simulado, Qué ocurriría si sólo el 20% de las unidades entrarán al canal 2 y las otras fueran con las mismas probabilidades a los canales 3 y 4?
Solución Entidades: - Instalación: tiempo de proceso. - Pieza: tiempo de llegada, tiempo de salida. Actividades: Procesar pieza.. Eventos: llegada de la pieza al sistema, salida de la pieza del sistema.
Variables de estado: Probabilidad de entrada a la instalación dos.
Diagramas de flujo. - Programa principal.
-
Llegada
-
Salida de una cola
Resultados -
Resultados del primer análisis, en el caso en el que solo el 60% entra a la instalación 2 a partir de la instalación 1.
Anylogic
Lenguaje C
-
Resultados del primer análisis, en el caso en el que solo el 20% entra a la instalación 2 a partir de la instación 1.
Anylogic
Lenguaje C
Como se puede ver en el primer análisis al igual que en el segundo, los resultados obtenidos mediante el uso de AnyLogic y la programación en alto nivel (Lenguaje C) son muy similares. En el primer análisis donde en la instalación 2 solo entraba el 60%, se obtuvo una mayor utilización del servicio 3 (instalación 3) en comparación al análisis 2. Mientras que en la instalación 4 no se evidencia mayor diferencia. En cambio en la instalación 2 en el primer análisis el uso del servicio 2 es mucho más alto que en en el primer análisis.
1.8 Una facilidad de servicio consiste de dos servidores en serie, cada uno con su propia fila. Un cliente terminando servicio en el servidor 1 procede al servidor dos, mientras que un cliente terminando el servicio en el servidor 2 deja la instalación. Suponga que los clientes llegan al servicio 1 con distribución uniforme entre 1 y 2 minutos y con probabilidad 0.3 es un cliente tipo A. Este tipo de cliente tiene prioridad sobre el cliente tipo B en la cola del servidor 1. El tiempo de servicio en el servidor 1 es exponencial con una media de 1 min. y en el servidor 2 es de 0.8 minutos. El tiempo de desplazamiento entre la salida del servidor 1 y la llegada a la cola del servidor 2 es uniforme entre 0.5 y 2 minutos. Simule este sistema por 15 horas y estime la demora esperada y el número promedio de clientes en cada cola y la utilización de cada servidor
Solución Entidades: - Servidor: tiempo de proceso, tiempo de fallo, disponibilidad. - Cliente: Prioridad, tiempo de llegada, tiempo de salida. Actividades: Prestar servicio a cliente, cambiar de servidor. Eventos: llegada de cliente al primer servidor, salida del cliente del primer servidor, llegada del cliente al segundo servidor, salida del cliente del segundo servidor. Variables de estado: número de clientes en cada cola.
Diagrama de Flujo
Resultados de simulación en código de alto nivel: Después de realizar la simulación implementada en lenguaje C, midiendo la demora promedio en cada cola, el número de clientes promedio en cada cola, la utilización de cada servidor y la cantidad de clientes procesados en el tiempo de la simulación. Se obtuvieron los siguientes resultados:
Es posible ver que durante el tiempo de ejecución, el cual fue de 900 minutos (15 horas), 598 clientes pasaron por el sistema. En el servidor 1, se presentó la mayor demora, y se refleja en que tuvo un tiempo de utilización equivalente al 65% del total de la ejecución, incrementando los valores de clientes promedio en su cola y sus respectivas demoras, pero siendo ágil de todas formas, pues en promedio hubo 2 clientes en la cola. El servidor 2, tuvo una utilización de del 52% y se explica por el cuello de botella que representa el servidor 1.
Resultados de la simulación utilizando AnyLogic Utilizando el software de simulación AnyLogic se obtuvieron unos resultados similares, durante los 900 minutos de la simulación, 599 clientes entraron y salieron del sistema,utilizando el servidor 1 por 647.078 minutos, correspondientes a un 71% del total de la simulación, mientras que el servidor 2 tuvo una utilización de 453.727 minutos equivalentes al 50% del tiempo total de ejecución. También se puede evidenciar que la cola 1 era la que en promedio tenía más usuarios, pues en sus picos más altos, alcanzó a tener más de 4 usuarios, mientras que la segunda cola se mantenía con un usuario en promedio alcanzando ocasionalmente 2 clientes.
1.9. Cada día, un hombre sale de su casa, A y se va a trabajar a G. Como se indica en el diagrama que sigue, los caminos que puede tomar son 1-3-7. 1-4-8, 2-5-8. 2-6-9. El valor de, p, para cada camino es la probabilidad de que lo tome. La distribución del tiempo de cada recorrido es uniforme, con parámetros dados a continuación: Camino 1 18-22 min Camino 2 14-16 min. Camino 3 5-6 min Camino 4 6-8 min. Camino 5 5-7 min Camino 6 8-12 min. Camino 7 4-6 min Camino 8 5-6 min. Camino 9 6-9 min. Simular 500 recorridos y evalué el tiempo promedio de desplazamiento. ¿Cómo se compara este promedio con el tiempo promedio esperado del recorrido?
a) Estado del Sistema b) Entidades y sus atributos o Entidades: Persona o Atributos: comienzo, salida. c) Eventos, Actividades y Procesos o Eventos: Llegada del cliente al sistema, Salida del cliente del sistema. o Actividades: Salir hacia el trabajo. o Procesos: Escoger un camino. d) Contadores estadísticos.
o tiempoPromedio137, tiempoPromedio148, tiempoPromedio258,
tiempoPromedio269.
e) Diagrama de flujo del programa principal y de cada rutina que conforma el modelo.
f) Desarrollar el simulador en lenguaje de alto nivel (c, java) public class Person{ double comienzo; double salida; public Person() {
} public Person(double comienzo, double salida) { this .comienzo this .salida
= comienzo;
= salida;
} @Override public String toString() { return "Tiempo de inicio = "
= "
+ salida
+ comienzo
+ "\nTiempo Finalización
+ "\nTiempo Total = "+(salida-comienzo);
} } ---------------------------------------------------------------------------------------import java.io.*; import java.util.*; public class Main { public static Person p; public static int numRecorridos , camino137 , camino148 , camino258 , camino269 ;
public static double simTime, tiempoRecorrido , tiempoPromedio137 , tiempoPromedio148 , tiempoPromedio258 ,tiempoPromedio269 , tiempototal137 , tiempototal148 , tiempototal258 , tiempototal269 ;
public static boolean c1, c2, c3, c4, c5, c6 , c7 , c8, c9; public static double uniform(double min, double max) {
Random r
= new Random();
return min
+ ( max
- min) * r.nextDouble();
} public static void initialize(){ p
= new Person();
simTime = 0.0; camino137 = 0; camino148 = 0; camino258 = 0; camino269 = 0; c1
= false;
c2
= false;
c3
= false;
c4
= false;
c5
= false;
c6
= false;
c7
= false;
c8
= false;
c9
= false;
} public static void arrive(){ p.comienzo
= simTime;
if(Math. random() * 100 < 50){ c1
= true;
simTime
+= uniform(18, 22);
if(Math.random() * 100 < 80){ c3
= true ;
simTime c7
+= uniform (5, 6);
= true ;
simTime
+= uniform (4, 6);
depart();
}else { c4
= true ;
simTime c8
+= uniform (6, 8);
= true ;
simTime
+= uniform (5, 6);
depart();
} }else{ c2
= true;
simTime
+= uniform(14, 16);
if(Math.random() * 100 < 60){ c5
= true ;
simTime c8
+= uniform (5, 7);
= true ;
simTime
+= uniform (5, 6);
depart();
}else { c6
= true ;
simTime
+= uniform (8, 12);
c9
= true ;
simTime
+= uniform (6, 9);
depart();
} } } public static void depart(){ tiempoRecorrido p.salida
= simTime ;
tiempoRecorrido
if(c1
= simTime;
&& c3
= p.salida
- p.comienzo;
&& c7 ){
camino137 += 1; tiempototal137
+= tiempoRecorrido ;
tiempoPromedio137
= tiempototal137
/ camino137 ;
} if(c1
&& c4
&& c8){
camino148 += 1; tiempototal148
+= tiempoRecorrido ;
tiempoPromedio148
= tiempototal148
/ camino148 ;
} if(c2
&& c5
&& c8){
camino258 += 1; tiempototal258
+= tiempoRecorrido ;
tiempoPromedio258
= tiempototal258
/ camino258 ;
} if(c2
&& c6 && c9){ camino269 += 1; tiempototal269
+= tiempoRecorrido ;
tiempoPromedio269
= tiempototal269
/ camino269 ;
} c1
= false;
c2
= false;
c3
= false;
c4
= false;
c5
= false;
c6
= false;
c7
= false;
c8
= false;
c9
= false;
} public static void report() {
System. out.println("Utilización de camino 137: \t" +camino137 ); System. out.println("Tiempo promedio camino 137: \t"+tiempoPromedio137 ); System. out.println("Utilización de camino 148: \t" +camino148); System. out.println("Tiempo promedio camino 148: \t"+tiempoPromedio148 ); System. out.println("Utilización de camino 258: \t" +camino258);
System.out.println("Tiempo promedio camino 258:
\t"+tiempoPromedio258 ); System. out.println("Utilización de camino 269: \t" +camino269); System. out.println("Tiempo promedio camino 269: \t"+tiempoPromedio269 ); } public static void main(String argv[]) throws IOException{
System. out.println("Número de recorridos:" ); BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System. i n));
numRecorridos = Integer. parseInt(bufferRead.readLine()); initialize ();
for
( int i = 0; i
< numRecorridos ; i++) {
arrive();
} report ();
} }
Salida
g) ANYLOGIC (enfoque por procesos).
h) Análisis de resultados. Camino
Tiempo Pesimista Esperado
Tiempo Optimista Esperado
Tiempo Promedio Esperado
Tiempo Promedio Simulación (Anylogic)
Cantidad de veces que tomó el camino
137
27
34
30.50
30.48
202
148
29
36
32.50
32.32
38
258
24
29
26.50
26.61
146
259
28
37
32.50
32.70
107
Comparando los resultados obtenidos en la simulación con los valores esperados, se puede establecer una gran similitud entre los valores obtenidos, además se puede apreciar que, debido a la distribución probabilística de cada camino, el camino que se toma con más frecuencia es el 137, y el de menor frecuencia el camino 148.