lunes, 16 de septiembre de 2024

Teoría de colas y fiestas de pueblo

La Teoría de Colas es la disciplina que estudia los procesos de demanda de Servicio por parte de una serie de Clientes sobre uno o más Recursos o Servidores. Ejemplos de colas son las que se forman en las cajas del supermercado, en la parada del bus, y también en cosas más incorpóreas como las aplicaciones que se ejecutan en un ordenador solicitando tiempo de CPU.

Estos días han sido las fiestas de Barajas, que aunque hace mucho que es un barrio de Madrid, conserva perfil y costumbres de pueblo. Una de las actividades de cada año es una chocolatada con churros gratis que rápidamente dio lugar a una cola considerable:

Fuente: fiestas de Barajas 2024

A sabiendas de que era mal negocio, decidimos intercambiar algo (al final fue bastante) de nuestro tiempo por unos churros for free y nos pusimos a la cola, calculo que a unos 60-70m del food truck churrero. Sin embargo el reloj corría y no avanzábamos absolutamente nada así que me fui a investigar.

Lo primero era evaluar la capacidad de servicio del puesto de churros (lo que en Teoría de colas se denomina Throughput, o raciones de churros servidas por unidad de tiempo). Doy fe de que el Throughput era muy alto, ya quisieran muchas empresas tener empleados tan eficientes como estas churreras. Entonces dónde estaba el fallo?

Aquí viene lo interesante: como pueblo que es Barajas, y con tanta gente haciendo cola, lo que estaba ocurriendo era que muchos recién llegados a la feria conocían a alguien de la cola y se acoplaban sin miramientos (vida de pueblo, no vamos a luchar contra esto). El resultado es que durante un buen rato esta entrada de violadores de la Disciplina de cola FIFO (First In, First Out), o traducido, gente que se pasaba por el forro lo de que el último en llegar se ponga al final de la cola, igualaba o superaba al Throughput. En consecuencia la cola por delante de nuestra posición no solo no se movía sino que incluso llegaba a crecer (a lo ancho).

Tras una buena media hora de inmovilismo la cola por fin dejó de engordar y pudimos avanzar para conseguir esas delicias, a las que no puse pegas.

~~~

Aunque el resultado iba a ser obvio, he querido hacer una simulación numérica y gráfica parametrizando el funcionamiento de esta cola de pueblo, y comparándola con una estricta cola FIFO donde nadie se cuele (p.ej. la que encontraríamos en un puesto de estofado de reno en Oslo).

Ambas colas reciben exactamente los mismos usuarios y se atienden con igual nivel de servicio, la diferencia es que nosotros (👤rojo) seremos atendidos con bastante retraso en la cola de pueblo porque se nos acaba colando medio Barajas.

Se modela una tasa de llegadas decreciente desde el doble del Throughput (es decir al principio llega el doble de gente de la que el puesto de churros puede servir) hasta cero para poder finiquitar el ejercicio en el tiempo. Aunque los procesos de llegadas suelen asociarse a una distribución de Poisson, he asumido una uniforme que para el propósito de este ejercicio da el mismo resultado ya que solo requerimos imponer una tasa media de llegadas.

A medida que avanza la simulación podemos ver cómo la cola de pueblo engorda ante nuestros ojos, explicando por qué en ella tardamos casi el doble en ser atendidos que en el modelo FIFO ideal. La clave está en introducir la probabilidad de que un recién llegado conozca a alguien de la cola y se quede con él.

La simulación se ha hecho en Excel con VBA, usando una hoja de cálculo con gráficas predefinidas para mostrar los datos y modelando las probabilidades con el generador de números aleatorios. Puede verse en teoriacolas.mp4:


~~~

Repositorio con el simulador Excel: GitHub.

No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.