Está en la página 1de 30

SIMULACIN DE PROBLEMAS

DE COLAS (ARENA)

El Banco Nacional de Occidente piensa abrir una ventanilla de servicio en automvil para
servicio a los clientes. La gerencia estima que los clientes llegarn a una tasa de 15 por hora.
El cajero que estar en la ventanilla puede atender clientes a una tasa de uno cada tres
minutos.
Suponiendo que las llegadas son de Poisson y que el servicio es exponencial, encuentre:
1. La utilizacin del cajero.
2. El nmero promedio en cola.
3. Nmero 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 ms rpido, o poner ms empleados conservando la
misma tasa de servicio. Evaluar las dos posibilidades.

Simulacin de Problemas de Colas con Arena - 1 .

Para calcular la longitud mnima de la


simulacin, empezaremos con 1000 minutos y
nos fijaremos en los dos primeros resultados
del fichero de resultados Ejemplo-1.out: Banco.TotalTimePerEntity (Tiempo total de
permanencia en el sistema W) y Banco.WaitTimePerEntity (Tiempo de espera Wq).

Simulacin de Problemas de Colas con Arena - 2 .

El valor que se observa en la columna Half With, nos indica el rango dentro del cual est el
valor buscado con un 95% de probabilidad, es decir, se trata de una medida del error que se
est cometiendo en la simulacin. En este primer caso, se puede ver que aparece la expresin
(Insuf), que indica que la longitud de la simulacin no es lo suficientemente grande para hacer
el anlisis estadstico que proporciona el valor. Por tanto, parece claro que debemos hacer
simulaciones ms largas, al menos hasta que en la columna Half With se obtenga un valor que
sea alrededor del 5% del valor nominal. En la siguiente tabla, se muestran los resultados de
varias simulaciones de distintas longitudes, con el objetivo de calcular la longitud mnima de
la simulacin.

Sin WARM-UP
Longitud de la
simulacin (horas)
10
100
500
1000
5000
10000
50000

Wq

% error

%error

%error

6.102
10.333
8.603
9.026
8.678
8.641
8.888

(insuf)
30.8
15.6
13.3
6.06
4.49
2.23

9.26
13.518
11.591
12.033
11.667
11.642
11.889

(insuf)
24.4
12.0
10.2
4.6
3.45
1.70

2.14
3.32
2.88
3.01
2.91
2.90
2.96

(insuf)
28.7
(corr)
11.4
4.8
3.4
1.75

%error

3.28
3.25
2.90
3.04
2.91
2.90
2.96

(insuf)
30.0
(corr)
10.0
5
3.4
1.7

Con WARM-UP de 10 horas


Longitud de la
Wq % error
W
%error
simulacin (horas)
10
8.85
(insuf) 11.90 (insuf)
100
10.074 37.0
13.20
29.0
500
8.685 (corr) 11.66 (corr)
1000
9.120
12.0
12.133 9.10
5000
8.676 (corr) 11.67 (corr)
10000
8.653
4.39
11.653 3.36
50000
8.888
2.27
11.889 1.74

A la vista de estos resultados, parece claro que la simulacin debe tener una longitud mnima
de ms o menos 5000 horas, ya que se tiene un error en torno al 5%, Por otro lado, este error
va disminuyendo segn se va aumentando la longitud de la simulacin. El warm-up se utiliza
para evitar el perodo transitorio que se tiene al empezar con todo el sistema vaco. Sin
embargo, en este caso no parece necesario, ya que se obtienen resultados similares con y sin
warm-up.
En la figura siguiente, se muestra el fichero model1.out en el que se recogen todos los
resultados de la simulacin.

Simulacin de Problemas de Colas con Arena - 3 .

De aqu se pueden obtener los resultados buscados:


1.- Factor de Utilizacin del servidor (f.u.) = SERVIDOR.Utilization = 0.75063
2.- Nmero medio en la cola (Lq) = Banco.Queue.NumberInQueue = 2.2462
3.- Nmero medio en el sistema (L) = ENTITY 1.WIP = 2.9968
4.- Tiempo medio en el sistema (W) = ENTITY 1.TotalTime = 11.991
5.- Tiempo medio de espera en cola (Wq) = Banco.Queue.WaitingTime = 8.9876

Simulacin de Problemas de Colas con Arena - 4 .

Aunque L se ha calculado como la cantidad de trabajo en proceso (Work In Process),


vamos a utilizar una variable definida por el usuario para que su clculo sea ms claro
(adems servir ms adelante para el clculo de las probabilidades).

Se selecciona el icono Variable en la plantilla Basic Process y se marca la casilla


Statistics para que aparezca el resultado en el fichero de salida

Simulacin de Problemas de Colas con Arena - 5 .

Para calcular las probabilidades de 0, 1, 2, ... (P0, P1, P2, ...) vamos a guardar la evolucin de
la variable L a lo largo del tiempo de simulacin, en el fichero prob.dat, que despus
analizaremos con el programa OUTPUT ANALIZER.

Al finalizar la simulacin, habr un fichero prob.dat.

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%.
Simulacin de Problemas de Colas con Arena - 6 .

Si, como en el caso que nos ocupa, no es necesario calcular todas las probabilidades, sino
solamente la probabilidad de no esperar, se puede hacer ms rpidamente utilizando el
apartado Categories que se encuentra tambin en Statistics.

Haciendo ahora la simulacin, obtenemos el resultado en el nuevo apartado Frequencies del


fichero .out

Podra incluso incluirse en la animacin del modelo, un histograma en el que se muestre esta
informacin. La expresin NR(Servidor)>=1 comprueba en cada instante si el nmero 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).

Simulacin de Problemas de Colas con Arena - 7 .

Si simulamos, obtendremos una animacin similar a la que se muestra en la figura; el


histograma muestra que poco ms del 20% no esperan:

La primera alternativa para aumentar el porcentaje de clientes que no tienen que esperar,
consiste en hacer que el servidor trabaje ms deprisa. Actualmente tarda 3 minutos como
media en atender un cliente. Si hacemos que tarde solo 1 minuto:

Se comprueba en el histograma, que a esta velocidad, no


esperan el 75% de los clientes. Si queremos llegar hasta el
95%, deberemos hacer que trabaje todava ms rpido. Si
hacemos que el servidor tarde 0,16667 minutos como media
(10 segundos), es posible llegar al 95% buscado, sin
embargo, esto no parece fcilmente realizable puesto que
supone hacer las operaciones que normalmente llevan 3
minutos en solo 10 segundos.

Simulacin de Problemas de Colas con Arena - 8 .

La segunda alternativa era aumentar el nmero de servidores.


Para simular varios servidores, tenemos dos posibilidades: las dos son perfectamente vlidas,
simplemente se diferencian en la animacin. Si la animacin 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 opcin RESOURCE SET (Conjunto
de Recursos), en la definicin del Recurso dentro de la ventana de definicin del Proceso (en
el botn 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.
Si se selecciona el icono de Recursos en la plantilla Basic Process, se vern los tres
servidores que se han creado dentro del Set que hemos llamado Servidores.

En cuanto a la animacin, bajamos la representacin de la cola y colocamos los dibujos de los


tres servidores.

Simulacin de Problemas de Colas con Arena - 9 .

Los dibujos de los servidores se colocan pulsando en el icono de los recursos:

Para que la entidad tenga el dibujo que queremos, habr que entrar en Edit... => Entity
Pictures ...

Ahora podemos hacer la simulacin para


obtener las medidas de eficiencia del sistema y
las probabilidades (aplicando el Output Analizer
al fichero prob.dat que resulta de la simulacin).
Se comprueba como P0+P1+P2 (que es Pnw en
el caso de 3 servidores) ya es superior al 95%
buscado.

Simulacin de Problemas de Colas con Arena - 10 .

En el histograma habr que poner como expresin:


NR(Servidor 1)+NR(Servidor 2)+NR(Servidor 3)>=3

Simulando, se obtendr el siguiente resultado:

La segunda alternativa, ms sencilla y rpida cuando la animacin no es excesivamente


importante, consiste en indicar la existencia de tres servidores en la casilla correspondiente a
la capacidad (Capacity) del recurso. Esta casilla aparece cuando seleccionamos el elemento
Resource en la plantilla Basic Process

Ahora se puede hacer la simulacin obtenindose resultados prcticamente iguales al caso


anterior.
Simulacin de Problemas de Colas con Arena - 11 .

Simulacin de Problemas de Colas con Arena - 12 .

EJEMPLO 2
SIMULACIN DE PROCESOS DE
FABRICACIN CON ARENA
Se trata de simular el proceso de fabricacin de un producto que
est compuesto por 3 elementos: 2 tapas (la superior y la inferior,
y el interior).
Las tapas llegan a la lnea de fabricacin segn un proceso de
Poisson de media 5 tapas/hora. El 50% son tapas superiores y el
otro 50% inferiores. Una vez recibidas, es necesario pintarlas,
para lo que pasan de una en una; por un proceso de pintura cuya
duracin es independiente de la clase de tapa que se trate; se ha
comprobado que se distribuye segn una triangular de tiempo
mnimo 6, medio 9 y mximo 12 minutos. Hay un control de
calidad del proceso de pintura que separa las tapas correctamente
pintadas (el 95%) de las defectuosas, las cuales vuelven al
proceso de pintura de nuevo.
Por otra parte, el elemento interior del producto final, llega a la
lnea de fabricacin empaquetado en cajas de 3 unidades,
siguiendo una distribucin exponencial de media 64 minutos. El
proceso de desempaquetado lo realiza una mquina que tarda en
realizar el trabajo un tiempo que se distribuye segn una uniforme
entre 30 y 50 minutos. Adems, esta misma mquina separa las
unidades defectuosas (el 10%) y las enva a chatarra.
Posteriormente, se tiene una mquina que hace el ensamblaje de
una tapa superior, una inferior y un elemento interior para
constituir el producto final. El tiempo de ensamblado se
distribuye segn una normal de media 15 minutos y varianza 10
minutos.
Se trata de simular el proceso para calcular cuantas unidades del
producto final es posible fabricar en 1 mes (30 das) con jornadas
de 8 horas.

Solucin
Se trata de simular una lnea de fabricacin 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).
Por otro lado, cada uno de los
tres tipos de producto debe
pasar por una operacin cuyo
tiempo de proceso depender
del tipo de producto que sea.
Cuando haya que especificar
el tiempo de proceso de
cualquiera
de
estas
operaciones utilizaremos una
expression de tipo array que
denominaremos
TPROCESO(TIPO). Previamente definiremos la expresin Tproceso seleccionando el
icono correspondiente en la plantilla de la forma siguiente:
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, despus 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.

Como las tapas superior e inferior llegan a travs del mismo proceso, debemos
diferenciarlas. Para ello, utilizaremos un segundo atributo que denominaremos clase, y
que tendr 2 posibles valores (1000 y 2000, segn sean tapas superiores o inferiores).
Con la funcin 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 despus, con dos bloques assign, asignamos un dibujo distinto a cada tipo de
tapa.

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 inspeccin, 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 rplicas que, junto con la entidad original, suman las 3
necesarias.

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
estn listas para ser ensambladas con las tapas y formar as el producto final.

El proceso de ensamblado lo simularemos de la forma siguiente: se deben juntar 3


elementos, una tapa superior, una tapa inferior y un elemento interior para constituir una
unidad del producto final.

El bloque Match nos permite hacer las agrupaciones adecuadas, ya que los diferentes
elementos van llegando a l a travs 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, adems de asignar el valor 3 al atributo TIPO (producto
final). El tiempo y recursos necesarios para todo este proceso de ensamblado, lo

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
fabricacin para poder calcular el tiempo medio de fabricacin de una unidad del
producto. Por un lado utilizaremos un bloque de tipo Record, en el que se calcula el
tiempo transcurrido desde la creacin de la entidad hasta el instante actual (entrada en el
almacn). Para hacer el clculo, 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

actual del reloj de la simulacin o TNOW). Esta asignacin se har justo despus 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 clculo del tiempo transcurrido desde su
creacin. El valor medio de este tiempo, calculado para todas las unidades terminadas,
saldr dentro del fichero de resultados con el nombre de TmedioFabricacion,

El bloque Assign 8 que aparece antes del


ltimo bloque Dispose, se utiliza para
calcular de forma manual el tiempo
medio de fabricacin, con el objeto de
presentar en un display dentro del
modelo lgico este resultado. Se calcula
el valor de una variable (que llamamos
TFabricacin por medio de la expresin:
TFabricacion = TNOW - TENTRADA
Donde TNOW es la hora actual que marca el reloj de la simulacin y TEntrada es la
hora de creacin de la entidad.
El modelo final aparece representado en la siguiente figura:

Para poder observar los resultados en el mismo modelo, vamos a colocar varias
pantallas o displays, en los que se pueda ver durante la ejecucin de la simulacin,
algunos valores interesantes:
1.
2.
3.
4.
5.

Calendario y hora de la simulacin.


Nmero de unidades fabricadas.
Tiempo medio de fabricacin de una unidad del producto.
Nmero de unidades en cada cola del bloque match.
Nmero total de unidades en todas las colas del modelo (3 del bloque match, 3
en los procesos de pintura, desempaquetado y ensamblado, y la cola de la
agrupacin batch 1).

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.

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 aadidos los elementos
citados.

10

Despus de ejecutar la simulacin, 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
SIMULACIN 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
mquinas iguales que realizar el trabajo tardando un tiempo que
se distribuye segn una triangular de tiempos mnimo, modal y
mximo, 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.
En el departamento 2, se agrupan las piezas en cajas de 6
unidades del mismo color. Las cajas son mandadas al
departamento 3 a travs de una cinta transportadora
(CONVEYOR), de 100 metros de longitud y que se mueve a una
velocidad constante de 200 metros/hora.
En el departamento 3 se sacan las unidades de las cajas, y se
procesan de una en una en una mquina que tarda un tiempo que
se distribuye uniformemente entre 4 y 8 minutos. El producto ya
finalizado se mete otra vez en cajas de 10 unidades del mismo
color que se llevarn al almacn 1 si son rojas, y al almacn 2 si
son azules. Para ello se utilizar una carretilla elctrica
(TRANSPORTER), que se mover a una velocidad de 30
km/hora si va vaca, y 10 km/hora cuando va llena. La distancia
hasta el almacn 1 es de 6 km, y de 10 km al almacn 2.
Simular 100 horas de funcionamiento del sistema.

SOLUCIN
Comenzaremos por simular el proceso de creacin 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
Create 1

True

Decide 1

Assign 1

Assign 2

0
0

False

Assign 3

Ahora simularemos el primer proceso con un bloque Process, y la primera transferencia


desde la Estacin 1 hasta la Estacin 2, con un transporte directo Route que tardar 12
minutos.
As s ig n 2

As s ig n 3

Pr o c e s s 1

Station 1

Route 1

Station 2

Route 1

S tati on 2

Di s pos e 1

Colocamos un bloque Dispose al final para poder empezar a simular. Simularemos un


total de 100 horas, este dato se introduce en el campo Replication Length, dentro del
men Run Setup. Utilizando los elementos de animacin, dibujaremos un primer
esquema de la animacin.

SCANNER

ESTACI N 1

SCANNER

00:00:00
ESTACI N 2

La agrupacin en cajas se simula con el bloque Batch. Eligiendo By attribute en la


opcin 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 2

B atc h 1

Station 4

A s s i gn 4

Para simular la cinta transportadora o Conveyor, utilizaremos 3 bloques: un bloque


Access (para colocar la entidad en la cinta), un bloque Convey (para mover la entidad a
su destino), y un bloque Exit (para descargar la entidad de la cinta transportadora).

Station 4

As s ig n 4

Station 3

Access 1

Convey 1

Exit 1

D is p o s e 1

SCANNER

ESTACIN 1

SCANNER

00 :0 0:0 0
ESTACIN 2

ESTACIN 4

ESTACIN 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
operacin cuyo tiempo se distribuye segn 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

P ro ce ss 2

S eparate 1

St ati on 5

B atc h 2

A s s i gn 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 estacin 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.

P rocess 3

Reques t 2

Trans port 1

S tation 6

M ov e 1

Free 1

alm acen 1

S tation 7

M ov e 2

Free 2

alm acen 2

SCANNER

ESTACIN 7
ESTACIN 1

SCANNER

00:00:00
ESTACIN 2

SCANNER

ESTACIN 6