|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Часть 2. Имитационное моделированиеДополнительные методы и средства имитации 125
Рис. 2.31. Средства конструирования многоуровневых моделей Для знакомства с ними обобщим описанный в разделе «Быстрое начало» пример 1. Допустим, что на автозаправочной станции имеется магазин и каждый водитель после заправки автомобиля может подъехать к этому магазину и сделать несколько покупок. Такая обобщенная модель в дополнение к введенным ранее блокам будет содержать еще модель обслуживания покупателей в магазине. Не определяя детали этой вновь вводимой компоненты, выделим для нее специальный подуровень модели. Для введения этого подуровня в структуру модели следует нажать кнопку и связать появившийся на экране монитора прямоугольник с ранее определенными блоками. Затем для определения структуры модели обслуживания покупателей в магазине следует перейти в окно подуровня и определить эту модель обычными средствами. В результате мы получим двухуровневую структуру, приведенную на рис. 2.32. В этой модели окно EXAMPL1.MOD: Network О EXAMPL1 определяет структуру модели примера 1 с добавленным фрагментом модели магазина, которую мы назвали «Shopping». Прямоугольная рамка блока с номером 3 определяет, что модель, заключенная в этом блоке, обладает собственной сетевой структурой, которую мы определили в окне EXAMPL1.MOD: Network 3 Shopping как состоящую из трех блоков задач: осмотр магазина (survey), оплату покупок у кассы (pay desk) и выход (exit). Любой блок-прямоугольник, используемый в процессе разработки модели, определяет собственную сетевую диаграмму. Таким образом, в рамках одной общей модели можно определить множество вло-
Рис. 2.32. Пример многоуровневой модели женных сетевых структур. Заметим, что нумерация блоков при этом остается сквозной, проходящей через все сетевые диаграммы, составляющие модель системы. Отметим, что в тех случаях, когда сетевой блок-прямоугольник имеет выходящие стрелки, в его сетевой структуре в качестве завершающего элемента используется псевдоблок в виде окружности. Этот псевдоблок не имеет своего номера, он фактически является двойником блока, следующего за сетевым в диаграмме верхнего уровня. Сказанное иллюстрируется рис. 2.33. 126 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 127
При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает структуру модели значительно более наглядной и легко понимаемой. Анимация имитационных моделей Для презентации имитационных моделей и наглядного представления процессов функционирования исследуемой системы используются специальные средства анимации модели. С помощью этих средств в отдельном окне Action View, предназначенном для просмотра анимационных картин, строится сцена, на которой в процессе имитации будут демонстрироваться процессы перемещения объектов (тэгов), определяющие динамику развития исследуемой системы. Для того чтобы реализовать анимацию созданной модели, необходимо: • определить фон, на котором будут развиваться анимационные • связать динамику изменения сцены с программой модели. Окно сцены (Action View) открывается нажатием кнопки (средний ряд панели инструментов). Проиллюстрируем анимацию имитационной модели на примере 1 «Модель обслуживания автомобилей на заправочной станции» (см. рис. 2.1). Определение фона Этот этап обычно связан с использованием готового рисунка или его созданием с использованием графического редактора. В качестве такого редактора проще всего использовать Paint, который включен в группу «Стандартные» общего списка программ Windows. Рисунок сохраняется в файле с расширением BMP. Для вставки фонового рисунка в окно Action View необходимо: • открыть вставляемый рисунок в графическом редакторе, • скопировать его (в буферную область памяти), • открыть окно Action View, • вставить рисунок в окно Action View. Последнее действие реализуется с использованием меню Micro Saint (раздел Edit — Paste) или кнопкой (верхний ряд панели инструментов). Динамика изменения сцены Для реализации анимационной динамики необходимо выбрать изображения динамических объектов (иконки), которые в процессе моделирования будут перемещаться по сцене на подготовленном фоне. Иконки выбираются в меню Action View, раздел View Icons. Поскольку для рассматриваемого примера движущимся объектом является автомобиль, выберем иконку с изображением автомобиля (например, иконку с номером 447). Все процессы имитации движения автомобилей в программе модели будут иллюстрироваться передвижением соответствующих иконок на фоновом рисунке. Траектории такого передвижения определяются отрезками прямых с заданными начальной и конечной точками. Указание этих точек проводится непосредственно на фоновом рисунке в окне Action View с помощью специальной панели инструментов (нижний ряд справа).
Панель инструментов для размещения иконки объекта на сцене левая кнопка с изображением трейлера (курсор-трейлер) для размещения иконки на сцене в точке начала траектории (в этой точке иконка появляется на сцене); средняя кнопка с изображением стрелки (курсор-стрелка) для перемещения иконки по сцене в соответствии с планируемым отрезком траектории от точки начала отрезка до точки его конца; 128 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 129
• правая кнопка с изображением перечеркнутого трейлера (курсор-крест) для удаления иконки со сцены в точке окончания траектории. После выполнения первого действия окно Action View будет выглядеть, как показано на рис. 2.35. Рис. 2.35. Конструирование анимационной сцены — 1 В левом нижнем углу окна установлена точка появления иконки автомобиля на сцене — в это место фонового рисунка устанавливается курсор-трейлер и делается щелчок левой кнопкой мыши. При этом в строке под заголовком Action View (строке оператора) размещается оператор создания изображения объекта (автомобиля) на сцене create. Этот оператор фиксирует, что мы создали объект (tag) с иконкой номер 447, с координатами места на сцене, где разместилась иконка объекта (X = 38, Y = ИЗ). Для того чтобы оператор создания изображения объекта на сцене (create) выполнялся синхронно с оператором создания объекта в модели, его (оператор create) необходимо скопировать из окна Action View и вставить в соответствующее место программы. Копирование оператора в окне Action View связано с использованием команды Сору редактора Edit, а вставка в окно задачи — команды Paste. Для рассматриваемого примера такую вставку следует сделать в раздел Beginning Effect блока car coming (см. рис. 2.5). При этом каждый раз, когда в модели появляется новый тэг-автомобиль, приехавший на заправочную станцию, в окне Action View на сцене появляется его иконка, иллюстрирующая событие появления автомобиля. Анимация передвижения автомобиля от точки начала траектории до бензоколонки связана с «перетаскиванием» иконки объекта от точки его появления на сцене до изображения бензоколонки. Для этого необходимо курсором-стрелкой (средняя кнопка панели инструментов анимации) перетащить иконку в нужное место экрана. При этом в левом верхнем углу окна Action View появится оператор перемещения объекта move, который определяет новые координаты положения иконки объекта на сцене и время, за которое произошло перемещение (duration). Этот оператор должен быть скопирован и перенесен в поле Launch Effect блока car coming (см. рис. 2.5). Рис. 2.36. Конструирование анимационной сцены — 2 Удаление иконки объекта со сцены выполняется с помощью правой кнопки панели инструментов анимации. Для этого курсор-крест, связанный с этой кнопкой, устанавливается на удаляемой иконке объекта и делается щелчок кнопкой мыши. Оператор удаления Dispose появляется в строке операторов окна Action View и переносится в соответствующее место программы модели аналогично. (Если мы ограничимся только анимацией приезда автомобилей на заправку, этот оператор должен быть размещен в поле Ending Effect блока car coming.) Таким образом, сделанные анимационные добавления в программу модели приводят к описанию блока car coming, приведенному на рис. 2.37. При запуске этой программы в окне Action View можно наблюдать динамический анимационный процесс приезда автомобилей на заправочную станцию. 130 Часть 2. Имитационное моделирование Дополнительные методы и средства имитации 131
Рис. 2.37. Окно описания задачи car coming с элементами анимации Для того чтобы траектория движения автомобиля «оставляла Основным вопросом анимации является правильная и корректная вставка операторов анимации в текст программы модели. Операторы create и dispose связаны с созданием и удалением иконки объекта (тэга), поэтому они должны синхронизироваться с созданием и удалением самого объекта. Оператор create обычно вставляется в поле Beginning Effect, a dispose — в поле Ending Effect. Оператор перемещения move связан с перемещением иконки тэга из точки начала отрезка траектории в точку конца за время duration. Duration — это то время, которое тэг проводит в блоке, поэтому оператор move всегда размещается в поле Launch Effect. Попутно заметим, что duration является системной переменной, связанной с активным тэгом, т. е. тэгом, который обрабатывается в модели в текущий момент времени. В сложных случаях для получения наглядной анимационной картины может оказаться необходимым добавление в модель специальных блоков, которые служат только целям создания анимации. Например, для рассматриваемого примера мы ограничились анимацией только приезда автомобилей на заправочную станцию. Фаза ожидания освобождения бензоколонки и фаза собственно заправки не ани-мируются, поскольку автомобиль на этих фазах находится в неподвижном состоянии. Анимация фазы отъезда связана с уточнением дополнительных обстоятельств — как автомобиль уезжает? Просто его иконка исчезает с экрана монитора или движется по некоторой траектории до точки исчезновения? Для анимации этой фазы необходимо получить ответы на подобные вопросы и только после этого модифицировать модель. Если отъезд автомобиля будет связан с созданием траектории отъезда, в модель придется добавить еще один блок. Существует и другая, не менее важная проблема, связанная с анимацией. В модели (и на сцене) могут одновременно присутствовать несколько динамических объектов. Если такие объекты движутся по одной и той же траектории, то в одном месте траектории могут находиться несколько объектов одновременно. При этом иконка одного из объектов может заслонять другую, что лишает анимационную картину наглядности. Для преодоления этого эффекта можно использовать, например, метод смещения на сцене иконок разных объектов относительно друг друга путем введения случайной аддитивной составляющей в их координаты. Например, вместо оператора create (tag,447,38,113) использовать оператор create (tag,447,38+ randomlnt (0,20),113+ rando-mInt(0,20)). Такой оператор каждый раз при появлении нового объекта в модели будет выводить на сцену иконку, координаты которой будут случайным образом выбираться из интервалов (38-58) для X и (113-133) для Y. На экране это выглядит как некоторая «туча» иконок, связанных с приезжающими и отъезжающими автомобилями. Для более наглядной анимации динамики очереди используются более сложные механизмы, требующие специальных расчетов координат иконок на сцене. Однако все трудности составления программ анимации с лихвой окупаются наглядной иллюстрацией динамических взаимодействий в системе. Контрольные вопросы и предложения 1. Назовите основные виды потоков в системах и определите их отличитель 2. Как используется массив переменных для реализации индивидуальных 3. Охарактеризуйте основные операторы языка описания эффектов модели. 132 Часть 2. Имитационное моделирование Оптимизация на имитационных моделях 133
4. Дайте характеристику основных датчиков случайных чисел. 5. Для каких целей в модель вводятся функции? 6. Как задается эмпирическое распределение вероятностей в модели? 7. Чем различаются режимы «Symbols» и «Numbers» в динамике работы мо 8. Ваши действия при получении сообщения «Unrecognized word» при отла 9. Ваши действия при получении сообщения «Matherror couldn't create the dia
10. Охарактеризуйте использование исполнительного монитора в процессе 11. Охарактеризуйте использование календаря событий в процессе моделиро 12. Какие виды событий размещаются в календаре? 13. Как связано модельное время с реальным? 14. Как реализуется конструирование многоуровневых моделей? 15. Как конструируется анимационная картина в окне «Action View»? 16. Как интерпретируется переменная duration? Поиск решения: оптимизация на имитационных моделях Одно из наиболее известных направлений оптимизации — мате магическое программирование и его реализация в виде информаци онной системы на электронных таблицах — было описано в первой части этой монографии. Однако многие задачи бизнеса и производства не удается сформулировать в категориях математического программирования. Имитация как метод исследования сложных систем основана, как уже отмечалось, на принципе копирования поведения реальной или гипотетической системы. Каждый «прогон» модели связан с имитацией конкретного варианта организации системы. В классической технологии имитационного моделирования для выбора оптимальных решений необходимо исследовать каждый из возможных вариантов такой организации, что существенно увеличивает время компьютерного моделирования. Статистические аспекты имитационного моделирования связаны с определением показателей эффективности системы на основе анализа трассы состояний динамического процесса. При этом результат исследования всегда является статистикой (функцией от наблюдаемых экспериментальных данных), в то время как в моделях математического программирования при исследовании систем на электронных таблицах результат (целевая ячейка) формируется путем вычисления функций, представляющих аналитические зависимости между переменными модели. Эти обстоятельства выделяют проблему оптимизации на имитационных моделях как самостоятельный класс задач, позволяющий уже в процессе прогона модели реализовать вариации управляемых переменных с целью получения оптимального решения. Описываемая ниже оптимизационная процедура OptQuest реализует специальный немонотонный поиск наилучшего решения и находит эффективную траекторию приближения к такому решению. Оптимизация на имитационных моделях в системе OptQuest OptQuest — это приложение, ориентированное на оптимизацию имитационных моделей, созданных с помощью Micro Saint (MS-мо-делей), и позволяющее пользователям автоматически находить оптимальные решения сложных задач. Для использования этого приложения в MS-модели необходимо определить специальную переменную objective, которая будет показывать, какая комбинация значений варьируемых переменных модели будет наилучшей. Для иллюстрации использования приложения OptQuest рассмотрим пример MS-модели. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |