Студопедия

КАТЕГОРИИ:


Архитектура-(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 с элементами анимации

Для того чтобы траектория движения автомобиля «оставляла
след» на сцене, необходимо использовать разделы Dot, Line и Refresh
меню Action View. Они связаны с видом представления траектории
(точки, линии, стирание траекторий).

Основным вопросом анимации является правильная и корректная вставка операторов анимации в текст программы модели. Операторы create и dispose связаны с созданием и удалением иконки объекта (тэга), поэтому они должны синхронизироваться с созданием и удале­нием самого объекта. Оператор create обычно вставляется в поле Be­ginning 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­
log box» при отладке модели?

 

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.


Ниже приводится описание переменных модели.

 

Имя переменной Смысловое содержание Тип переменной Начальное значение
State Состояние наладчика: 0 - свободен, 1 - занят Integer  
Nk Количество контролеров на станции контроля Integer  
Nek Количество свободных контролеров Integer  
q Текущая длина очереди перед станцией контроля Integer  
Qjnax Максимальная длина очереди перед станцией контроля Integer  
Tsk Общее полезное время занятости контролеров Real  
KPD Коэффициент полезного действия контролера - отношение полезного времени к общему времени работы: KPD:=(Tsk/Nk)/480;    
clock системная переменная Real  
duration системная переменная Real  
objective системная переменная Real  
run системная переменная Integer  
seed системная переменная Integer  
tag системная переменная Integer  

Блок 1 (TV) создает тэги, каждый из которых имитирует телевизи­онный приемник, поступающий на станцию контроля.

Блок 2 (technical control) имитирует станцию контроля, на кото­рой работает Nk контролеров. Если все контролеры заняты, тэги-те­левизоры становятся в очередь перед данным блоком и ждут, пока хо­тя бы один контролер не освободится.

Блок 3 (rapairing) — блок наладки. Если наладчик занят, тэги-те­левизоры становятся в очередь перед данным блоком и ждут, когда он освободится. После наладки они отправляются на повторный конт­роль.

Блок 4 (wraping) — блок упаковки.


136


Часть 2. Имитационное моделирование


Оптимизация на имитационных моделях


137


 


           
     


objective:=Q_max+(l-KPD); haltQ

Следующее описание определяет содержимое основных полей блоков разветвителей и очередей модели.

Блок 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 con­struction: 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 определяет время, в течение кото­рого тэг будет находиться в блоке. Обычно системная переменная du­ration используется в поле 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 Dist­ribution: Rectangular Release Condition: State==0; Begining Effect: Sta­te—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, остальные зависят от нее (прямо или косвенно).


       
   

140
141

Оптимизация на имитационных моделях

Часть 2. Имитационное моделирование Установка дополнительных опций

Меню Опций (Options) рис. 2.41 позволяет установить время оп­тимизации и выбрать вариант алгоритма оптимизации.

Опция «Ускоритель нейронных сетей» (Neural Network Accelera­tor) разработана, чтобы улучшить мощность поиска OptQuest'a. При использовании нейронной сети OptQuest собирает информацию о по­лучаемых значениях целевой функции при различных значениях из­меняемых переменных. Затем эта информация используется для обу­чения нейронной сети в процессе поиска. OptQuest автоматически определяет как много данных требуется и как часто нужно повторять обучение, основываясь на том, что время проведения имитации моде­ли и время оптимизации ограничено пользователем.

В меню опции «Ускоритель нейронных сетей» 4 пункта:

1. No Neural Network (Без нейронной сети). Этот механизм поиска
на каждом шаге оптимизации (Simulation) формирует новые значения
входных переменных и отправляет их в имитационную MS-модель
для формирования оценки целевой функции objective. Использование
этого механизма предпочтительно для имитационных моделей с ма­
лым количеством изменяемых переменных.

2. Conservative Neural Network (Консервативная нейронная сеть).
Этот алгоритм поиска связан с использованием консервативного пра­
вила для того, чтобы отбрасывать потенциально плохие решения. Ис-
спользование этого пункта целесообразно, если на имитацию отведе­
но относительно мало времени.

3. Aggressive Neural Network (Агрессивная нейронная сеть). Эта опция
предпочтительна для большинства моделей и указана по умолчанию.

4. Extremely Aggressive Neural Network (Экстремально агрессивная
нейронная сеть). Выбор этого пункта сильно ускоряет поиск, увели­
чивая риск потерять некоторые хорошие решения. Рекомендуется для
моделей, имитация которых очень продолжительна и в которых до­
статочно приближенного решения.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 377; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.07 сек.