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