Как проверить достоверность результатов и стационарный режим в DES-симуляции

Денис

Денис

Обновлено Aug 26, 2026

В этой статье вы узнаете, как проверить достоверность результатов DES-симуляции (дискретно-событийного моделирования) и убедиться, что система достигла стационарного режима (steady state). Вы научитесь читать вкладку «Динамика и достоверность», интерпретировать проверку закона Литтла, понимать, что такое warm-up, и разбирать время ожидания на две части: ожидание по календарю и очередь к ресурсам. Это поможет определить, когда результатам можно доверять, а когда нужно увеличить прогон.

Перед тем как анализировать метрики SLA, загрузку ресурсов или экономику, важно убедиться, что расчёт корректен. Вкладка «Динамика и достоверность» в отчёте симуляции содержит автоматические проверки, которые подтверждают или ставят под сомнение надёжность полученных цифр.

Где находится вкладка «Динамика и достоверность»

  1. Откройте завершённую симуляцию и перейдите на вкладку «Результаты».
  2. В шапке отчёта выберите вкладку «Динамика и достоверность» (она находится после вкладки «SLA»).

На этой вкладке отображаются два ключевых индикатора и несколько графиков, описанных ниже.

Проверка закона Литтла

В верхней части вкладки находится блок «Закон Литтла» с одним из двух статусов:

  • «Проверено» — расчёт прошёл внутреннюю самопроверку. Значит, система корректно посчитала среднее число заявок в системе, среднее время пребывания и интенсивность потока. Результатам можно доверять.
  • «Не пройдено» — обнаружено расхождение (допуск 10 %). Это сигнал, что результаты пока недостоверны. Возможные причины: слишком короткий прогон, высокая вариативность или нестабильный поток. В этом случае увеличьте количество заявок или время симуляции и перезапустите расчёт.

Закон Литтла — это фундаментальное соотношение теории очередей: среднее число заявок в системе равно произведению интенсивности потока на среднее время пребывания заявки. Если система не может его подтвердить, значит, данные прогона ещё не стабилизировались.

Стационарный режим (steady state) и warm-up

Рядом с проверкой закона Литтла находится блок «Steady State» со статусом:

  • «Достигнут» — система стабилизировалась. Показаны дополнительные данные: «Система стабилизировалась через …» (время или количество заявок, после которых показатели перестали меняться) и «% в Steady State» (доля прогона, приходящаяся на стабильную фазу).
  • «Не достигнут» — прогон закончился до того, как система вышла на устойчивый режим. В этом случае цифры в отчёте отражают «разгон» (warm-up), а не реальный режим работы. Увеличьте число заявок или длительность прогона и запустите симуляцию заново.

Warm-up — это начальная фаза прогона, когда система «набирает обороты»: заполняются очереди, ресурсы переходят в рабочий ритм. На таймлайне прогона (вкладка «Диаграмма») эта фаза помечена бейджем «Warm-up», а стабильная часть — бейджем «Стационарный режим». В расчёте итоговых метрик warm-up исключается, но если стационарный режим не достигнут вообще, исключать нечего — и цифры будут завышены или занижены.

Декомпозиция времени в системе

Ниже индикаторов находится блок «Декомпозиция времени в системе», который разбивает общее время пребывания заявки на составляющие:

  • Время обработки — время, когда заявка активно обрабатывается ресурсом.
  • Ожидание (всего) — суммарное время, когда заявка ждёт.

Ожидание, в свою очередь, делится на две части:

  • Очередь к ресурсам — время, когда заявка ждёт свободного исполнителя. Лечится увеличением численности ресурсов или ускорением обработки.
  • Ожидание по календарю — время, когда заявка ждёт, потому что ресурс не работает (выходной, ночь, перерыв). Лечится изменением графика работы или расширением календаря.

Эта разбивка помогает понять, что именно менять: если основная доля ожидания — «очередь к ресурсам», добавьте исполнителей или сократите время обработки. Если доминирует «ожидание по календарю», пересмотрите расписание или добавьте смену.

Графики динамики

Во вкладке отображаются несколько графиков, которые наглядно показывают, как менялись показатели во время прогона:

  • «Размер системы и очередь» — количество заявок в системе и в очередях по времени.
  • «Среднее время в системе (W)» — динамика среднего времени пребывания заявки.
  • «Пропускная способность и утилизация» — throughput и утилизация ресурсов.
  • «Утилизация ресурсов» — с линиями порогов «Перегрузка (80%)» и «Недозагрузка (30%)».
  • «Средняя длина очереди» — динамика очереди.
  • «Обработано заявок по батчам» — накопительная кривая обработанных заявок.

Если кривые на графиках вышли на плато — стационарный режим достигнут. Если к моменту завершения прогона кривые ещё растут или колеблются — прогон слишком короткий.

Что делать, если проверки не пройдены

  1. Закон Литтла «Не пройдено» — увеличьте количество заявок (например, с 100 до 500) или время прогона и перезапустите симуляцию. Если расхождение сохраняется, проверьте, не слишком ли высока вариативность длительностей задач.
  2. Steady State «Не достигнут» — увеличьте длительность прогона. Если вы запускаете по количеству заявок, добавьте заявок; если по времени — увеличьте период. После перезапуска убедитесь, что доля «% в Steady State» составляет хотя бы 70–80 %.
  3. Ожидание по календарю доминирует — измените график ресурсов (например, добавьте вторую смену) или настройте поток заявок так, чтобы он совпадал с рабочими часами.
  4. Очередь к ресурсам доминирует — добавьте ресурсы или сократите время обработки. Подробнее о поиске узких мест см. в статье «Как анализировать загрузку ресурсов и находить узкие места».

Частые формулировки

«достоверность результатов симуляции», «стационарный режим не достигнут», «закон Литтла не пройден», «warm-up в des-симуляции», «проверка расчёта симуляции», «почему цифры в отчёте не совпадают с реальностью», «увеличить прогон des», «ожидание по календарю или очередь к ресурсам», «как понять, что симуляция стабилизировалась».