Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Моделирование очереди обслуживания клиентов методом имитационного моделирования на Python: влияние числа каналов на среднее время ожидания

18.10.2026
3
Поделиться
Аннотация
Построена дискретно-событийная имитационная модель многоканальной системы массового обслуживания с пуассоновским потоком заявок на Python. Для интенсивности потока 0,9 заявки в минуту и среднего времени обслуживания 4 минуты исследовано влияние числа каналов (операторов) от 4 до 8 на время ожидания. Результаты имитации согласуются с формулой Эрланга C с относительным расхождением не более 2,4 %. Показано, что увеличение числа операторов с 4 до 5 снижает среднее ожидание с 7,7 до 1,2 мин, а закон распределения времени обслуживания заметно влияет на результат.
Библиографическое описание
Люнгрин, А. С. Моделирование очереди обслуживания клиентов методом имитационного моделирования на Python: влияние числа каналов на среднее время ожидания / А. С. Люнгрин. — Текст : непосредственный // Молодой ученый. — 2026. — № 42 (645). — С. 13-15. — URL: https://moluch.ru/archive/645/141184.


Очереди клиентов в отделении банка, колл-центре или службе поддержки описываются системами массового обслуживания (СМО). Для простейших СМО с пуассоновским потоком и экспоненциальным временем обслуживания существуют аналитические формулы, но при других законах распределения они дают значительные ошибки [1]. Поэтому для проверки расчётов и анализа более сложных случаев применяют имитационное моделирование, при котором работа системы воспроизводится по событиям, а результаты сравнивают с аналитическими решениями типовых СМО [2, 3]. Цель работы состоит в том, чтобы реализовать такую модель на Python, проверить её по формуле Эрланга и оценить, как число каналов влияет на время ожидания.

Рассматривается система M / M / c : заявки поступают с интенсивностью λ = 0,9 в минуту, обслуживаются c одинаковыми операторами со средним временем 4 минуты (μ = 0,25 в минуту), очередь неограниченная и обслуживается в порядке поступления. Нагрузка ρ = λ/( c μ) должна быть меньше единицы, при c = 4 она равна 0,90. Среднее время ожидания по формуле Эрланга C вычисляется как W q = P ож /( c μ − λ), где вероятность ожидания P ож = B /( S + B ), B = a c /( c !(1 − ρ)), S равна сумме a k / k ! по k от 0 до c − 1, а a = λ/μ = 3,6.

Модель написана на Python без специальных библиотек: моменты поступления заявок задаются накопленной суммой экспоненциальных интервалов, а для выбора освободившегося канала используется очередь с приоритетом (модуль heapq). Для каждой заявки время начала обслуживания равно большему из момента прихода и момента освобождения ближайшего канала. В одном прогоне обработано 100 000 заявок, первые 5000 отброшены как период разогрева. Для каждого значения c выполнено 20 прогонов с разными начальными значениями генератора, результаты усреднены, приведён 95-процентный доверительный интервал.

Таблица 1

Сравнение имитации с формулой Эрланга C (λ = 0,9 мин⁻¹, μ = 0,25 мин⁻¹)

Операторов c

Загрузка ρ

Wq теор., мин

Wq имит., мин

P(ожид. > 0) теор. / имит.

Ожидание > 5 мин, %

4

0,90

7,88

7,73 ± 0,26

0,79 / 0,78

47,3

5

0,72

1,17

1,18 ± 0,03

0,41 / 0,41

7,2

6

0,60

0,33

0,33 ± 0,003

0,20 / 0,20

0,9

7

0,51

0,10

0,10 ± 0,002

0,09 / 0,09

0,1

8

0,45

0,031

0,031 ± 0,001

0,03 / 0,03

0,01

Результаты приведены в таблице 1. Имитация воспроизводит аналитические значения: для c = 5 среднее ожидание равно 1,18 мин против 1,17 мин по формуле, вероятность ожидания 0,41 против 0,41, а загрузка операторов в имитации 0,72 против 0,72. Для c = 4 расхождение среднего ожидания составило 1,9 %, при большей нагрузке оценка менее устойчива, и доверительный интервал здесь самый широкий (± 0,26 мин).

Среднее время ожидания (а), доля ожиданий дольше 5 минут и загрузка операторов (б)

Рис. 1. Среднее время ожидания (а), доля ожиданий дольше 5 минут и загрузка операторов (б)

Влияние числа каналов нелинейно (рисунок 1). Добавление пятого оператора снижает среднее ожидание с 7,7 до 1,2 мин, то есть в 6,6 раза, а доля клиентов, ждущих дольше 5 минут, падает с 47 до 7 %. Шестой оператор уменьшает ожидание ещё в 3,6 раза, до 0,33 мин, причём загрузка падает до 60 %. Дальнейшие добавления дают всё меньший выигрыш в минутах, но заметно снижают загрузку. Выбор числа операторов поэтому определяется допустимой долей долгих ожиданий и стоимостью простоя, а не только средним временем.

Результаты удобно использовать для выбора числа операторов по заданному требованию. Для рассматриваемого потока значение a = 3,6, поэтому условие ρ < 1 выполняется только при c ≥ 4. Если требование сформулировано как «не более 5 % клиентов ждут дольше 5 минут», то при c = 5 оно не выполняется (7,2 %), а при c = 6 выполняется (0,9 %), при этом загрузка операторов остаётся 60 %. Если же важнее загрузка, то пять операторов дают 72 % при среднем ожидании чуть более минуты.

Дополнительно проверено, как закон обслуживания влияет на результат при c = 5 и том же среднем времени 4 минуты. При постоянном времени обслуживания среднее ожидание составило 0,62 мин, при экспоненциальном 1,17 мин, а при логнормальном с коэффициентом вариации 1,5 уже 1,65 мин. Разброс времени обслуживания увеличивает очередь при той же загрузке, поэтому при коэффициенте вариации больше единицы формула Эрланга занижает ожидание, что согласуется с выводом работы [1] о погрешности экспоненциальных приближений.

Ограничения модели: поток заявок принят пуассоновским и постоянным в течение времени, операторы одинаковы, клиенты не уходят из очереди и нет приоритетов. В реальных системах интенсивность меняется в течение дня, поэтому модель следует рассматривать для отдельных периодов. Полученные закономерности подтверждают, что имитационное моделирование на Python даёт корректные результаты для простой СМО и позволяет менять её условия без новых формул.

Литература:

  1. Рыжиков Ю. И., Уланов А. В. Опыт расчета сложных систем массового обслуживания // Информационно-управляющие системы. 2009. № 2. С. 56–62.
  2. Моисеев А. Н., Синяков М. В. Разработка объектно-ориентированной модели системы имитационного моделирования процессов массового обслуживания // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2010. № 1 (10). С. 90–93.
  3. Журавлев А. М., Медведев Н. В., Быков А. Ю. Использование межплатформенной библиотеки функций языка Си++ для реализации имитационных моделей типовых систем массового обслуживания // Вестник МГТУ им. Н. Э. Баумана. Серия Приборостроение. 2008. № 4. С. 3–14.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №42 (645) октябрь 2026 г.
Скачать часть журнала с этой статьей(стр. 13-15):
Часть 1 (стр. 1-69)
Расположение в файле:
стр. 1стр. 13-15стр. 69
Похожие статьи
Моделирование потока заявок в вычислительной системе
Имитационное моделирование процесса передачи данных
Об одной задаче про обслуживание
Применение принципа объектного моделирования для имитационного моделирования системы обработки заявок с мобильными сотрудниками
Решение задач анализа и синтеза на имитационных моделях: обоснование межоперационных запасов в станочных системах аналитическими методами
Моделирование работы агрегатора «Яндекс. Такси» как системы массового обслуживания
Некоторые прикладные системы массового обслуживания для подсчета численности мобильного персонала
Использование IPython в качестве интерактивной среды математического моделирования процессов в машиностроении
Объект как система массового обслуживания: моделирование, исходные предпосылки и ограничения
Моделирование обслуживания транспортных средств в складском комплексе с использованием инструментария теории массового обслуживания

Молодой учёный