Процесс оптимизации (поиск решения)
В динамике процесса поиска в главном окне системы OptQuest отображается состояние этого процесса (см. рис. 2.44).
Рис. 2.44. Главное окно OptQuest в динамике поиска
Статус поиска (Status) отображается в левом верхнем углу окна (на рис. 2.44 статус определяет время до окончания поиска). Имя файла оптимизации (Optimization file) отображается в правом верхнем углу окна (в нашем случае TV.OPT).
На белой полосе в центре окна отображается текущее состояние процесса поиска. Ниже приводится перечень таких состояний.
Ready — исходное состояние готовности начать процесс оптимизации.
Running a Test Simulation —■ OptQuest запускает тестовую имитацию, чтобы установить параметры поиска.
Building Initial Population — OptQuest генерирует начальную популяцию возможных решений.
Optimizing — идет поиск. Возможно, Micro Saint выполняет запуск имитационной модели или OptQuest решает, какие значения входных переменных сгенерировать следующими.
Neural Network Accelerator Engaged — если вы включили ускорение нейронной сети, OptQuest периодически обучает эту сеть.
Diversifying — OptQuest определил, что популяция решений получит преимущество, если будет применена специальная диверсифика-ционная стратегия при создании новых решений. Диверсификацион-ная процедура включает новые решения в популяцию перед тем, как поиск будет продолжен.
Evaluating Diversified Population — OptQuest оценивает последнюю диверсифицированную популяцию.
Ниже белой полосы состояния поиска размещается таблица, которая содержит:
• номер очередного запуска процесса имитации с новым вариантом значений входных переменных (Simulation);
Часть 2. Имитационное моделирование
Оптимизация на имитационных моделях
![]() | ||||||||
![]() | ||||||||
![]() | ||||||||
![]() | ||||||||
![]() | ||||||||
![]() |
• значение целевой функции, полученной при этом запуске (ob
jective);
• значения входных переменных, используемые при этом запуске
(в нашем случае это одна переменная — Nk).
Результаты поиска (значение целевой функции) располагаются в файле OPTQUEST.RES. Его можно просмотреть и проанализировать средствами системы Micro Saint как обычный файл результатов этой системы.
Результаты оптимизации
![]() |
Simulation j_Objs-f-liv • • ' _ j_ 6.00616 \ 2 2I 0.673794Г 6 |
После завершения оптимизации главное окно OptQuest отображает трассу просмотренных вариантов решения оптимизационной задачи (рис. 2.45) и выделяет лучший из них.
Рис. 2.45. Главное окно OptQuest после завершения оптимизации
Для просмотра результатов оптимизации в меню опций (Options) используются специальные средства интерпретации результатов в виде графика (Graph), просмотра переменных (View Variables) или данных времени исполнения (Run Data).
Для рассматриваемого примера использование формы графика приводит к выводу окна рис. 2.46.
По оси абсцисс отложена последовательность шагов процесса поиска решения (Simulation) с запуском соответствующей MS-модели. График Current показывает текущие результаты, a Best — процесс улучшения текущих результатов.
По оси ординат откладываются значения целевой функции (objective). Эта ось может использовать два типа разметки: линейную (Linear/Linear) и логарифмическую (Log/Linear). Первая удобна при значи-
Рис. 2.46. График результатов оптимизации
тельной разнице в результатах оптимизации, вторая — при небольших отличиях между результатами. Выбор типа разметки открывается в меню Туре.
Для рассматриваемого примера поиск начался со значения Nk = — 2, рекомендованного в таблице выбора (рис. 2.42) в качестве начального значения. При этом по результатам первой попытки (Simulation = 1) целевая функция определилась значением 6,00616. Вторая попытка (Simulation = 2) определялась значением Nk = 6, предложенным алгоритмом поиска (нами был выбран алгоритм No Neural Network — без нейронной сети). Имитация системы на втором шаге поиска привела к определению objective значением 0,673794, что существенно улучшило результат. Третья попытка использовала в качестве пробного значения входной переменной Nk = 4, что опять-таки улучшило результат (objective = 0,510690). Четвертая попытка практически не изменила результат третьей, пятая была связана (как легко догадаться) с дальнейшим снижением Nk (скорее всего Nk = 1), что привело к резкому возрастанию длины очереди перед контролем и соответственно к резкому возрастанию значения целевой функции (objective «50). Это вызвало резкое ухудшение уже найденного приближения к оптимуму, поэтому кривая Best не отреагировала на этот вариант, шестой и седьмой шаги были связаны с возвращением в окрестности уже использованных значений Nk = 4-5, что также не улучшило результата поиска.
Просмотр результатов в окне View Variables связан с использованием диаграммы соотношений между значениями входных изменяемых переменных. Поскольку в нашем примере такая переменная только одна, окно для анализа результатов для рассмотренного примера оказывается малоинформаnивным (рис. 2.47).
144
Часть 2. Имитационное моделирование
Оптимизация на имитационных моделях
145
![]() | |||||
![]() | |||||
![]() | |||||
![]() |
![]() |
Рис. 2.47. Диаграмма сравнения переменных
Третья форма интерпретации результатов (Run Data) связана с выводом подробной информации о последовательности шагов процесса поиска, которые привели к наилучшему результату (последующие шаги не рассматриваются). В нашем примере к наилучшему результату привели три шага поиска и соответственно три запуска MS-mo-дели. Рис. 2.48 иллюстрирует вывод информации в форме (Run Data).
Оптимальный результат представлен первой записью.
Она включает в себя:
1) номер шага в процессе поиска (si
mulation);
2) значения изменяемых переменных
(Values of Variables);
3) среднее значение целевой функции
(Average Objective). Это значение форми
руется по нескольким прогонам модели в
случае, когда перед оптимизацией в уста
новках (Edit —> Settings) указывается ко
личество прогонов, большее 1. В нашем
примере Run = 1, поэтому усредненное
значение objective не отличается от обыч
ного;
4) стандартное отклонение от среднего
(Standard Deviation). При количестве про
гонов, равном 1 (Run=l в Edit —> Settings)
этот параметр равен 0;
5) индивидуальные значения целевой
функции по каждому из прогонов MS-mo-
дели (Individual Run Objective). В общем
случае это список, в нашем примере прогон один, поэтому в списке только одна запись: (Run 1: 0,51069).
После завершения оптимизации OptQuest предлагает внести изменения в MS-модель, связанные с установкой оптимальных значений изменяемых переменных. При согласии пользователя такое изменение вносится в календарь на момент системного времени clock = 0. При этом запуск MS- модели будет приводить к установке оптимальных значений изменяемых переменных. Рисунок 2.49 показывает содержимое календаря с установленным OptQuest оптимальным значением числа контролеров (Nk = 4).
Рис. 2.49. Содержимое календаря с установленным оптимальным значением числа
контролеров (Nk = 4)
Из сопоставления содержимого календарей MS-модели до и после оптимизации (рис. 2.49 и 2.40) становится понятным, почему мы установили оператор присваивания (Nck:=Nk) не в начальный момент времени, а несколько позже.
Контрольные вопросы и предложения
1. Что определяет функция objective в системе поиска оптимального решения
на имитационной MS-модели?
2. В чем состоит принципиальное отличие целевой функции objective от целе
вой ячейки электронной таблицы?
3. Чем отличаются входные изменяемые переменные от остальных перемен
ных имитационной MS-модели?
4. Как учитываются при оптимизации границы значений изменяемых пере
менных?
5. Какое значение получают обычно входные переменные на первом шаге
процесса поиска, если задано поле Suggested Value?
6. Какие переменные MS-модели могут использоваться при определении
ограничений на пространство поиска в окне (Edit —> Constraints)?
7. Охарактеризуйте основные опции «Ускорителя нейронных сетей» и ситуа
ции, в которых их следует использовать.
146
Часть 2. Имитационное моделирование
I:"
8. В чем состоят отличия кривых Current и Best при представлении результа
тов оптимизации в виде графика?
9. Как интерпретируется термин Simulation в разметке оси абсцисс графика
результатов имитации?
10. Как изменятся результаты оптимизации, если целевую функцию рассмат
риваемого примера определить следующим образом: objective:=Q_max?
11. Как изменятся результаты оптимизации, если целевую функцию рассмат
риваемого примера определить следующим образом: objective:=(l-KPD)?
12. Можно ли в качестве изменяемой переменной рассмотренной модели вы
брать переменную Q_max? Переменную State? Почему?
13. В чем состоят основные отличия между поиском оптимальных решений на
электронных таблицах и имитационных моделях?
Задания по имитационному