Documente Academic
Documente Profesional
Documente Cultură
DE COLAS (ARENA)
El Banco Nacional de Occidente piensa abrir una ventanilla de servicio en automóvil para
servicio a los clientes. La gerencia estima que los clientes llegarán a una tasa de 15 por hora.
El cajero que estará en la ventanilla puede atender clientes a una tasa de uno cada tres
1 minutos.
Suponiendo que las llegadas son de Poisson y que el servicio es exponencial, encuentre:
1. La utilización del cajero.
2. El número promedio en cola.
3. Número promedio en el sistema.
4. Tiempo promedio de espera en cola.
5. Tiempo promedio de espera en el sistema (incluyendo el servicio).
Por la disponibilidad limitada de espacio y el deseo de proporcionar un nivel de servicio
aceptable, el gerente del banco quisiera asegurar, con un 95% de certeza que los clientes no
tengan que esperar y sean atendidos inmediatamente. Para ello tiene dos opciones: conseguir
que el empleado de la ventanilla trabaje más rápido, o poner más empleados conservando la
misma tasa de servicio. Evaluar las dos posibilidades.
Sin WARM-UP
Longitud de la
Wq % error W %error L %error
simulación (horas)
10 6.102 (insuf) 9.26 (insuf) 2.14 (insuf)
100 10.333 30.8 13.518 24.4 3.32 28.7
500 8.603 15.6 11.591 12.0 2.88 (corr)
1000 9.026 13.3 12.033 10.2 3.01 11.4
5000 8.678 6.06 11.667 4.6 2.91 4.8
10000 8.641 4.49 11.642 3.45 2.90 3.4
50000 8.888 2.23 11.889 1.70 2.96 1.75
A la vista de estos resultados, parece claro que la simulación debe tener una longitud mínima
de más o menos 5000 horas, ya que se tiene un error en torno al 5%, Por otro lado, este error
va disminuyendo según se va aumentando la longitud de la simulación. El warm-up se utiliza
para evitar el período transitorio que se tiene al empezar con todo el sistema vacío. Sin
embargo, en este caso no parece necesario, ya que se obtienen resultados similares con y sin
warm-up.
En la columna Cell se tienen las probabilidades P0, P1, P2, ... El caso que hemos simulado, es
el de 1 único servidor, con lo que P0 coincide con la probabilidad de no esperar Pnw que
estamos buscando; se observa que es el 24,8% cuando se ha pedido que no sea inferior al
95%.
Podría incluso incluirse en la animación del modelo, un histograma en el que se muestre esta
información. La expresión NR(Servidor)>=1 comprueba en cada instante si el número de
unidades utilizadas del recurso servidor es 0 (con lo que no se espera) o es 1 (el servidor está
ocupado, y hay espera); en el histograma se muestra el porcentaje de veces que NR()=0 (no se
espera), y NR()>=1 (sí se espera).
La primera alternativa para aumentar el porcentaje de clientes que no tienen que esperar,
consiste en hacer que el servidor trabaje más deprisa. Actualmente tarda 3 minutos como
media en atender un cliente. Si hacemos que tarde solo 1 minuto:
Para simular varios servidores, tenemos dos posibilidades: las dos son perfectamente válidas,
simplemente se diferencian en la animación. Si la animación es importante, y queremos
diferenciar claramente cada uno de los recursos, de forma que se pueda ver cuando trabaja y
cuando no cada uno de ellos, debemos definir los servidores como integrantes de lo que se
llama un Conjunto de Recursos. Para ello utilizaremos la opción RESOURCE SET (Conjunto
de Recursos), en la definición del Recurso dentro de la ventana de definición del Proceso (en
el botón Add...):
Pulsando en el icono Set en la plantilla “Basic Process”, aparecerá el Set creado, y que hemos
llamado “servidores”. Pulsando en Members podemos introducir los tres nombres: Servidor
1, Servidor 2 y Servidor 3.
Para que la entidad tenga el dibujo que queremos, habrá que entrar en Edit... => Entity
Pictures ...
SIMULACIÓN DE PROCESOS DE
FABRICACIÓN CON ARENA
Se trata de simular el proceso de fabricación de un producto que
está compuesto por 3 elementos: 2 tapas (la superior y la inferior,
y el interior).
1
Solución
Se trata de simular una línea de fabricación y montaje en la intervienen 3 tipos de piezas
o entidades: por un lado tenemos las tapas (superior e inferior), por otro lado está el
elemento interno y al final tenemos el producto ya ensamblado. Utilizaremos un
Atributo que denominaremos TIPO y que tendrá 3 posibles valores: 1 (tapa), 2 (interior)
y 3 (producto final).
Para construir el modelo, vemos que por un lado llegan las tapas y por otro el cuerpo
interior, por lo que partiremos de 2 bloques create, uno para cada tipo de piezas.
Para las tapas, después del create, utilizaremos un bloque assign para definir el atributo
TIPO con el valor 1 (tapas). Posteriormente, definimos el bloque process denominado
PINTURA, en el que se simula el proceso de pintado de las tapas; se utilizará un recurso
que se llamará PINTOR. Para simular el hecho de que el 5% de las piezas salen
defectuosas del proceso de pintado, y por lo tanto hay que volver a pintarlas,
utilizaremos un bloque decide y uniremos la salida false con la entrada del proceso de
pintura.
2
Como las tapas superior e inferior llegan a través del mismo proceso, debemos
diferenciarlas. Para ello, utilizaremos un segundo atributo que denominaremos clase, y
que tendrá 2 posibles valores (1000 y 2000, según sean tapas superiores o inferiores).
Con la función DISCRETE se pueden asignar estos valores de forma que el 50% sean de
un tipo y el resto inferiores. Ahora, con otro bloque decide, separamos unas tapas de
otras, y después, con dos bloques assign, asignamos un dibujo distinto a cada tipo de
tapa.
3
El elemento interior del producto que estamos fabricando, llega al proceso utilizando un
segundo bloque create. En primer lugar se asigna el valor 2 al atributo TIPO, y
utilizando el mismo bloque assign, aprovechamos para cambiar el dibujo de la entidad a
una caja (picture.box), ya que nos dicen que llega al proceso metido en cajas de 3
unidades. Se debe simular el proceso de desempaquetado e inspección, lo cual hacemos
con un nuevo bloque process que denominamos DESEMPAQUETADO; se utiliza un
recurso llamado DESEMPAQUETADORA. El hecho de sacar 3 unidades de cada caja,
lo podemos simular utilizando un bloque Separate, que en este caso se usa como
reproductor de entidades en lugar de separador de grupos o lotes previamente
confeccionados. Se generan 2 réplicas que, junto con la entidad original, suman las 3
necesarias.
4
5
Ahora, mediante un bloque assign, se cambia de nuevo el dibujo de la entidad para que
sea de otro color diferente a las tapas. Como en el proceso de desempaquetado se
desechan el 10% por ser defectuosas, utilizaremos un bloque decide que mande el 10%
de las entidades a un bloque dispose que representa la chatarra. El resto de las piezas ya
están listas para ser ensambladas con las tapas y formar así el producto final.
El bloque Match nos permite hacer las agrupaciones adecuadas, ya que los diferentes
elementos van llegando a él a través de sus 3 entradas y se van colocando en las 3 colas
que tiene. En el instante en el que haya 1 unidad en cada una de las colas, el bloque deja
pasar 1 unidad de cada una de las 3 colas al bloque siguiente. De esta manera, se puede
ordenar la salida de entidades de forma que vayan saliendo de 3 en 3, y con la
particularidad de que en cada grupo de 3, hay 1 unidad de cada tipo. Esas 3 entidades
entran ahora en un bloque Batch que permite agrupar de forma temporal o definitiva las
entidades, por lo que de este bloque sale una única entidad que representa al producto
final. El siguiente bloque Assign sirve para cambiar de nuevo el dibujo de forma que
represente el producto final, además de asignar el valor 3 al atributo TIPO (producto
final). El tiempo y recursos necesarios para todo este proceso de ensamblado, lo
6
simulamos con un bloque de tipo Process que denominamos ENSAMBLAJE. En el
proceso se utilizará una unidad del recurso Ensambladora.
El resultado final del proceso se manda a un bloque de tipo Dispose que denominamos
ALMACEN. Sin embargo, antes de entrar en el Dispose, debemos registrar el tiempo de
fabricación para poder calcular el tiempo medio de fabricación de una unidad del
producto. Por un lado utilizaremos un bloque de tipo Record, en el que se calcula el
tiempo transcurrido desde la creación de la entidad hasta el instante actual (entrada en el
almacén). Para hacer el cálculo, es necesario conocer el instante exacto en el que la
entidad fue creada; esto es posible utilizando un atributo de llamaremos TENTRADA,
al que se asigna como valor el instante en el que la entidad fue creada (que es el valor
7
actual del reloj de la simulación o TNOW). Esta asignación se hará justo después de
crear las entidades, en los bloques Assign 1 y Assign 5. En el momento en el que la
entidad pasa por el bloque Record, se hace el cálculo del tiempo transcurrido desde su
creación. El valor medio de este tiempo, calculado para todas las unidades terminadas,
saldrá dentro del fichero de resultados con el nombre de TmedioFabricacion,
8
Para poder observar los resultados en el mismo modelo, vamos a colocar varias
pantallas o displays, en los que se pueda ver durante la ejecución de la simulación,
algunos valores interesantes:
Estos tres iconos de la barra de herramientas son los que se utilizan para esta tarea. El
primero es para incluir un reloj; el segundo un calendario y el tercero un display.
9
NQ(Match 1.Queue1) + NQ(Match 1.Queue2) + NQ(Match 1.Queue3)
+ NQ(PINTURA.Queue) + NQ(ENSAMBLAJE.Queue)*3 +
NQ(DESEMPAQUETADO.Queue) + NQ(Batch 1.Queue)
En la figura siguiente se muestra el modelo completo, una vez añadidos los elementos
citados.
10
Después de ejecutar la simulación, en las condiciones que se muestran en la figura, se
pueden ver los resultados en las diferentes displays que se han incluido en el modelo.
11
EJEMPLO 3
SIMULACIÓN DE DISTINTOS
TRANSPORTES CON ARENA
Las piezas llegan al primer proceso de una en una, con una media
de 10 unidades/hora (Poisson); la mitad son de color ROJO y la
otra mitad AZULES. En el primer proceso se dispone de 2
máquinas iguales que realizar el trabajo tardando un tiempo que
se distribuye según una triangular de tiempos mínimo, modal y
máximo, de 5, 8 y 10 minutos respectivamente. Cuando finaliza
este primer trabajo, se mandan las piezas al departamento 2
utilizando un transporte directo (“ROUTE”) que tarda 12 minutos.
1
SOLUCIÓN
Comenzaremos por simular el proceso de creación de las piezas, utilizando un bloque
Create. Posteriormente colocaremos un Assign para asignar a cada entidad un atributo
que llamaremos Color, y que tendrá el valor 1 si es de color rojo, y 2 si es de color azul.
Ahora, utilizando un bloque decide podemos asignar el dibujo Picture.Red Ball a las
piezas rojas (color=1), o Picture.Blue Ball a las azules (color=2).
0 True
0
0 False
Assign 3
As s ig n 2
2
Route 1 S tati on 2 Di s pos e 1
SCANNER
ESTACI ÓN 1
SCANNER
00:00:00
ESTACI ÓN 2
3
La agrupación en cajas se simula con el bloque Batch. Eligiendo By attribute en la
opción Rule, se pueden agrupar separando las de color rojo de las de color azul.
Introducimos un bloque Station para marcar el punto de salida del departamento 2.
Utilizaremos un bloque Assign para cambiar el dibujo de las entidades a Picture.Box
Station 3 Exit 1 D is p o s e 1
4
SCANNER
ESTACIÓN 1
SCANNER
00 :0 0:0 0
ESTACIÓN 2
ESTACIÓN 4
ESTACIÓN 3
En el departamento 3, se sacan las piezas de las cajas, lo que se simula con un bloque
Separate que deshaga las agrupaciones hechas antes de la cinta transportadora. Las
piezas pasan a la cola del proceso 3 que va cogiendo una por una y haciendo una
operación cuyo tiempo se distribuye según una uniforme entre 4 y 8 minutos. El
producto final se mete de nuevo en cajas pero ahora de capacidad 10 (del mismo color).
Por último colocamos un bloque Station para designar el punto de salida del
departamento 3, y un bloque Assign para cambiar de nuevo el dibujo a Picture.Packet
0
Exit 1 S eparate 1 P ro ce ss 2
B atc h 2 St ati on 5 A s s i gn 5
5
Para simular el transporte hasta los almacenes, utilizamos un transporte por lotes
(Transporter), que requiere de 3 bloques: un bloque Request, para solicitar un
transporte, un bloque Transport que mueve el transporte hacia la estación de destino, y
un bloque Free, que libera el transporte para que pueda ser utilizado por otras entidades.
Antes de liberar el transporte, lo devolvemos al punto de partida utilizando un bloque
Move. Para simular el tiempo de carga del transporte, utilizaremos un bloque Process,
en el que un recurso Resource 3, cargará el transporte en un tiempo constante de 15
minutos.
6
SCANNER
ESTACIÓN 7
ESTACIÓN 1
SCANNER
00:00:00
ESTACIÓN 2
SCANNER
ESTACIÓN 6