Главная > Разработка имитационных моделей в среде MatLab
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

1.6.2. Дискретное имитационное моделирование

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

При дискретной имитации состояние системы может меняться только в моменты свершения событий. Так как состояние системы не изменяется между этими моментами, полный динамический портрет состояний системы может быть получен путем продвижения имитационного времени от одного события к другому.

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

Функционирование дискретной имитационной модели мож­но задать следующим образом: определяя изменения состоя­ния системы, происходя-щие в момент свершения событий; опи­сывая действия, в которых принимают участие элементы си­стемы, или процесс, через который проходят элементы.

 Взаимосвязь между понятиями событие, действие и процесс представлена на рис. 1.7.

 

Событие происходит в тот момент, когда принимается решение о начале или окончании действия. Процесс — это ориентированная во времени последователь­ность событий, которая может состоять из нескольких дейст­вий. Эти представления лежат в основе трех альтернативных методологических подходов к построению дискретных имита­ционных моделей, называемых обычно событийным подходом, подходом сканирования активностей и процессно-ориентированным подходом.

 

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

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

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

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

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

ЕСЛИ КАССИР ЗАНЯТ: ЧИСЛО ОЖИДАЮЩИХ=ЧИСЛО ОЖИДАЮ-

ЩИХ+1; ВОЗВРАТ.

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

КОНЕЦ

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

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

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

ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ РАВНО НУЛЮ: ПЕРЕВОД КАССИРА В

СОСТОЯНИЕ «СВОБОДЕН»; ВОЗВРАТ.

КОНЕЦ

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

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

 

Подход сканирования активностей

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

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

 

Процессно-ориентированный подход

Многие имитационные модели содержат последовательности компонентов, которые возникают в них по определенной схеме, например очередь, в которой клиенты ожидают обслуживания. Логика возникновения компонентов по требуемой схеме может быть обобщена и задана в одном операторе. Имитационный язык затем транслирует такие операторы в соответствующую последовательность событий, происходящих с компонентами модели. Имитационные языки, включающие операторы для моделирования процесса прохождения элементов через систе­му, обычно называются процессно-ориентированными. Эти опе­раторы определяют последовательность событий, которые ав­томатически выполняются имитационным языком, по мере того как элементы продвигаются через систему. Например, следую­щий набор операторов может быть использован для описания процесса в модели банка:

СОЗДАВАТЬ ПРИБЫВАЮЩИХ КЛИЕНТОВ ЧЕРЕЗ КАЖДЫЕ Т ЕДИНИЦ ВРЕМЕНИ;

ОЖИДАТЬ КАССИРА;

ПРОДВИНУТЬ ВРЕМЯ НА ПРОДОЛЖИТЕЛЬНОСТЬ ОБСЛУЖИВАНИЯ;

ОСВОБОДИТЬ КАССИРА;

УДАЛИТЬ КЛИЕНТА;

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

Из приведенного примера видно, что процессно-ориентиро­ванный подход сочетает в себе черты событийного подхода и подхода сканирования активностей. Он обеспечивает описание прохождения компонентов через процесс, содержащий ресур­сы. Простота этого подхода состоит в том, что определяемая операторами логика событий заложена в самом имитационном языке. Однако, так как мы обычно вынуждены ограничивать набор стандартных операторов языка, этот подход является менее гибким, чем событийный. Кроме того, требуется посто­янный анализ состояния ресурсов после их использования.

 

Categories

1
Оглавление
email@scask.ru