A Моделирование дискретных событий (DES ) моделирует работу система как (дискретная ) последовательность событий во времени. Каждое событие происходит в определенный момент времени и отмечает изменение состояния в системе. Предполагается, что между последовательными событиями в системе не произойдет никаких изменений; таким образом, время моделирования может напрямую перейти к времени наступления следующего события, которое называется временной прогрессией следующего события .
В дополнение к временной прогрессии следующего события существует также альтернативный подход, называемый прогрессия времени с фиксированным приращением, где время разбивается на небольшие отрезки времени, а состояние системы обновляется в соответствии с набором событий / действий, происходящих во временном отрезке. Поскольку не нужно моделировать каждый временной интервал, моделирование времени следующего события обычно может выполняться намного быстрее, чем соответствующее моделирование времени с фиксированным приращением.
Обе формы DES контрастируют с непрерывным моделированием, в котором состояние системы непрерывно изменяется с течением времени на основе набора дифференциальных уравнений, определяющих скорости изменения переменных состояния.
Обычным упражнением в обучении построению симуляций дискретных событий является моделирование очереди, например, клиенты, прибывающие в банк для обслуживания кассира. В этом примере системными объектами являются Очередь клиентов и Счетчики . Системные события: Клиент-Прибытие и Клиент-Отъезд . (Событие Teller-Begins-Service может быть частью логики событий прибытия и отправления.) Состояниями системы, которые изменяются этими событиями, являются Number-of-Customers- in-the-Queue (целое число от 0 до n) и Teller-Status (занято или незанято). случайными величинами, которые необходимо охарактеризовать для моделирования этой системы стохастически : Клиент-Время-Прибытие и Телефон-Сервис-Время . Агентная среда для моделирования производительности оптимистичного параллельного симулятора дискретных событий - еще один пример симуляции дискретных событий.
В дополнение к логике того, что происходит при возникновении системных событий, Моделирование дискретных событий включает в себя следующее:
Приоритетная очередь, обработчик событий анимации и обработчик повторной нормализации времени (при запуске моделирования временные переменные теряют точность. Через некоторое время все временные переменные должны быть повторно нормализованы путем вычитания время последнего обработанного события).
Состояние системы - это набор переменных, который фиксирует основные свойства системы, которую необходимо изучить. Траектория состояния во времени S (t) может быть математически представлена ступенчатой функцией, значение которой может изменяться всякий раз, когда происходит событие.
Моделирование должно отслеживать текущее время моделирования в любых единицах измерения, подходящих для моделируемой системы. В симуляциях дискретных событий, в отличие от непрерывных, время «скачкообразно», потому что события являются мгновенными - часы переходят к следующему времени начала события по мере продолжения симуляции.
Моделирование поддерживает как минимум один список событий моделирования. Иногда это называется набором ожидающих событий, потому что в нем перечислены события, ожидающие выполнения в результате ранее смоделированного события, но еще не смоделированные сами. Событие описывается временем, когда оно происходит, и типом, указывающим код, который будет использоваться для имитации этого события. Обычно код события параметризуется, и в этом случае описание события также содержит параметры для кода события.
Когда события происходят мгновенно, действия, продолжающиеся во времени, моделируются как последовательности событий. Некоторые структуры моделирования позволяют указать время события как интервал, задав время начала и время окончания каждого события.
Однопоточные механизмы моделирования, основанные на мгновенных событиях, имеют только одно текущее событие. Напротив, многопоточные механизмы моделирования и механизмы моделирования, поддерживающие модель событий на основе интервалов, могут иметь несколько текущих событий. В обоих случаях возникают серьезные проблемы с синхронизацией между текущими событиями.
Набор ожидающих событий обычно организован как очередь приоритетов, отсортированная по времени события. То есть, независимо от порядка, в котором события добавляются в набор событий, они удаляются в строго хронологическом порядке. Различные реализации приоритетной очереди были изучены в контексте моделирования дискретных событий; Изученные альтернативы включали развернутые деревья, списки пропуска, календарные очереди и релейные очереди. На машинах с массовым параллелизмом, таких как многоядерные или многоядерные ЦП, ожидающий набор событий может быть реализован, полагаясь на не- алгоритмы блокировки, чтобы снизить стоимость синхронизации между параллельными потоками.
Как правило, события планируются динамически по мере продолжения моделирования. Например, в примере банка, упомянутом выше, событие CUSTOMER-ARRIVAL в момент времени t, если CUSTOMER_QUEUE было пустым, а TELLER было бездействующим, включало бы создание последующего события CUSTOMER-DEPARTURE, которое произойдет в момент времени t + s, где s число, полученное из распределения ВРЕМЯ ОБСЛУЖИВАНИЯ.
При моделировании необходимо генерировать случайные величины различных видов в зависимости от модели системы. Это выполняется одним или несколькими генераторами псевдослучайных чисел. Использование псевдослучайных чисел в противоположность истинным случайным числам является преимуществом, если симуляция нуждается в повторном запуске с точно таким же поведением.
Одна из проблем с распределениями случайных чисел, используемых при моделировании дискретных событий, состоит в том, что стационарные распределения времени событий могут быть неизвестны заранее. В результате начальный набор событий, помещенный в набор ожидающих событий, не будет иметь время прихода, представляющее установившееся распределение. Эта проблема обычно решается путем начальной загрузки имитационной модели. Прилагаются лишь ограниченные усилия, чтобы назначить реалистичное время для начального набора ожидающих событий. Однако для этих событий запланированы дополнительные события, и со временем распределение времени событий приближается к своему устойчивому состоянию. Это называется начальной загрузкой имитационной модели. При сборе статистики из работающей модели важно либо игнорировать события, которые происходят до достижения установившегося состояния, либо запускать симуляцию достаточно долго, чтобы поведение начальной загрузки было подавлено поведением установившегося состояния. (Такое использование термина начальной загрузки можно противопоставить его использованию как в статистике, так и в вычислениях ).
Моделирование обычно отслеживает статистику системы, которая количественно определяет интересующие аспекты. В примере с банком интересно отслеживать среднее время ожидания. В имитационной модели показатели производительности не выводятся аналитически из распределений вероятностей, а представляют собой средние значения для повторений, то есть различных прогонов модели. Доверительные интервалы обычно создаются, чтобы помочь оценить качество выходных данных.
Поскольку события загружаются, теоретически симуляция дискретных событий может выполняться бесконечно. Поэтому разработчик симуляции должен решить, когда симуляция закончится. Типичный выбор - «в момент времени t» или «после обработки n событий» или, в более общем смысле, «когда статистическая мера X достигает значения x».
.
Пидд (1998) предложил трехэтапный подход к моделированию дискретных событий. При таком подходе первая фаза - переход к следующему хронологическому событию. Второй этап - выполнение всех событий, которые безусловно происходят в это время (они называются B-событиями). Третий этап - выполнить все события, которые условно происходят в это время (они называются C-событиями). Трехэтапный подход является усовершенствованием подхода, основанного на событиях, при котором одновременные события упорядочиваются таким образом, чтобы максимально эффективно использовать ресурсы компьютера. Трехэтапный подход используется рядом коммерческих пакетов программного обеспечения для моделирования, но с точки зрения пользователя, особенности лежащего в основе метода моделирования обычно скрыты.
Подходы к моделированию особенно хорошо подходят для помощи пользователям в диагностике проблем в сложных средах. Теория ограничений иллюстрирует важность понимания узких мест в системе. Выявление и устранение узких мест позволяет улучшить процессы и систему в целом. Например, на производственных предприятиях узкие места могут быть созданы из-за избыточных запасов перепроизводства, изменчивости процессов и изменчивости маршрутизации или последовательности. Точно документируя систему с помощью имитационной модели, можно получить представление обо всей системе с высоты птичьего полета.
Рабочая модель системы позволяет руководству понять драйверы производительности. Моделирование может быть построено так, чтобы включать любое количество показателей эффективности, таких как загрузка работников, скорость своевременной доставки, процент брака, денежные циклы и так далее.
Операционная обычно используется несколькими хирургическими специалистами. Лучшее понимание природы этих процедур может увеличить количество пациентов. Пример: если операция на сердце длится в среднем четыре часа, изменение графика работы операционной с восьми доступных часов до девяти не увеличит пропускную способность. С другой стороны, если процедура грыжи занимает в среднем двадцать минут, дополнительный час также может не дать увеличения пропускной способности, если не учитывать вместимость и среднее время, проведенное в палате для восстановления.
Многие идеи по улучшению систем основаны на надежных принципах, проверенных методологиях (Lean, Six Sigma, TQM и т. Д.), Но не смогли улучшить общую систему. Имитационная модель позволяет пользователю понять и протестировать идею повышения производительности в контексте всей системы.
Имитационное моделирование обычно используется для моделирования потенциальных инвестиций. С помощью моделирования инвестиций лица, принимающие решения, могут принимать обоснованные решения и оценивать потенциальные альтернативы.
Моделирование дискретных событий используется в компьютерной сети для моделирования новых протоколов, различных системных архитектур (распределенных, иерархических, централизованных, P2P) перед фактическим развертыванием. Можно определить различные метрики оценки, такие как время обслуживания, пропускная способность, отброшенные пакеты, потребление ресурсов и т. Д.
.
Подходы к системному моделированию:
Вычислительные методы:
Программное обеспечение:
Дисциплины: