Zurück zur Startseite

Callcenter-Routing-Simulation in Python

Diskretes Zeitmodell simuliert Call-Routing in einem Callcenter, vergleicht Sequential, Round Robin und Longest Idle anhand von KPI und Fairnessmetriken. Projekt mit modularer Architektur für Colab enthält Konfiguration, Strategien, Metriken und Visualisierung. Geeignet für Prototyping, Tests und What-if-Analyse.

Modellierung von Callcenter-Strategien: Code und Metriken
Advertisement 728x90

Simulation von Routing-Strategien in Callcentern: Code und Metriken

Ein diskret-zeitliches Modell ermöglicht den Vergleich von Strategien zur Verteilung eingehender Anrufe an Agenten: Sequential (sequenzielle Abfrage), Round Robin (Round-Robin) und Longest Idle (Auswahl nach maximaler Leerlaufzeit). Die Analyse konzentriert sich auf KPIs (SLA, Wartezeit, Warteschlangenlänge) und Fairness-Metriken (Gini-Index, Variationskoeffizient).

Das Modell erzeugt einen Poisson-Anrufstrom, simuliert Agentenzustände (idle, busy, offline) und sammelt Daten zur Visualisierung der Lastverteilung. Alle Parameter sind zentral in config.py mit Typisierung via dataclass und JSON-Serialisierung für Reproduzierbarkeit.

Anwendung des Modells in Entwicklung und Test

Für Entwickler dient das Modell als Sandkasten: Das Prototyping von Strategien deckt Probleme früh auf, ohne reale Last.

Google AdInline article slot

Tester nutzen es für:

  • Validierung von Simulationen gegen Produktionsdaten als digitaler Zwilling.
  • Belastungstests: Anrufspitzen, Agentenausfälle, Engpasserkennung.

Kunden (Callcenter-Manager) führen What-if-Analysen durch:

  • SLA-Bewertung bei Strategieänderungen.
  • Lastprognose bei Agenteneinstellungen.
  • Fairnessvergleich bei unterschiedlichen Traffic-Intensitäten.

Projektarchitektur

Modulare Struktur mit src-Layout, kompatibel mit Colab und lokalen Umgebungen. Editierbare Installation via pyproject.toml mit Auto-Paketentdeckung und pytest.

Google AdInline article slot

Wichtige Module:

  • src/ccsim/config.py: SimulationConfig mit seed, lambda_rate, num_agents usw.
  • src/ccsim/agents.py: Agent-Klasse mit Zuständen und Poisson-Ereignissen.
  • src/ccsim/strategies.py: RoutingStrategy-Unterklassen für Erweiterbarkeit.
  • src/ccsim/simulation.py: Diskrete Ereignisschleife und Verarbeitung.
  • src/ccsim/metrics.py: Gini und CV für Anrufe und Busy-Time.
  • src/ccsim/visualization.py: KDE-Verteilungen und Warteschlangendynamik.
  • main.py: Orchestrierung und Speichern in runs/<timestamp>.
  • tests/test_strategies.py: Überprüfung von Randfällen.

Colab-Ausführung: Aus Notebook generieren, editierbare Installation, main.py ausführen. Tests via pytest mit HTML/JUnit-Berichten.

Simulationsparameter

SimulationConfig definiert:

Google AdInline article slot

| Parameter | Beschreibung |

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

| seed | Initialisierung des Zufallszahlengenerators |

| lambda_rate | Anrufintensität (Anrufe/Sek.) |

| num_agents | Anzahl der Agenten |

| num_calls | Gesamtzahl der Anrufe |

| min_call_duration, max_call_duration | Dauerbereich |

| agent_logout_prob, agent_login_prob | Stochastische Verfügbarkeit der Agenten |

| max_queue_size | Limit der Warteschlange |

| service_level_threshold| SLA-Schwelle (Sek.) |

| max_simulation_steps | Limit der Simulationsschritte|

Beispiel: lambda_rate [0,65, 0,75, 0,85] modelliert niedrige/Schwellen-/hohe Last. Der Variationskoeffizient hebt Fairness-Unterschiede am besten hervor.

Ergebnisse des Strategievergleichs

Bei lambda_rate=0,70 zeigt Sequential ungleichmäßige Auslastung (KDE-Plots). Round Robin und Longest Idle sind einheitlicher. Bei niedriger Last (0,65) sind Unterschiede in der Anrufverteilung maximal; bei Überlast konvergieren sie.

Plots: combined_busy_times_kde.png für Auslastungszeiten, Anrufverteilungen pro Agent.

Wichtige Punkte

  • Modell vergleicht Sequential, Round Robin, Longest Idle hinsichtlich KPIs und Fairness (Gini, CV).
  • Flexibles config.py mit JSON für What-if-Szenarien.
  • Modular: Neue Strategien via Vererbung von RoutingStrategy.
  • Visualisierung von Warteschlangendynamik und KDE-Lastverteilungen.
  • Tests decken Randfälle ab: Leere Warteschlange, keine Agenten.

Erweiterungen des Modells

Ergänzen:

  • Heterogene Agenten (Fähigkeitsstufen, Schichtpläne).
  • Fähigkeitsbasiertes und prädiktives Routing.
  • Zyklizität des Traffics, Wiederholungsanrufe.
  • Roboteragenten, Ermüdungsfaktoren.

— Editorial Team

Advertisement 728x90

Weiterlesen