Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelos y Simulacion PDF
Modelos y Simulacion PDF
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. Nombre entidades, atributos, actividades, eventos, y variables de estado para los
siguientes sistemas:
(a) Biblioteca 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.
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.
Variables de estado: horario, frecuencia de llegada de alumno, cantidad de libros
disponibles.
(b) Banco: un usuario ingresa a realizar diferentes tipos de transacción, su atenció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.
Eventos: llegada de cliente, salida del cliente, inicio del servicio, espera del servicio,
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
llamadas simultáneamente, y el usuario puede depender de su tiempo límite 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, inicio del
servicio, terminación del servicio.
.
Variables de estado: frecuencia de llamadas de emergencia.
(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
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 137. 148, 258. 269. 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 1822 min
Camino 2 1416 min.
Camino 3 56 min
Camino 4 68 min.
Camino 5 57 min
Camino 6 812 min.
Camino 7 46 min
Camino 8 56 min.
Camino 9 69 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 =
comienzo;
this
.
salida
= salida
;
}
@Override
public
String toString() {
return
"Tiempo de inicio = " +
comienzo +"\nTiempo Finalización
= "
+
salida
+
"\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 random
(Math. () * 100 < 50){
c1
=
true
;
simTime uniform
+= (18, 22);
if random
(Math. () * 100 < 80){
c3
=
true
;
simTime uniform
+= (5, 6);
c7
=
true
;
simTime uniform
+= (4, 6);
depart
();
}
else
{
c4
=
true
;
simTime uniform
+= (6, 8);
c8
=
true
;
simTime uniform
+= (5, 6);
depart
();
}
}
else
{
c2
=
true
;
simTime uniform
+= (14, 16);
if random
(Math. () * 100 < 60){
c5
=
true
;
simTime uniform
+= (5, 7);
c8
=
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 simTime
= ;
p
.
salida simTime
= ;
tiempoRecorrido p
= .
salida p
.
comienzo
;
ifc1
( c3
&& c7
&& ){
camino137
+= 1;
tiempototal137
+= tiempoRecorrido
;
tiempoPromedio137 tiempototal137
= camino137
/ ;
}
ifc1
( c4
&& c8
&& ){
camino148
+= 1;
tiempototal148
+= tiempoRecorrido
;
tiempoPromedio148 tiempototal148
= camino148
/ ;
}
ifc2
( c5
&& c8
&& ){
camino258
+= 1;
tiempototal258
+= tiempoRecorrido
;
tiempoPromedio258 tiempototal258
= camino258
/ ;
}
ifc2
( 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() {
out
System. .println(
"Utilización de camino 137: \t"camino137
+ );
out
System. .println(
"Tiempo promedio camino 137:
\t"tiempoPromedio137
+ );
out
System. .println(
"Utilización de camino 148: \t"camino148
+ );
out
System. .println(
"Tiempo promedio camino 148:
\t"tiempoPromedio148
+ );
out
System. .println(
"Utilización de camino 258: \t"camino258
+ );
out
System. .println(
"Tiempo promedio camino 258:
\t"tiempoPromedio258
+ );
out
System. .println(
"Utilización de camino 269: \t" camino269
+ );
out
System. .println(
"Tiempo promedio camino 269:
\t"tiempoPromedio269
+ );
}
public
static
void
main(String
argv
[])
throws IOException{
out
System. .println(
"Número de recorridos:");
BufferedReader bufferRead
=
new BufferedReader(
new
InputStreamReader(System.i
n
));
numRecorridos parseInt
= Integer. (
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 Tiempo Tiempo Tiempo Cantidad de
Pesimista Optimista Promedio Promedio veces que
Esperado Esperado Esperado Simulación tomó el
(Anylogic) camino