- •Практическая работа №1 Имитационное моделирование в задачах поиска управленческих решений
- •Практическая работа №2
- •2.1. Этап конструирования и описания модели
- •Практическая работа №3 Дополнительные методы и средства имитации
- •3.2.3.1. Постановка задачи для модели использования общего оборудования
- •Практическая работа №4 Поиск решения: оптимизация на имитационных моделях
Практическая работа №4 Поиск решения: оптимизация на имитационных моделях
Цель работы: Поиск решения: оптимизация на имитационных моделях. Оптимизация на имитационных моделях в системе OptQuest. Процесс оптимизации
Задание и порядок выполнения работы
Выделить особенности процесса оптимизации на имитационных моделях.
Рассмотреть постановку задачи технического контроля изделий.
Описать результаты оптимизации
Сделать вывод
Основы теории
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 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:=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.
Запуск процесса оптимизации связан с выбором пункта Optimize из меню 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 позволяет пользователю задавать произвольное число ограничений в виде линейной комбинации изменяемых переменных. Если предположить, что изменяемые переменные - это х, (для / - /,..., п\ то любое ограничение может быть записано в следующей форме: а, *х, + а2 *х2 +... + а„ * х„ # Ь, где а, и b - констан ты, а знак '#' заменяет одно из следующих отношений: ' = ',': = ',' = = ' (отношения равенства) или '<=', '<'> '>-', '>' (отношения порядка).
В нашем примере одна изменяемая переменная - число контролеров Nk. Мы задаем для нее единственное ограничение: Nk<=6. Для этого случая окно ограничений будет выглядеть следующим образом (рис. 4.6).
4.2.6. Установка дополнительных опций
Меню Опций (Options) рис. 4.4 позволяет установить время оптимизации и выбрать вариант алгоритма оптимизации.
Опция «Ускоритель нейронных сетей» (Neural Network Accelerator) разработана, чтобы улучшить мощность поиска OptQuest'a. При использовании нейронной сети OptQuest собирает информацию о получаемых значениях целевой функции при различных значениях изменяемых переменных. Затем эта информация используется для обучения нейронной сети в процессе поиска. OptQuest автоматически определяет как много данных требуется и как часто нужно повторять обучение, основываясь на том, что время проведения имитации модели и время оптимизации ограничено пользователем.
В меню опции «Ускоритель нейронных сетей» 4 пункта:
No neural Network (без нейронной сети). Этот механизм поиска на каждом шаге оптимизации формирует новые значения входных переменных и отправляет их в имитационную MS – модель для формирования оценки целевой функции objective. Использование этого механизма предпочтительно для имитационных моделей с самым малым количеством изменяемых переменных.
Convervative Neural Network (Консервативная нейронная сеть). Этот алгоритм поиска связан с использованием консервативного правила для того, чтобы отбрасывать потенциально плохие решения. Использование этого пункта целесообразно, если на имитацию отведено относительно мало времени.
Aggressive Neural Network (Агрессивная нейронная сеть). Эта опция предпочтительна для большинства моделей и указана по умолчани ю.
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) и выделяет лучший из них.
Для просмотра результатов оптимизации в меню опций (Options) используются специальные средства интерпретации результатов в виде графика (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 Network – безнейронной сети). Имитация системы на втором шаге поиска привела к определению 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. В чем состоит принципиальное отличие целевой функции objective от целевой ячейки электронной таблицы?
3. Чем отличаются входные изменяемые переменные от остальных переменных имитационной MS - модели?
4. Как учитываются при оптимизации границы значений изменяемых переменных?
5. Какое значение получают обычно входные переменные на первом шаге процесса поиска, если задано поле Suggested Value1?
6. Какие переменные MS - модели могут использоваться при определении ограничений на пространство поиска в окне (Edit Constraints)?
7. Охарактеризуйте основные опции «Ускорителя нейронных сетей» и ситуации, в которых их следует использовать.
8. В чем состоят отличия кривых Current и Best при представлении результатов оптимизации в виде графика?
9. Как интерпретируется термин Simulation в разметке оси абсцисс графика результатов имитации?
10. Как изменятся результаты оптимизации, если целевую функцию
рассматриваемого примера определить следующим образом" objective: = Qmax? J
11. Как изменятся результаты оптимизации, если целевую функцию рассматриваемого примера определить следующим образом: objective: = (1- KPD)?
Можно ли в качестве изменяемой переменной рассмотренной модели выбрать переменную Q_max? Переменную State? Почему'?
В чем состоят основные отличия между поиском оптимальных решении на электронных таблицах и имитационных моделях?