КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Часть 2. Имитационное моделирование 2 страница
Рис. 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-модели. Пример 6. Модель технического контроля изделий Собранные телевизионные приемники после сборки проходят испытания на станции технического контроля. Если в процессе контроля оказывается, что функционирование телевизора ненормально, его переправляют на участок наладки, после которой он вновь возвращается на станцию контроля для повторной проверки. После одной или нескольких проверок телевизор попадает в цех упаковки. Описанная ситуация иллюстрируется схемой, приведенной на рис. 2.38. На одном месте на любом из стеллажей может храниться один телевизор, ожидающий контроля или наладки, соответственно. Телевизионные приемники попадают на станцию контроля каждые 5±2 мин. На станции работают Nk контролеров, каждому из них на проверку телевизора нужно 9±3 мин. Примерно 85 % телевизоров проходят проверку успешно и попадают в цех упаковки, остальные 15 % попадают на участок наладки, на котором работает один рабочий- наладчик. Наладка занимает 30+10 мин.
134 Часть 2. Имитационное моделирование Оптимизация на имитационных моделях 135
Контролеры Рис. 2.38 Пусть каждый запуск имитационной модели моделирует один рабочий день (8 ч = 480 мин.). Сформулируем задание на оптимизацию. Каждый контролер получает заработную плату независимо от времени его полезной работы в течение рабочего дня. Поэтому администрация стремится к тому, чтобы коэффициент полезного действия (КПД) каждого контролера приближался к 1. КПД контролера оценивается как отношение полезного времени его работы, связанного с контролем телевизионных приемников, к продолжительности рабочего дня. Кроме того, администрация учитывает, что количество мест на стеллаже 1 (см. рис. 2.38) ограничено десятью. В этом смысле администрация интерпретирует оптимизацию системы контроля как определение такого количества контролеров, при котором их КПД приближается к 1 при ограничении на объем стеллажа 1. Структура модели иллюстрируется рис. 2.39. Ниже приводится описание переменных модели.
Блок 1 (TV) создает тэги, каждый из которых имитирует телевизионный приемник, поступающий на станцию контроля. Блок 2 (technical control) имитирует станцию контроля, на которой работает Nk контролеров. Если все контролеры заняты, тэги-телевизоры становятся в очередь перед данным блоком и ждут, пока хотя бы один контролер не освободится. Блок 3 (rapairing) — блок наладки. Если наладчик занят, тэги-телевизоры становятся в очередь перед данным блоком и ждут, когда он освободится. После наладки они отправляются на повторный контроль. Блок 4 (wraping) — блок упаковки. 136 Часть 2. Имитационное моделирование Оптимизация на имитационных моделях 137
Следующее описание определяет содержимое основных полей блоков разветвителей и очередей модели. Блок 1. (tv construction) Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect: tag += 1; Разветвитель 1. Decision Type: Multiple Routing condition: technical control: 1; tv construction: 1; ОчередЬ 2 (technical control queue) Sorting Order: FIFO Entering Effect: q+=l; if q>Q_max then Q_max:=q; Departing Effect: q—=1; Блок 2. (technical control) Mean Time: 9; Standard Deviation: 6; Release Condition: Nck>0; (Вхождение в блок возможно, когда свободен хотя бы один контролер.) Beginning Effect: Nck-=1; Launch Effect: Tsk:=Tsk+duration; Системная переменная duration определяет время, в течение которого тэг будет находиться в блоке. Обычно системная переменная duration используется в поле Launch Effect. В данном примере эта переменная используется для определения общего полезного времени контролеров путем накопления интервалов времени, потраченных на контроль телевизионных приемников. Ending Effect: Nck+=1; Разветвитель 2. Decision Type: Probabilistic Routing condition: repairing: 0,15; wraping: 0,85; Очередь 3 (rapairing queue) Sorting Order: FIFO Блок 3. (rapairing) Mean Time: 30; Standard Deviation: 20; Time Distribution: Rectangular Release Condition: State==0; Begining Effect: State—I; Ending Effect: State:=0; Блок 4. (wraping) Release Condition: 1; Внесем в календарь событий операторы присваивания начальных _ значений переменным MS- модели, оператор определения переменной objective и оператор остановки прогона (halt) по истечении 8 рабочих часов (480 мин.). Рис. 2.40. Начальное содержимое календаря событий для модели технического контроля изделий Количество свободных контролеров Nek устанавливается равным общему количеству контролеров Nk (ситуация перед началом работы). Выполнение оператора присваивания (Nck:=Nk) планируется с небольшой задержкой (0.001) сразу после запуска модели (ниже поясняется необходимость такой задержки). Функция objective вычисляется после определения KPD непосредственно перед завершением прогона. Структура этой функции ориентирована на поиск такого количества контролеров (Nk), которое обеспечивало бы, с одной стороны, минимальную длину очереди (Q_max), а с другой — эффективную работу контролеров (KPD, близкий к единице). В структуре формулы: objective:=Q_max+(l—KPD) оба этих фактора достигаются при поиске такого значения Nk, при котором objective достигает минимума. Определенная таким образом функция objective и будет определять целевую функцию оптимизации модели. Заметьте, что в отличие от целевой ячейки электронной таблицы определенная здесь целевая функция оптимизации имитационной модели не имеет аналитической зависимости от варьируемой переменной Nk. Запуск процесса оптимизации связан с выбором пункта Optimize из меню Micro Saint {Execute —> Optimize). Результатом этого выбора будет запуск приложения OptQuest и открытие главного окна OptQuest. Определение оптимизационной задачи Прежде всего необходимо создать новый файл с расширением ОРТ или открыть существующий файл, связанный с оптимизируемой имитационной моделью (подпункт New или Open пункта главного меню File, соответственно, рис. 2.41). В дальнейшем в таком файле будут храниться параметры оптимизации. При создании нового файла, для того чтобы определить оптимизационную задачу, необходимо: 1) выбрать изменяемые переменные из переменных имитационной модели; 138 Часть 2. Имитационное моделирование Оптимизация на имитационных моделях 139
Рис. 2.41. Главное окно OptQuest (исходное состояние) 2) указать — максимизировать или минимизировать целевую фун 3) если необходимо, ввести дополнительные ограничения для из Выбор изменяемых переменных (Edit —> Variables) приведет к открытию окна рис. 2.42. Двойной щелчок мыши в поле Select (рис. 2.42) изменяет статус переменной: Yes — переменная выбрана для изменения OptQuest, No — нет. В поле Name отображаются имена переменных MS-модели. В полях Lower Bound и Upper Bound указываются соответственно возможная нижняя и верхняя границы для соответствующей переменной. Для облегчения поиска можно указать предполагаемые значения изменяемой переменной в колонке Suggested Value. Если предполагаемые значения выходят за границы или не удовлетворяют ограничениям, то они игнорируются. Тип переменной (Integer/Real) переносится в таблицу рис. 2.42 из MS-модели автоматически. Установка параметров оптимизации (Edit —> Settings) в окне рис. 2.41 связана с определением вида оптимизации (поиск максимума или минимума целевой функции) и установкой количества прогонов модели (обычно выбирается один). Если выбирается большее количество запусков, то значение целевой функции усредняется по ко-, личеству запусков (см. рис. 2.48). Ограничения (Edit —> Constraints) в окне рис. 2.41 устанавливаются только для входных переменных. OptQuest позволяет пользователю задавать произвольное число ограничений в виде линейной комбинации изменяемых переменных. Если предположить, что изменяемые переменные — это Xi (для i = 1,..., п), то любое ограничение может быть записано в следующей форме: al*Xl + а2*Х2 +... + ап*Хп # Ь, где ai и b — константы, а знак '#' заменяет одно из следующих отношений: '=', ':=', '= =' (отношения равенства) или '<=', '<','>=','>' (отношения порядка). В нашем примере одна изменяемая переменная — число контролеров Nk. Мы задаем для нее единственное ограничение: Nk <= 6. Для этого случая окно ограничений будет выглядеть следующим образом (рис. 2.43). Рис. 2.42.Таблица выбора изменяемых переменных В этом окне представлен весь список переменных нашей имитационной модели. Из них мы должны выбрать только те переменные, которые для имитационной модели являются входными. Значения таких переменных не должны вычисляться или изменяться внутри MS-модели. Только OptQuest в процессе оптимизации может варьировать значениями этих переменных, ориентируясь на достижение оптимального значения целевой функции. В нашей)модели такой входной переменной является только одна — это переменная Nk, остальные зависят от нее (прямо или косвенно).
Часть 2. Имитационное моделирование Установка дополнительных опций Меню Опций (Options) рис. 2.41 позволяет установить время оптимизации и выбрать вариант алгоритма оптимизации. Опция «Ускоритель нейронных сетей» (Neural Network Accelerator) разработана, чтобы улучшить мощность поиска OptQuest'a. При использовании нейронной сети OptQuest собирает информацию о получаемых значениях целевой функции при различных значениях изменяемых переменных. Затем эта информация используется для обучения нейронной сети в процессе поиска. OptQuest автоматически определяет как много данных требуется и как часто нужно повторять обучение, основываясь на том, что время проведения имитации модели и время оптимизации ограничено пользователем. В меню опции «Ускоритель нейронных сетей» 4 пункта: 1. No Neural Network (Без нейронной сети). Этот механизм поиска 2. Conservative Neural Network (Консервативная нейронная сеть). 3. Aggressive Neural Network (Агрессивная нейронная сеть). Эта опция 4. Extremely Aggressive Neural Network (Экстремально агрессивная
Дата добавления: 2015-06-27; Просмотров: 377; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |