Volver al inicio

Simulación de Enrutamiento de Call Center en Python

El modelo de tiempo discreto simula el enrutamiento de llamadas en un call center, comparando Sequential, Round Robin y Longest Idle por KPI y métricas de equidad. Proyecto con arquitectura modular para Colab que incluye config, estrategias, métricas y visualización. Adecuado para prototipado, pruebas y análisis what-if.

Modelado de Estrategias de Call Center: Código y Métricas
Advertisement 728x90

Simulación de Estrategias de Enrutamiento en Centros de Llamadas: Código y Métricas

Un modelo en tiempo discreto permite comparar estrategias para distribuir las llamadas entrantes entre los agentes: Secuencial (sondeo secuencial), Round Robin (round-robin) y Longest Idle (selección por tiempo ocioso máximo). El análisis se centra en los indicadores clave de rendimiento (nivel de servicio, tiempo de espera, longitud de cola) y métricas de equidad (índice de Gini, coeficiente de variación).

El modelo genera un flujo de llamadas Poisson, simula estados de los agentes (ocioso, ocupado, desconectado) y recopila datos para visualizar la distribución de carga. Todos los parámetros están centralizados en config.py con tipado mediante dataclass y serialización JSON para reproducibilidad.

Aplicación del Modelo en Desarrollo y Pruebas

Para los desarrolladores, el modelo actúa como un entorno de pruebas: prototipar estrategias permite detectar problemas a tiempo sin carga del mundo real.

Google AdInline article slot

Los probadores lo usan para:

  • Validar simulaciones contra datos de producción como un gemelo digital.
  • Pruebas de estrés: picos de llamadas, caídas de agentes, detección de cuellos de botella.

Los clientes (gerentes de centros de llamadas) ejecutan análisis de escenarios "qué pasaría si":

  • Evaluación del nivel de servicio ante cambios de estrategia.
  • Pronóstico de carga con contratación de agentes.
  • Comparación de equidad a distintas intensidades de tráfico.

Arquitectura del Proyecto

Estructura modular con src-layout, compatible con Colab y entornos locales. Instalación editable mediante pyproject.toml con descubrimiento automático de paquetes y pytest.

Google AdInline article slot

Módulos clave:

  • src/ccsim/config.py: SimulationConfig con seed, lambda_rate, num_agents, etc.
  • src/ccsim/agents.py: Clase Agent con estados y eventos Poisson.
  • src/ccsim/strategies.py: Subclases de RoutingStrategy para extensibilidad.
  • src/ccsim/simulation.py: Bucle de eventos discretos y procesamiento.
  • src/ccsim/metrics.py: Gini y CV para llamadas y tiempo ocupado.
  • src/ccsim/visualization.py: Distribuciones KDE y dinámicas de cola.
  • main.py: Orquestación y guardado en runs/<timestamp>.
  • tests/test_strategies.py: Comprobaciones de casos límite.

Ejecución en Colab: Generar desde notebook, instalación editable, ejecutar main.py. Pruebas con pytest e informes HTML/JUnit.

Parámetros de Simulación

SimulationConfig define:

Google AdInline article slot

| Parameter | Description |

|------------------------|------------------------------|

| seed | Inicialización del generador de números aleatorios |

| lambda_rate | Intensidad de llamadas (llamadas/seg) |

| num_agents | Número de agentes |

| num_calls | Número total de llamadas |

| min_call_duration, max_call_duration | Rango de duración |

| agent_logout_prob, agent_login_prob | Estocasticidad de disponibilidad de agentes |

| max_queue_size | Límite de cola |

| service_level_threshold| Umbral de nivel de servicio (seg) |

| max_simulation_steps | Límite de pasos |

Ejemplo: lambda_rate [0.65, 0.75, 0.85] modela carga baja/umbral/alta. El coeficiente de variación resalta mejor las diferencias de equidad.

Resultados de Comparación de Estrategias

A lambda_rate=0.70, Secuencial muestra utilización desigual (gráficos KDE). Round Robin y Longest Idle están más cerca de lo uniforme. A baja carga (0.65), las diferencias en distribución de llamadas son máximas; en sobrecarga, convergen.

Gráficos: combined_busy_times_kde.png para tiempo ocupado, distribuciones de llamadas por agente.

Puntos Clave

  • El modelo compara Secuencial, Round Robin, Longest Idle en indicadores clave de rendimiento y equidad (Gini, CV).
  • config.py flexible con JSON para escenarios "qué pasaría si".
  • Modular: nuevas estrategias mediante herencia de RoutingStrategy.
  • Visualización de dinámicas de cola y distribuciones KDE de carga.
  • Pruebas cubren casos límite: cola vacía, sin agentes.

Extensiones del Modelo

Agregar:

  • Agentes heterogéneos (niveles de habilidad, horarios de turnos).
  • Enrutamiento basado en habilidades y predictivo.
  • Ciclicidad del tráfico, llamadas repetidas.
  • Agentes robot, factores de fatiga.

— Editorial Team

Advertisement 728x90

Leer después