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