Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические работы.docx
Скачиваний:
72
Добавлен:
22.05.2015
Размер:
3.61 Mб
Скачать

Практическая работа №4 Поиск решения: оптимизация на имитационных мо­делях

Цель работы: Поиск решения: оптимизация на имитационных мо­делях. Оптимизация на имитационных моделях в системе OptQuest. Процесс оптимизации

Задание и порядок выполнения работы

  1. Выделить особенности процесса оптимизации на имитационных моделях.

  2. Рассмотреть постановку задачи технического контроля изделий.

  3. Описать результаты оптимизации

  4. Сделать вывод

Основы теории

4.1. Особенности процесса оптимизации на имита­ционных моделях

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

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

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

4.2. Оптимизация на имитационных моделях в сис­теме OptQuest

4.2.1.Системa OptQuest

OptQuest - это приложение, ориентированное на оптимизацию имитационных моделей, созданных с помощью MicroSaint (MS- моделей), и позволяющее пользователям автоматически находить оптимальные решения сложных задач.

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

Для иллюстрации использования приложения OptQuest рас­смотрим пример MS-модели.

4.2.2.Постановка задачи технического контроля изделий

Собранные коробки передач после сборки проходят испыта­ния на станции технического контроля. Если в процессе контроля оказывается, что функционирование коробки передач ненормально, его переправляют на участок наладки, после которой он вновь воз­вращается па станцию контроля для повторной проверки. После од­ной или нескольких проверок коробка передач попадает на склад. Па одном месте на любом из стеллажей может храниться одна ко­робка передач, ожидающая контроля или наладки, соответственно. Коробки передач попадают на станцию контроля каждые 5±2 мин. На станции работают Nk контролеров, каждому из них на проверку коробки передач нужно 9±3 мин. Примерно 85% коробок передач проходят проверку успешно и попадают на склад, остальные 15% попадают на участок наладки, на котором работает один рабочий - наладчик. Наладка занимает 30-+10 мин.

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

Определить, при каком количестве контролеров КПД макси­мально.

4.2.3. Разработка модели

Описанная ситуация иллюстрируется схемой, приведенной на рис. 4.1.

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

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

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

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

4.2.4. Описание переменных модели

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

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

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

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

Блок 4 (wraping) - блок сборки.

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

Блок 1. (tk construction)

Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect: tag+=l;

Разветвитель 1.

Decision Type: Multiple; Routing condition:

technical control: 1; tk construction: 1;

Очередь 2. (technical control queue)

Sorting Order: FIFO; Entering Effect: q+=l ; if q>Q_max then Q_max:=q; Departing Effect: q-=l ;

Блок 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: Nek + = 1;

Разветвитель 2.

Decision Type: Probabilistic Routing condi­tion: repairing: 0,15; wraping: 0,85;

Очередь 3. (rapairing queue)

Sorting Order: FIFO,

Блок 3. (rapairing) Mean Time: 30; Standard De­viation: 20; Time Distribution: Rectangular Re­lease Condition: State==0; Begining Effect: State:=1; Ending Effect: State:=0;

Блок 4. (wraping) Release Condition: 1;

Внесем в календарь событий операторы присваивания на­чальных значений переменным MS - модели, оператор определения переменной objective и оператор остановки прогона (halt) по исте­чении 8 рабочих часов (480 мин).

Количество свободных контролеров Nek устанавливается равным общему количеству контролеров Nk (ситуация перед нача­лом работы). Выполнение оператора присваивания (Nck:=Nk) пла­нируется с небольшой задержкой (0.001) сразу после запуска моде­ли (ниже поясняется необходимость такой задержки).

Функция objective вычисляется после определения KPD непо­средственно перед завершением прогона. Структура этой функции ориентирована на поиск такого количества контролеров (Nk), кото­рое обеспечивало бы, с одной стороны, минимальную длину очере­ди (Q_max), а с другой - эффективную работу контролеров (KPD, близкий к единице).

В структуре формулы: objective: =Q_max+ (1-KPD) оба этих фактора достигаются при поиске такого значения Nk, при ко­тором objective достигает минимума.

Определенная таким образом функция objective и будет опре­делять целевую функцию оптимизации модели.

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

Запуск процесса оптимизации связан с выбором пункта Op­timize из меню MicroSaint (Execute —> Optimize). Результатом это­го выбора будет запуск приложения OptQuest и открытие главного окна OptQuest.

4.2.5.Определение оптимизационной задачи

Прежде всего, необходимо создать новый файл с расширени­ем 0Р1 или открыть существующий файл, связанный с оптимизи­руемом имитационной моделью (подпункт New или Open пункта главного меню Kile, соответственно, рис. 4.4). В дальнейшем в таком файле будут храниться параметры оптимизации.

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

1)выбрать изменяемые переменные из переменных имитаци­онной модели;

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

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

Выбор изменяемых переменных (Edit-*Variables) приведет к открытию окна (рис.4.5).

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

Двойной щелчок мыши в поле Select (рис. 4.5) изменяет ста­тус переменной: Yes - переменная выбрана для изменения OptQuest No-нет.

В поле Name отображаются имена переменных MS - модели. В полях Lower Bound и Upper Bound указываются соответственно возможная нижняя и верхняя границы для соответствующей пере­менной. Для облегчения поиска можно указать предполагаемые значения изменяемой переменной в колонке Suggested Value. Если предполагаемые значения выходят за границы или не удовлетворя­ют ограничениям, то они игнорируются. Тип переменной (Integer / Real) переносится в таблицу рис. 4.5 из MS - модели автоматически.

Установка параметров оптимизации (Edit -^Settings) в окне рис. 4.5 связана с определением вида оптимизации (поиск максиму­ма или минимума целевой функции) и установкой количества про­гонов модели (обычно выбирается один). Если выбирается большее количество запусков, то значение целевой функции усредняется по количест ву запусков (см. рис. 4.6).

Ограничения (Edit - Constraints) в окне (рис. 4.4) устанавли­ваются только для входных переменных. OptQuest позволяет поль­зователю задавать произвольное число ограничений в виде линейной комбинации изменяемых переменных. Если предположить, что изменяемые переменные - это х, (для / - /,..., п\ то любое ограниче­ние может быть записано в следующей форме: а, *х, + а22 +... + а„ * х„ # Ь, где а, и b - констан ты, а знак '#' заменяет одно из сле­дующих отношений: ' = ',': = ',' = = ' (отношения равенства) или '<=', '<'> '>-', '>' (отношения порядка).

В нашем примере одна изменяемая переменная - число кон­тролеров Nk. Мы задаем для нее единственное ограничение: Nk<=6. Для этого случая окно ограничений будет выглядеть следующим образом (рис. 4.6).

4.2.6. Установка дополнительных опций

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

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

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

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

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

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

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

4.2. 7. Запуск и остановка поиска

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

4.2.8. Процесс оптимизации (поиск решения)

В динамике процесса поиска в главном окне системы OptQuest отображается состояние этого процесса (см. рис. 4.7).

Статус поиска (Status) отображается в левом верхнем углу ок­на (на рис. 4.7 статус определяет время до окончания поиска). Имя файла оптимизации (Optimization file) отображается в правом верх­нем углу окна (в нашем случае Тк.ОРТ).

На белой полосе в центре окна отображается текущее состоя­ние процесса поиска. Ниже приводится перечень таких состояний:

Ready - исходное состояние готовности начать процесс опти­мизации;

Running a Test Simulation - OptQuest запускает тестовую ими­тацию, чтобы установить параметры поиска;

Building Initial Population - OptQuest генерирует начальную популяцию возможных решений;

Optimizing - идет поиск. Возможно, MicroSaint выполняет за­пуск имитационной модели или OptQuest решает, какие значения входных неременных сгенерировать следующими;

Neural Network Accelerator Engaged - если вы включили уско­рение нейронной сети, OptQuest периодически обучает эту сеть;

Diversifying - OptQuest определил, что популяция решений получит преимущество, если будет применена специальная дивер- сификационная стратегия при создании новых решений. Диверси- фикационная процедура включает новые решения в популяцию пе­ред тем, как поиск будет продолжен;

Evaluating Diversified Population - OptQuest оценивает послед­нюю диверсифицированную популяцию.

Ниже белой полосы состояния поиска размещается таблица, которая содержит:

•номер очередного запуска процесса имитации с новым вари­антом значений входных переменных (Simulation);

•значение целевой функции, полученной при этом запуске (objective);

•значения входных переменных, используемые при этом за­пуске (в нашем случае это одна переменная - Nk).

Результаты поиска (значение целевой функции) располагают­ся в файле OPTQUEST.RES. Его можно просмотреть и проанализи­ровать средствами системы MicroSaint как обычный файл результа­тов этой системы.

4.2.9. Результаты оптимизации

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

Для просмотра результатов оптимизации в меню опций (Op­tions) используются специальные средства интерпретации результа­тов в виде графика (Graph), просмотра переменных (View Variables) или данных времени исполнения (Run Data).

Для рассматриваемого примера использование формы графика приводит к выводу окна (рис. 4.9).

По оси абсцисс отложена последовательность шагов процесса поиска решения (Simulation) с запуском соответствующей MS - мо­дели. График Current показывает текущие результаты, a Best — про­цесс улучшения текущих результатов.

По оси ординат откладываются значения целевой функции (objective). Эта ось может использовать два типа разметки: линей­ную (Linear/Linear) и логарифмическую (Log/Linear). Первая удобна при значительной разнице в результатах оптимизации, вторая - при небольших отличиях между результатами. Выбор типа разметки открывается в меню Туре.

Для рассматриваемого примера поиск начался со значения Nk=2, рекомендованного в таблице выбора (рис. 4.5) в качестве на- чапьного значения. При этом по результатам первой попытки (Simulatlon=1) целевая функция определилась значением 6,00616. Вторая попытка (Simulation=2) определялась значением Nk=6, предложен­ным агтгоритмом поиска (нами был выбран алгоритм No Neural Net­work – безнейронной сети). Имитация системы на втором шаге по­иска привела к определению objective значением 0,673794, что су­щественно улучшило результат. Третья попытка использовала в ка­честве пробного значения входной переменной Nk = 4, что опять таки улу11ШИЛо результат (objective = 0,510690). Четвертая попытка практически не изменила результат третьей, пятая была связана (как легко догадаться) с дальнейшим снижением Nk (скорее всего Nk=l), что привело к резкому возрастанию длины очереди перед контролем и соответСТВенно к резкому возрастанию значения целевой функции (objective~50). Это вызвало резкое ухудшение уже найденного приближения к оптимуму, поэтому кривая Best не отреагировала на этот вариант, шестой и седьмой шаги были связаны с возвращением в окрестности уже использованных значений Nk = 4..5, что также не улучшило результата поиска.

Просмотр результатов в окне View Variables связан с исполь­зованием диаграммы соотношений между значениями входных из­меняемых переменных. Поскольку в нашем примере такая перемен­ная толыод одна, окно для анализа результатов для рассмотренного примера оказывается малоинформативным (рис. 4.10).

Третья форма интерпретации результатов (Run Data) связана с выводом подробной информации о последовательности шагов про­цесса поиска, которые привели к наилучшему результату (после­дующие шаги не рассматриваются). В нашем примере к наилучше­му результату привели три шага поиска и соответственно три запус­ка MS - Модели. Рис. 4.11 иллюстрирует вывод информации в фор­ме (Run Data).

Оптимальный результат представлен первой записью. Она включает в себя:

•номер шага в процессе поиска (simulation);

•значения изменяемых переменных (Values of Variables);

•среднее значение целевой функции (Average Objective).

Это значение формируется по нескольким прогонам модели в случае, когда перед оптимизацией в установках (Edit-Settings) указывается количество прогонов, большее 1. В нашем примере Run = 1, поэтому усредненное значение objective не отличается от обычного;

•стандартное отклонение от среднего (Standard Deviation). При количестве прогонов, равном I (Run = I в Edit—^Settings) этот пара­метр равен 0;

•индивидуальные значения целевой функции но каждому из прогонов MS-модели (Individual Run Objective). В общем случае это список, в нашем примере прогон один, поэтому в списке только од­на запись: (Run 1:0,51069).

После завершения оптимизации OptQuest предлагает внести изменения в MS-модель, связанные с установкой оптимальных зна­чений изменяемых переменных. При согласии пользователя такое изменение вносится в календарь на момент системного времени clock = 0. При этом запуск MS - модели будет приводить к установ­ке оптимальных значений изменяемых переменных. Рисунок 4.12 показывает содержимое календаря с установленным OptQuest опти­мальным значением числа контролеров (Nk=l).

Из сопоставления содержимого календарей MS-модели до и после оптимизации (рис. 4.3 и 4.12) становится понятным, почему мы установили оператор присваивания (Nck:= Nk) не в начальный момент времени, а несколько позже.

Контрольные вопросы

1. Что определяет функция objective в системе поиска оптимально­го решения на имитационной MS - модели?

2. В чем состоит принципиальное отличие целевой функции objec­tive от целевой ячейки электронной таблицы?

3. Чем отличаются входные изменяемые переменные от остальных переменных имитационной MS - модели?

4. Как учитываются при оптимизации границы значений изменяе­мых переменных?

5. Какое значение получают обычно входные переменные на пер­вом шаге процесса поиска, если задано поле Suggested Value1?

6. Какие переменные MS - модели могут использоваться при опре­делении ограничений на пространство поиска в окне (Edit Con­straints)?

7. Охарактеризуйте основные опции «Ускорителя нейронных се­тей» и ситуации, в которых их следует использовать.

8. В чем состоят отличия кривых Current и Best при представлении результатов оптимизации в виде графика?

9. Как интерпретируется термин Simulation в разметке оси абсцисс графика результатов имитации?

10. Как изменятся результаты оптимизации, если целевую функцию

рассматриваемого примера определить следующим образом" objec­tive: = Qmax? J

11. Как изменятся результаты оптимизации, если целевую функцию рассматриваемого примера определить следующим образом: objec­tive: = (1- KPD)?

  1. Можно ли в качестве изменяемой переменной рассмотренной модели выбрать переменную Q_max? Переменную State? Почему'?

  2. В чем состоят основные отличия между поиском оптимальных решении на электронных таблицах и имитационных моделях?