Zpět na domů

Simulace směrování call centier na Pythonu

Diskrétně-časová model simuluje směrování volání v call centru, porovnává Sequential, Round Robin a Longest Idle podle KPI a metrik fairness. Projekt s modulární architekturou pro Colab zahrnuje config, strategie, metriky a vizualizaci. Vhodný pro prototypování, testování a what-if analýzu.

Modelujeme strategie call centier: kód a metriky
Advertisement 728x90

Simulace strategi směrování v call centrech: kód a metriky

Diskrétně-časová model umožňuje porovnávat strategie rozdělování příchozích volání mezi agenty: Sequential (sekvenční procházení), Round Robin (kruhové procházení) a Longest Idle (výběr podle maximálního času nečinnosti). Analýza probíhá podle KPI (SLA, doba čekání, délka fronty) a metrik rovnoměrnosti (index Giniho, koeficient variability).

Model generuje poissonovský proud volání, simuluje stavy agentů (volný, obsazený, offline) a sbírá data pro vizualizaci distribuce zátěže. Všechny parametry jsou vyvedeny v config.py s typizací přes dataclass a podporou JSON serializace pro reprodukovatelnost.

Použití modelu ve vývoji a testování

Pro vývojáře slouží model jako pískoviště: prototypování strategi odhaluje chyby v rané fázi bez reálné zátěže.

Google AdInline article slot

Testeři ji využívají pro:

  • Validaci simulace proti produkčním datům jako digitálního dvojníka.
  • Stresové testy: návaly volání, odpojení agentů, hledání úzkých hrdel.

Klienti (ředitelé call center) provádějí what-if analýzu:

  • Odhad SLA při změně strategie.
  • Prognózu zátěže při najímání agentů.
  • Srovnání rovnoměrnosti při různé intenzitě provozu.

Architektura projektu

Modulární struktura podle src-layout, kompatibilní s Colab a lokálním prostředím. Editable instalace přes pyproject.toml s automatickým objevováním balíčků a pytest.

Google AdInline article slot

Klíčové moduly:

  • src/ccsim/config.py: SimulationConfig se seedem, lambda_rate, num_agents a dalšími.
  • src/ccsim/agents.py: Třída Agent se stavy, poissonovskými událostmi.
  • src/ccsim/strategies.py: Dědicové RoutingStrategy pro rozšíření.
  • src/ccsim/simulation.py: Diskrétní smyčka, zpracování událostí.
  • src/ccsim/metrics.py: Gini, CV pro volání a dobu obsazenosti.
  • src/ccsim/visualization.py: KDE distribuce, dynamika fronty.
  • main.py: Orchestrace, ukládání do runs/<timestamp>.
  • tests/test_strategies.py: Kontrola hraničních případů.

Spuštění v Colab: generování z notebooku, editable install, main.py. Testy přes pytest s HTML/JUnit reporty.

Parametry simulace

SimulationConfig fixuje:

Google AdInline article slot

| Parametr | Popis |

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

| seed | Inicializace RNG |

| lambda_rate | Intenzita volání (vol/s) |

| num_agents | Počet agentů |

| num_calls | Celkový počet volání |

| min_call_duration, max_call_duration | Rozsah délky volání |

| agent_logout_prob, agent_login_prob | Stochastika dostupnosti |

| max_queue_size | Limit fronty |

| service_level_threshold | SLA práh (s) |

| max_simulation_steps | Limit kroků |

Příklad: lambda_rate [0.65, 0.75, 0.85] modeluje nízkou/práhová/vysokou zátěž. Koeficient variability nejlépe ukazuje rozdíly v rovnoměrnosti.

Výsledky porovnání strategií

Při lambda_rate=0.70 Sequential vede k nerovnoměrné obsazenosti (KDE grafy). Round Robin a Longest Idle jsou blíže rovnoměrnosti. Při nízké zátěži (0.65) jsou rozdíly v distribuci volání největší, při přetížení se sbíhají.

Grafy: combined_busy_times_kde.png pro dobu obsazenosti, distribuce volání podle agentů.

Co je důležité

  • Model porovnává Sequential, Round Robin, Longest Idle podle KPI a rovnoměrnosti (Gini, CV).
  • Flexibilní config.py s JSON pro what-if scénáře.
  • Modulárnost: nové strategie přes dědičnost RoutingStrategy.
  • Vizualizace dynamiky fronty a KDE distribucí zátěže.
  • Testy pokrývají hraniční případy: prázdná fronta, žádní agenti.

Rozšíření modelu

Přidat:

  • Nehomogenní agenty (úrovně dovedností, směny).
  • Skill-based a predictive routing.
  • Cykličnost provozu, opakované volání.
  • Agenti-roboti, faktory únavy.

— Editorial Team

Advertisement 728x90

Číst dál