Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Событийный подход



При событийном подходе система моделируется путем идентификации изменений, происходящих в ней в моменты свершения событий. Задача исследователя заключается в описании событий, которые могут изменить состояние системы, и определении логических взаимосвязей между ними. Имитация функционирования системы осуществляется путем выполнения упорядоченной во времени последовательности логически взаимосвязанных событий.

Для иллюстрации событийного подхода вновь рассмотрим пример магазин с одним кассиром, приведенный выше. Покупатели заходят в магазин, после возможного ожидания обслуживается кассиром и затем уходят. Состояние системы в этом примере определяется состоянием кассира и числом ожидающих обслуживания покупателей. Оно остается неизменным, за исключением моментов, когда покупатель прибывает в систему или покидает ее. Поэтому событийная модель в данном случае состоит из описания действий, происходящих в момент прибытия и окончания обслуживания очередного клиента. Так как изменения состояния системы могут происходить только в эти моменты времени, использование событий «прибытие» и «конец обслуживания» полностью обеспечивает воспроизведение динамики функционирования системы.

Обсудим сначала логику события «прибытие». Операторная схема этого события имеет следующий вид:

ПЛАНИРОВАНИЕ СЛЕДУЮЩЕГО ПРИБЫТИЯ.

ЕСЛИ КАССИР ЗАНЯТ: ЧИСЛО ОЖИДАЮЩИХ=ЧИСЛО ОЖИДАЮЩИХ+1; ВОЗВРАТ.

ЕСЛИ КАССИР СВОБОДЕН: ПЕРЕВОД КАССИРА В СОСТОЯНИЕ «ЗАНЯТ»; ПЛАНИРОВАНИЕ СОБЫТИЯ «ОКОНЧАНИЕ» ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ=ТЕКУЩЕЕ ВРЕМЯ+ВРЕМЯ ОБСЛУЖИВАНИЯ; ВОЗВРАТ.

КОНЕЦ

На первом шаге планируется прибытие следующего покупателя, что в ходе имитации при неоднократном обращении к этой процедуре позволяет организовать непрерывный поток прибытий. Поведение прибывшего покупателя зависит от состояния системы в текущий момент времени. Если кассир занят, прибывший покупатель становится в очередь, и изменение состояния системы осуществляется путем увеличения числа ожидающих покупателей на единицу. Если кассир свободен, прибывший покупатель сразу же обслуживается, и изменение состояния системы осуществляется путем перехода кассира в состояние «занят». Кроме того, должно быть запланировано событие «конец обслуживания» для данного покупателя в момент времени, равный текущему времени плюс время, затрачиваемое кассиром на обслуживание.

Рассмотрим теперь логику обработки события «конец обслуживания». Операторная схема этого события имеет следующий вид:

ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ БОЛЬШЕ НУЛЯ: ЧИСЛО ОЖИДАЮЩИХ=ЧИСЛО ОЖИДАЮЩИХ—1; ПЛАНИРОВАНИЕ КОНЧАНИЯ ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ, РАВНЫЙ ТЕКУЩЕМУ ВРЕМЕНИ + ВРЕМЯ ОБСЛУЖИВАНИЯ; ВОЗВРАТ.

ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ РАВНО НУЛЮ: ПЕРЕВОД КАССИРА В СОСТОЯНИЕ «СВОБОДЕН»; ВОЗВРАТ.

КОНЕЦ

Когда кассир заканчивает обслуживание очередного покупателя, сначала проверяем, есть ли покупатели, ожидающие обслуживания. Если такие покупатели есть, их число уменьшается на единицу и планируется событие «конец обслуживания» первого из ожидающих покупателей. В противном случае кассир переходит в состояние «свободен».

При имитации функционирования магазина с одним кассиром на основе использования событийного подхода мы должны воспроизвести хронологию (календарь) событий и причины, вызывающие их появление в соответствующие моменты имитационного времени. Календарь событий первоначально содержит отметку только о первом событии «прибытие». В ходе имитации возникновение других событий «прибытие» и «конец обслуживания» должно быть запланировано в календаре в соответствии с логикой функционирования системы. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому.

Если для построения событийно-дискретной модели разработчик использует какой-либо универсальный язык, то программирование календаря событий и механизма продвижения имитационного времени, обеспечивающих обработку событий в хронологической последовательности, требуют значительных затрат. Так как функция продвижения времени необходима для реализации любой дискретно-событийной модели, в настоящее время разработан ряд имитационных языков, обеспечивающих разработчика средствами для выполнения этой и других обычно встречающихся функций. Необходимо использовать событийно-дискретные языки.





Дата публикования: 2015-01-23; Прочитано: 276 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...