jueves, 19 de mayo de 2011

Teoria de colas

TEORÍA DE COLAS


Un primer paso consiste, como en todos los modelos, en la especificación del problema mediante la cual se establecerá si el modelo a tratar es un M/M/S (Simple M/M System) o un modelo general (General Queuing System).




12.1 LOS CAMPOS REQUERIDOS


Vamos a suponer por ahora un modelo M/M/S. Lo que sigue es el ingreso de los datos de acuerdo con las especificaciones de la ventana.



La ventana anterior consta de:

•   Numero de servidores (Number of Servers)
•   Tasa de servicio (Service Rate)
•   Tasa de llegada de clientes (Customer Arrival Rate)
•   Capacidad de la cola (Queue Capacity)
•   Tamaño de la población de clientes (Customer Population)
•   Costo del servidor ocupado (Busy Server Cost per Hour)
•   Costo del servidor desocupado (Idle Server Cost per Hour)
•   Costo de espera de los clientes (Customer Waiting Cost per Hour)
•   Costo de los clientes siendo servidos (Customer Being Served Cost
per Hour)
•   Costo de los clientes siendo despachados (Cost of Customer Being
Balked)
•   Costo de la unidad de capacidad de la cola (Unit Queue Capacity Cost)

Un ejemplo del modelo es el siguiente (recuerde que las letras M indican un valor infinito o muy grande):




Una de las posibilidades de solución es calcular las tradicionales medidas de desempeño (medidas de efectividad), que nos proporciona el tablero siguiente:



Otra opción con la que se cuenta es simular el sistema, la que inicialmente nos proporciona la siguiente ventana:



Usando el sistema de reloj con 1000 horas de simulación del sistema de colas.



Se obtienen los resultados que se muestran a continuación.



El resumen de probabilidades de encontrar n clientes en el sistema es:



Análisis de sensibilidad a cambios en número de servidores iniciando en 2 y terminando en 10.



Un análisis parecido puede hacerse tomando como base la capacidad del sistema, que puede ir desde una capacidad específica de x clientes (capacidad limitada) hasta infinita.


SIMULACIÓN DE COLAS

La simulación manejada por WINQSB permite la participación de cuatro actores dentro del ambiente simulado:

•   Tasa de llega de clientes (Customer Arriving Source).
•   Colas (Queue). Líneas de espera.
•   Servidores (Server): Se especifica la cantidad de servidores en el sistema.
•   Colectores de Basura (Garbage Collector): Indica la posibilidad que el
cliente abandone el proceso sin terminarlo. Puede ser considerado como un defecto en el sistema.

Para que WINQSB comprenda esta designación la tasa de llegada de los consumidores, las colas, los servidores y los colectores de basura serán identificados con las letras C, S, Q y G respectivamente.

13.1 EJEMPLO DE SIMULACIÓN



Podemos observar que existen tres actores principales:

•   Dos cajeros, los cuales serán considerados como servidores.
•   Los clientes, representados por una tasa de llegada.
•   La cola o línea de espera, a donde los clientes llegan para ser atendidos.

Hay que considerar que los bancos emplean un sistema de espera de tipo PEPS (FIFO – First In First Out), es decir, los primeros clientes en entrar serán los primeros en ser atendidos.

Para ingresar esta información registramos la cantidad de actores participantes en la ventana Especificaciones del Problema (Problem Specification).



Es  recomendable  darle  nombres  a  cada  uno  de  los  actores  para  evitar confusiones futuras.


Los cajeros se denotan con la S (Server), los clientes con la C (Customer) y la cola con Q (Queue).

Al pulsar OK, aparecerá una plantilla donde ingresaremos la información primaria del problema.



Comencemos llenando los datos para los cajeros. Para programarlos es necesario introducir la información de que los cajeros dependen de los clientes.  Para que WINQSB entienda esto  en  la  columna  Distribución  de  tiempos  de  servicio (Service Time Distribution) se ingresa la siguiente notación:



Clientes/Normal/0.06667/0.01

La notación completa es:

Nombre predecesor/Distribución/Parámetro 1/Parámetro
2/Parámetro 3

La primera corresponde a la conexión con los clientes, la segunda a la distribución de  probabilidad  de  los  servidores  y  los  siguientes  datos  (parámetros)  son utilizados de acuerdo a la información requerida por la distribución (por ejemplo, la distribución Normal requiere de dos parámetros: la media y la desviación).



Las distribuciones disponibles son:

•   Beta (Beta)
•   Binomial (Binomial)
•   Constante (Constant)
•   Discreta (Discrete)
•   Erlang (Erlang)
•   Exponencial (Exponential)
•   Gamma (Gamma)
•   Hypergeométrica (Hypergeometric)
•   Laplace (Laplace)
•   Normal (Normal)
•   Pareto (Pareto)
•   Poisson (Poisson)
•   Función de poder (Power Function)
•   Triangular (Triangular)
•   Uniforme (Uniform)
•   Weibull (Weibull)

De igual forma debemos completar los parámetros para los clientes.  Lo primero es indicar la dependencia de una de las colas en la columna Sucesor inmediato (Immediate Follower). Luego, en la columna Distribución del tiempo entre llegada (Interarrival Time Distribution) con el siguiente formato:

Distribución/Parámetro 1/Parámetro 2/Parámetro 3

Para nuestro caso, la distribución quedaría:

Poisson/0.1

Los parámetros 2 y 3 no son requeridos para esta distribución.  El resultado debe lucir como sigue:


La columna Distribución de los tamaños de los lotes (Batch Size Distribution), indica si los clientes llegan de forma agrupada o individual.   En nuestro caso omitiremos llenar esta columna indicando que los clientes llegan de a uno al banco.

Para programar la cola, debemos indicar que los dos cajeros se alimentarán de ella colocando los nombres en las casillas correspondientes a la columna Sucesor inmediato (Immediate Follower).




En Disciplina de la cola (Queue Discipline) marcamos FIFO y en Capacidad de la cola (Queue Capacity) su capacidad (máximo 15 personas en espera).

13.2 ANALIZANDO LOS RESULTADOS


Para  resolver  el  problema  pulsamos  sobre  Realizar  simulación  (Perform
Simulation) en el menú Resolver y analizar (Solve and Analyze).



En la nueva ventana podremos indicar la cantidad de minutos a simular y que tipo de base (seed) para la generación de números aleatorios.



Pulsemos en el botón SIMULATE. WINQSB tomará el tiempo y mostrará las observaciones recolectadas durante ese tiempo:



El botón SHOW ANALYSIS nos mostrará los resultados de la simulación.



Se puede observar que en los 100 minutos llegaron 1123 clientes (Total Number of Arrival).   El tiempo de espera promedio fue de 0.1879 (Average Waiting Time).  El número máximo de personas en el sistema fue de 17: 15 en espera y 2 siendo entendidos (Maximun Number in the System). En promedio permanecieron 2,2144 personas en el sistema (Average Number in the System).

Un análisis desde el punto de vista de los cajeros nos muestra más información de la simulación:

Los cajeros tuvieron un promedio de utilización (Server Utilization) del 28,89%. El cajero 1 atendió 431 personas y el cajero 2 a 440 para un total de 871 (Customer Processed).  De los 1123 solo finalizaron el proceso 871.

Desde el punto de vista de la cola tenemos:



El promedio de personas en la cola fue de 1.6366 (Average Q. Length).   El máximo de personas en la cola es de 15 (Maximun Q. Length).

13.3 SIMULACIÓN EN MODO GRÁFICO


Podemos ingresar el problema mediante el modo gráfico que provee WINQSB en la ventana inicial:

El problema quedaría:



Para intercambiar los modos pulsamos en Pasar a formato matriz (Switch to
Matrix Form) en el menú Formato (Format)