Методы статистического моделирования СМО
Статистическое моделирование очереди нужно, когда аналитическая модель вроде M/M/1 не отражает реальные распределения, приоритеты, пакеты, таймауты или сеть из нескольких узлов.
Дискретно-событийная модель
Минимальные события:
- приход заявки;
- начало обслуживания;
- завершение;
- timeout, отказ или уход из очереди;
- повторная попытка.
Состояние включает очередь, занятые каналы и накопленную статистику.
Входные данные
Не подставляю только средние. По наблюдениям оцениваю:
- распределение интервалов между заявками;
- распределение времени обслуживания;
- зависимость от типа заявки;
- суточную нестационарность;
- корреляцию и пакетность;
- вероятность повтора и отказа.
Если данных мало, моделирую несколько правдоподобных сценариев и отдельно показываю чувствительность результата.
Эксперимент
- Выбрать период прогрева, не включаемый в итог.
- Выполнить независимые прогоны с разными seed.
- Для сравнения вариантов использовать одинаковые входные случайные последовательности.
- Собирать среднее, перцентили, вероятность отказа и загрузку.
- Строить доверительный интервал, а не одно число.
Для средних результатов прогонов :
Интервал отражает случайность симуляции, но не ошибку самой модели.
Проверка
- на простом режиме результат близок к аналитической формуле;
- сохраняется баланс пришедших, завершённых, потерянных и оставшихся заявок;
- одинаковый seed воспроизводит прогон;
- увеличение числа серверов не нарушает причинные ограничения;
- крайние случаи ведут себя объяснимо.
Связано: Теория массового обслуживания, Имитационное моделирование.
Самопроверка
- Почему одного прогона недостаточно?
- Что не учитывает доверительный интервал симуляции?
- Зачем сравнивать варианты на одинаковых случайных последовательностях?