Дискретно-событийное моделирование
Дискретно-событийное моделирование (англ. discrete-event simulation, DES) — это вид имитационного моделирования. В дискретно-событийном моделировании функционирование системы представляется как хронологическая последовательность событий. Событие происходит в определенный момент времени и знаменует собой изменение состояния системы.
Компоненты системы дискретно-событийного моделирования
Кроме переменных, определяющих состояние системы, и логики, определяющей, что произойдет в ответ на какое-то событие, система дискретно-событийного моделирования содержит следующие компоненты:
Часы
Основной компонент системы, синхронизирующий изменения системы, т.е. возникновение событий.
Список событий
Система моделирования поддерживает по крайней мере один список событий моделирования.
Однопоточные системы моделирования, основанные на мгновенных событиях, имеют только одно текущее событие. В то время как многопоточные системы моделирования и системы моделирования, поддерживающие интервальные события, могут иметь несколько текущих событий. В обоих случаях имеются серьёзные проблемы с синхронизацией между текущими событиями.
Генераторы случайных чисел
Дискретно-событийные модели делятся на детерминированные и стохастические, в зависимости от того, каким образом генерируются события и основные характеристики очередей: время наступления событий, длительность обслуживания, количество клиентов, поступающих в очередь в единицу времени. Стохастические дискретно-событийные модели отличаются от моделей Монте-Карло наличием часов.
Статистика
Основные данные, которые собираются в системах дискретно-событийного моделирования:
- Средняя занятость (доступность) ресурсов
- Среднее количество клиентов в очереди
- Среднее время ожидания в очереди
Условие завершения
Условием завершения могут выступать:
- Возникновение заданного события (например, достижение 10-минутного времени ожидания в очереди)
- Прохождение заданного числа циклов по часам системы моделирования
Реализация
Системы дискретно-событийного моделирования—это, чаще всего, проблемно-ориентированные языки программирования или библиотеки для высокоуровневых языков. Наиболее известные: Arena, AnyLogic, SIMSCRIPT, SLAM, SIMAN, AweSim, GPSS.
Ссылки
- SimPy—библиотека для дискретно-событийного моделирования на языке Python
- Статья "Дискретно-событийное моделирование в логистике"