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


Дополнительные методы и средства имитации

125



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

Часть 2. Имитационное моделирование - student2.ru Рис. 2.31. Средства конструирования многоуровневых моделей

Для знакомства с ними обобщим описанный в разделе «Быстрое начало» пример 1.

Допустим, что на автозаправочной станции имеется магазин и каждый водитель после заправки автомобиля может подъехать к этому магазину и сделать несколько покупок. Такая обобщенная модель в дополнение к введенным ранее блокам будет содержать еще модель обслуживания покупателей в магазине. Не определяя детали этой вновь вводимой компоненты, выделим для нее специальный подуро­вень модели. Для введения этого подуровня в структуру модели следу­ет нажать кнопку Часть 2. Имитационное моделирование - student2.ru и связать появившийся на экране монитора прямоугольник с ранее определенными блоками.

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

В этой модели окно EXAMPL1.MOD: Network О EXAMPL1 опре­деляет структуру модели примера 1 с добавленным фрагментом моде­ли магазина, которую мы назвали «Shopping». Прямоугольная рамка блока с номером 3 определяет, что модель, заключенная в этом блоке, обладает собственной сетевой структурой,которую мы определили в окне EXAMPL1.MOD: Network 3 Shopping как состоящую из трех блоков задач: осмотр магазина (survey), оплату покупок у кассы (pay desk) и выход (exit).

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



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

Часть 2. Имитационное моделирование - student2.ru Рис. 2.32. Пример многоуровневой модели

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

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

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

126

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

Дополнительные методы и средства имитации

127



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

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

Ниже на рис. 2.34 приведен вариант фонового рисунка, созданно­го для рассматриваемого примера в редакторе Paint.

При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает структуру моде­ли значительно более наглядной и легко понимаемой.

Анимация имитационных моделей

Для презентации имитационных моделей и наглядного представ­ления процессов функционирования исследуемой системы использу­ются специальные средства анимации модели. С помощью этих средств в отдельном окне Action View,предназначенном для просмот­ра анимационных картин, строится сцена, на которой в процессе имитации будут демонстрироваться процессы перемещения объектов (тэгов), определяющие динамику развития исследуемой системы.

Для того чтобы реализовать анимацию созданной модели, необхо­димо:

• определить фон, на котором будут развиваться анимационные
процессы;

• связать динамику изменения сцены с программой модели.

Окно сцены (Action View) открывается нажатием кнопки (средний ряд панели инструментов). Часть 2. Имитационное моделирование - student2.ru

Проиллюстрируем анимацию имитационной модели на примере 1 «Модель обслуживания автомобилей на заправочной станции» (см. рис. 2.1).

Определение фона

Этот этап обычно связан с использованием готового рисунка или его созданием с использованием графического редактора. В качестве такого редактора проще всего использовать Paint, который включен в группу «Стандартные» общего списка программ Windows. Рисунок со­храняется в файле с расширением BMP.

Для вставки фонового рисунка в окно Action View необходимо:

• открыть вставляемый рисунок в графическом редакторе,

• скопировать его (в буферную область памяти),

• открыть окно Action View,

• вставить рисунок в окно Action View.

Последнее действие реализуется с использованием меню Micro

Saint (раздел Edit — Paste) или кнопкой Часть 2. Имитационное моделирование - student2.ru (верхний ряд панели ин­струментов).

Динамика изменения сцены

Для реализации анимационной динамики необходимо выбрать изображения динамических объектов (иконки), которые в процессе моделирования будут перемещаться по сцене на подготовленном фоне. Иконки выбираются в меню Action View, раздел View Icons. По­скольку для рассматриваемого примера движущимся объектом явля­ется автомобиль, выберем иконку с изображением автомобиля (на­пример, иконку с номером 447). Все процессы имитации движения автомобилей в программе модели будут иллюстрироваться передвиже­нием соответствующих иконок на фоновом рисунке. Траектории та­кого передвижения определяются отрезками прямых с заданными на­чальной и конечной точками. Указание этих точек проводится непо­средственно на фоновом рисунке в окне Action View с помощью специальной панели инструментов (нижний ряд справа).



Часть 2. Имитационное моделирование - student2.ru
содержит три кнопки

Панель инструментов для размещения иконки объекта на сцене

левая кнопка с изображением трейлера (курсор-трейлер) для размещения иконки на сцене в точке начала траектории (в этой точке иконка появляется на сцене);

средняя кнопка с изображением стрелки (курсор-стрелка) для перемещения иконки по сцене в соответствии с планируемым отрезком траектории от точки начала отрезка до точки его конца;

128

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

Дополнительные методы и средства имитации

129



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

 

• правая кнопка с изображением перечеркнутого трейлера (кур­сор-крест) для удаления иконки со сцены в точке окончания траектории.

После выполнения первого действия окно Action View будет вы­глядеть, как показано на рис. 2.35.

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

Часть 2. Имитационное моделирование - student2.ru Рис. 2.35. Конструирование анимационной сцены — 1

В левом нижнем углу окна установлена точка появления иконки автомобиля на сцене — в это место фонового рисунка устанавливает­ся курсор-трейлер и делается щелчок левой кнопкой мыши. При этом в строке под заголовком Action View (строке оператора) размещается оператор создания изображения объекта (автомобиля) на сцене create. Этот оператор фиксирует, что мы создали объект (tag) с иконкой но­мер 447, с координатами места на сцене, где разместилась иконка объекта (X = 38, Y = ИЗ).

Для того чтобы оператор создания изображения объекта на сцене (create) выполнялся синхронно с оператором создания объекта в мо­дели, его (оператор create) необходимо скопировать из окна Action View и вставить в соответствующее место программы. Копирование оператора в окне Action View связано с использованием команды Сору редактора Edit, а вставка в окно задачи — команды Paste. Для рассматриваемого примера такую вставку следует сделать в раздел Be­ginning Effectблока car coming (см. рис. 2.5). При этом каждый раз, когда в модели появляется новый тэг-автомобиль, приехавший на за­правочную станцию, в окне Action View на сцене появляется его иконка, иллюстрирующая событие появления автомобиля.

Анимация передвижения автомобиля от точки начала траектории до бензоколонки связана с «перетаскиванием» иконки объекта от точ­ки его появления на сцене до изображения бензоколонки. Для этого необходимо курсором-стрелкой (средняя кнопка панели инструмен­тов анимации) перетащить иконку в нужное место экрана.

При этом в левом верхнем углу окна Action View появится опера­тор перемещения объекта move,который определяет новые координа­ты положения иконки объекта на сцене и время, за которое произош­ло перемещение (duration). Этот оператор должен быть скопирован и перенесен в поле Launch Effectблока car coming (см. рис. 2.5).

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

Часть 2. Имитационное моделирование - student2.ru Рис. 2.36. Конструирование анимационной сцены — 2

Удаление иконки объекта со сцены выполняется с помощью пра­вой кнопки панели инструментов анимации. Для этого курсор-крест, связанный с этой кнопкой, устанавливается на удаляемой иконке объ­екта и делается щелчок кнопкой мыши. Оператор удаления Disposeпоявляется в строке операторов окна Action View и переносится в со­ответствующее место программы модели аналогично. (Если мы огра­ничимся только анимацией приезда автомобилей на заправку, этот оператор должен быть размещен в поле Ending Effectблока car coming.)

Таким образом, сделанные анимационные добавления в програм­му модели приводят к описанию блока car coming, приведенному на рис. 2.37.

При запуске этой программы в окне Action View можно наблю­дать динамический анимационный процесс приезда автомобилей на заправочную станцию.

130

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

Дополнительные методы и средства имитации

131



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

 

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

Рис. 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. Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Дайте характеристику основных датчиков случайных чисел.

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. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru

Контролеры Рис. 2.38

Пусть каждый запуск имитационной модели моделирует один ра­бочий день (8 ч = 480 мин.).

Сформулируем задание на оптимизацию.

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

Структура модели иллюстрируется рис. 2.39.

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

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

Имя переменной Смысловое содержание Тип переменной Начальное значение
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



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

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

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

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

Блок 1. (tv construction) Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect:tag += 1;

Часть 2. Имитационное моделирование - student2.ru Разветвитель 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; (Вхождение в блок возможно, когда свободен хотя бы один конт­ролер.)

BeginningEffect: 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. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru Часть 2. Имитационное моделирование - student2.ru

Часть 2. Имитационное моделирование - student2.ru Рис. 2.41. Главное окно OptQuest (исходное состояние)

2) указать — максимизировать или минимизировать целевую фун­
кцию модели;

3) если необходимо, ввести дополнительные ограничения для из­
меняемых переменных.

Выбор изменяемых переменных (Edit —> Variables) приведет к от­крытию окна рис. 2.42.

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

Двойной щелчок мыши в поле 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. Имитационное моделирование - student2.ru
 
    Часть 2. Имитационное моделирование - student2.ru
      Часть 2. Имитационное моделирование - student2.ru
 

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

Рис. 2.42.Таблица выбора изменяемых переменных

В этом окне представлен весь список переменных нашей имита­ционной модели. Из них мы должны выбрать только те переменные, которые для имитационной модели являются входными. Значения та­ких переменных не должны вычисляться или изменяться внутри MS-модели. Только OptQuest в процессе оптимизации может варьи­ровать значениями этих переменных, ориентируясь на достижение оптимального значения целевой функции. В нашей)модели такой входной переменной является только одна — это переменная Nk, остальные зависят от нее (прямо или косвенно).

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

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 (Экстремально агрессивная
нейронная сеть). Выбор этого пункта сильно ускоряет поиск, увели­
чивая риск потерять некоторые хорошие решения. Рекомендуется для
моделей, имитация которых очень продолжительна и в которых до­
статочно приближенного решения.

Запуск и остановка поиска

Этим целям служит пункт меню Run рис. 2.41: когда все готово к оптимизации, нажмите Start, для остановки поиска — Stop (или кла­вишу Esc).

Наши рекомендации