При событийном подходе система моделируется путем идентификации изменений, происходящих в ней в моменты совершения событий. Задача исследователя заключается в описании событий, которые могут изменить состояние системы, и определении логических взаимосвязей между ними. Имитация функционирования системы осуществляется путем выполнения упорядоченной во времени последовательности логически взаимосвязанных событий.
Состояние системы в этом примере определяется состоянием парикмахера и числом ожидающих клиентов. Оно остается неизменным, за исключением моментов, когда клиент прибывает в систему или покидает ее. Поэтому событийная модель состоит в данном случае из описания того, что происходит в момент прибытия и окончания обслуживания очередного клиента.
Операторная схема события «прибытие» имеет следующий вид:
1. ПЛАНИРОВАНИЕ СЛЕДУЮЩЕГО ПРИБЫТИЯ В МОМЕНТ ВРЕМЕНИ=ТЕКУЩЕЕ ВРЕМЯ + ВРЕМЯ МЕЖДУ ПРИХОДАМИ;
2. ЕСЛИ ПАРИКМАХЕР “ЗАНЯТ”: ЧИСЛО_ОЖИДАЮЩИХ= ЧИСЛО_ОЖИДАЮЩИХ + 1;
ВОЗВРАТ.
3. ЕСЛИ ПАРИКМАХЕР “СВОБОДЕН”: ПЕРЕВОД ПАРИКМАХЕРА В СОСТОЯНИЕ “ЗАНЯТ”;
4. ПЛАНИРОВАНИЕ СОБЫТИЯ “ОКОНЧАНИЕ” ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ = ТЕКУЩЕЕ ВРЕМЯ + ВРЕМЯ ОБСЛУЖИВАНИЯ;
ВОЗВРАТ.
ОКОНЧАНИЕ.
При выполнении модуля планируется прибытие следующего клиента, что в ходе имитации при неоднократном обращении к этой процедуре позволяет организовать непрерывный поток прибытий. Поведение прибывшего клиента зависит от состояния системы в текущий момент времени. Если парикмахер занят, прибывший клиент становится в очередь, увеличивая ее на единицу. Если парикмахер свободен, прибывший клиент сразу же садится на обслуживание, и изменение состояния системы осуществляется путем перехода парикмахера в состояние «Занят». Должно быть запланировано событие «Конец обслуживания» для данного клиента и в момент времени равный текущему времени плюс время, затрачиваемое парикмахером на обслуживание.
Рассмотрим теперь логику события «Конец обслуживания. Операторная схема этого события имеет следующий вид:
1. ЕСЛИ ЧИСЛО_ОЖИДАЮЩИХ БОЛЬШЕ НУЛЯ:
ЧИСЛО ОЖИДАЮЩИХ = ЧИСЛО ОЖИДАЮЩИХ - 1;
ПЛАНИРОВАНИЕ ОКОНЧАНИЯ ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ РАВНЫЙ ТЕКУЩЕМУ ВРЕМЕНИ + ВРЕМЯ ОБСЛУЖИВАНИЯ;
ВОЗВРАТ.
2. ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ РАВНО НУЛЮ:
ПЕРЕВОД ПАРИКМАХЕРА В СОСТОЯНИЕ “СВОБОДЕН”;
ВОЗВРАТ.
КОНЕЦ
Когда парикмахер заканчивает обслуживание очередного клиента, сначала проверяем, есть ли клиенты, ожидающие обслуживания. Если такие клиенты есть, их число уменьшается и планируется событие «Конец обслуживания» первого из ожидающих клиентов. В противном случае парикмахер переходит в состояние «Свободен».
При имитации на основе использования событийного подхода мы должны воспроизвести хронологию (календарь) событий в соответствующие моменты имитационного времени. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому. ЭВМ работает со списками текущих и будущих событий (Рис.8):