exponenta event banner

Анализ результатов оптимизации точек

Процесс анализа результатов оптимизации

В этом разделе описывается процесс анализа результатов однообъективной оптимизации (например, максимизация крутящего момента по сравнению с искрой, ICP, ECP в рабочей точке двигателя, с использованием fmincon, ga и patternsearch алгоритмы).

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

Значки таблицы результатов оптимизации

СимволОписание
Зеленый квадрат Принять значок
Указывает на успех (флаг выхода алгоритма > 0).
Значок принятия оранжевого треугольника
Указывает на раннее завершение оптимизации (флаг выхода = 0). Такая ситуация обычно возникает, когда оптимизатор достигает определенного срока. Примеры этого включают превышение ряда итераций или предела оценки функции. В таких случаях оптимизация проводилась, но была вынуждена прекратить ее, прежде чем было найдено оптимальное решение.
Красный круг Принять значок
Указывает на сбой (флаг выхода < 0). Обычно это происходит из-за того, что проблема слишком ограничена для этого прогона.

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

Анализ выходных данных для всех прогонов

  1. Переключитесь в представление «Optimization Output» для оптимизации.

  2. Проанализируйте все участки с помощью зеленых квадратных значков Accept (). Для каждого прогона:

    1. Проверьте целевые графики.

    2. Проверьте контурные графики объекта для максимально возможного количества пар свободных переменных. Можно настроить представление вывода оптимизации для одновременного отображения нескольких контурных графиков.

    Нашло ли решение локальный оптимум? Многие алгоритмы оптимизации предназначены для определения местоположения локальной оптимизации (например, fmincon в CAGE). Проверьте каждый успешный запуск, чтобы убедиться, что оптимизатор нашел наилучшее решение. Дополнительные сведения и примеры см. в разделе Обнаружение локальной оптимизации.

    Кажется ли, что оптимизация завершилась рано? В некоторых случаях оптимизация возвращает неоптимальные результаты, даже если оптимизатор вернул положительный флаг выхода. Расследовать такие случаи. См. Исследование досрочного прекращения оптимизации.

  3. Повторите шаги 2a и 2b для анализа всех прогонов с оранжевыми треугольными значками Accept (), которые указывают на раннее завершение оптимизации. Дополнительные сведения и примеры см. в разделе Исследование досрочного прекращения оптимизации.

  4. Повторите шаги 2a и 2b для анализа всех участков с красными круговыми значками Accept (), которые указывают на сбои. Обычно эти участки не удовлетворяют ограничениям. Проверьте графики и определите, допустимо ли ослаблять какие-либо ограничения.

Настройка параметров для улучшения результатов

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

  1. При обнаружении локальной оптимизации попробуйте выполнить оптимизацию еще раз, чтобы найти оптимальный вариант.

    • Отредактируйте исходное условие вручную для этой рабочей точки оптимизации и повторите операцию.

    • Для оптимизации точек, которые используют fmincon установите значение параметра Number of start points больше 1 и повторите запуск. В этом случае CAGE выполняет оптимизацию более одного раза для каждого прогона. Чтобы сэкономить время, может понадобиться только повторять ошибочные прогоны таким образом.

    • Используйте альтернативный алгоритм для прогонов, которые нашли локальный оптимум. Например, можно попробовать ga или patternsearch алгоритмы в CAGE (если вы пробовали fmincon сначала алгоритм).

  2. Если оптимизация завершается рано:

    • В тех случаях, когда у оптимизатора заканчиваются итерации/анализ функций/время, и возвращаемое решение является возможным, определите, является ли решение приемлемым для вас.

      • Чтобы принять решение, установите флажок Принять (Accept) в таблице Результаты оптимизации (Optimization Results).

      • Если решение отклоняется, повторно запустите оптимизацию с измененными параметрами. В этом случае, если fmincon или patternsearch используется, рекомендуется запустить оптимизатор из только что найденного решения.

    • В тех случаях, когда у оптимизатора заканчиваются итерации/оценки функций/время, а возвращенное решение невозможно, можно попытаться повторно выполнить оптимизацию из различных начальных условий (для fmincon или patternsearch ) или различные настройки параметров (все алгоритмы). Если этот подход не решает проблему, определите, было ли нарушено какое-либо ограничение. Исследовать нарушенные ограничения, чтобы определить, можно ли ослабить их. Если это возможно, повторно запустите оптимизацию с ослабленными ограничениями; в противном случае оставьте флажок невыбранным, чтобы указать, что решение неприемлемо.

  3. См. также Обработка плоской оптимизации.

Обнаружение локальной Optima

На этом рисунке показаны виды оптимизации, которая нашла оптимальное решение. Цель состоит в максимизации крутящего момента (Objective1) относительно угла зажигания (S), закрытия выпускного клапана (ECP) и открытия впускного клапана (ICP).

При анализе результатов оптимизации ищите результаты, которые имеют наилучший оптимум по отношению к свободным переменным.

В этом случае индивидуальный график может показать только высокую вероятность, а не определенно оптимальное значение, потому что существует более двух свободных переменных. Для проблем с более чем двумя свободными переменными виды «Целевые графики» (Objective Graphs) и «Горизонтали» (Contours) не могут гарантировать, что было найдено оптимальное решение, поскольку они обеспечивают проекции модели.

Для дальнейшего подтверждения необходимо проверить представление «Контур цели» (Objective Contour) на наличие такого количества пар свободных переменных, которое требуется для анализа.

В этом примере показано, что алгоритм обнаружил локальный максимум (отмеченный оранжевым крестиком). Глобальный максимум для этой оптимизации можно увидеть в правом нижнем углу контурного графика.

Ограничение, например ограничение градиента таблицы, может привести к локальному максимальному результату. Однако этот результат может быть желательным, поскольку для плавности таблицы может быть предпочтительным найти локальный максимум с небольшой потерей крутящего момента по сравнению с глобальным максимумом (в этом случае около 1,3 НМ крутящего момента (1%), который находится в пределах точности модели).

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

На этом рисунке одновременно показаны контурные графики для всех пар свободных переменных для тематического исследования бензина.

Исследование досрочного прекращения оптимизации

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

На этом рисунке показан прогон оптимизации с предупреждающим оранжевым значком «Принять» (Accept), который был принудительно завершен из-за превышения предела итераций.

В этом случае оптимизатор почти нашел оптимальное решение для этого прогона. Если работа этого оптимизатора заняла много времени, то, поскольку это решение является практически оптимальным, его следует отметить как приемлемое (установите флажок Принять (Accept) в таблице Результаты оптимизации (Optimization Results) для этого прогона).

На этом рисунке показан другой пример досрочного завершения оптимизации из-за превышения предела итераций.

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

Графики зависимостей для этого случая показаны на этом рисунке.

Эти представления ограничений подтверждают, что Constraint2 нарушена для данного прогона. Поэтому это решение, вероятно, лучше оставить неприемлемым. В подобных случаях, если он еще не помечен как неприемлемый, снимите флажок Принять (Accept) в таблице Результаты оптимизации (Optimization Results) для этого прогона.

На этом рисунке показана оптимизация, которая, по-видимому, завершилась рано, несмотря на возврат положительного флага выхода. Видно, что оптимизатор не обнаружил максимум. Вы должны расследовать подобные дела.

Существует много причин, по которым оптимизация, по-видимому, завершается рано. В этом разделе рассматриваются две общие причины и возможные решения.

Плохие настройки параметров алгоритма

fmincon может не возвращать локальный оптимум, если эти значения параметров слишком высоки:

  • Допуск переменной

  • Допуск функции

  • Допуск ограничения

В этом случае попробуйте уменьшить значения этих параметров, чтобы улучшить производительность. Однако не уменьшайте эти значения параметров слишком низкими (менее ~ 10-10), чтобы избежать внутренних проблем сfmincon. Модели с нефизической нелинейностью также могут привести к отказу.

Некоторые алгоритмы на основе неградиентов могут не вернуть оптимальное решение. Примером этого является генетический алгоритм (ga) оптимизация в CAGE. Плохой выбор параметров для таких алгоритмов может привести к досрочному прекращению оптимизации. Например, установка параметра Crossover Fraction для ga алгоритм на 1 может привести к ситуации, когда алгоритм преждевременно сходится. В этом случае попробуйте повторить оптимизацию при альтернативных параметрах. Чтобы получить наилучшие результаты, повторно запустите алгоритм с Crossover Fraction ниже 1 (значение по умолчанию - 0,8).

Использование fmincon с шумными моделями

Оптимизация может завершиться рано, потому что модели шумные, и вы использовали алгоритм на основе градиента (fmincon) для решения задачи оптимизации.

Если контурные графики или какие-либо результаты являются подозрительными, следует всегда исследовать тенденции модели, чтобы проверить, являются ли они разумными, а не переоборудованными. Исследуйте модели в окне «Просмотр поверхностей CAGE» (CAGE Surface Viewer) или в представлении поверхности ответа «Браузер моделей» (Model Browser). Возможно, вам потребуется переделать.

Чтобы проверить шумность модели, увеличьте масштаб линейного графика модели в средстве просмотра CAGE Surface Viewer. Ниже приведен график Objective1 по x вокруг значения x, возвращаемого оптимизатором.

Видно, что модель шумит, и оптимизатор (правильно) вернул локальный максимум модели. Однако этот результат является максимумом шумовой составляющей в модели, а не физической составляющей. Если шум не относится к поведению физической системы, то в обозревателе моделей следует перестроить шумные модели. Инструмент импорта CAGE (CAGE Import) может использоваться для замены шумных моделей результатами ремоделирования, и оптимизация может быть запущена повторно.

Обработка плоских оптимумов

Функции, которые являются плоскими вблизи их optima, могут быть трудно оптимизировать. На этом рисунке показан пример такой функции, g (x, y) = (x2 + y2 + xy) 4, и ее поверхностный график.

Эта функция имеет глобальный минимум (0, 0) и является очень плоской в окрестности оптимального решения.

Использование fmincon алгоритм в CAGE для нахождения минимума этой функции (из начальных условий (x, y) = [0.5.0.5]) дает результат, показанный на этом рисунке. Оптимизатор находит решение при (x, y) = [− 0,113, − 0,113], которое не является оптимальным. На этих графиках ясно видно, что оптимизатор не расположил минимум в (0, 0).

Чтобы настроить оптимизатор для нахождения минимума, можно использовать один из нескольких подходов:

  • Измените исходные условия.

    Для алгоритма на основе градиента (fmincon в CAGE), изменение начальных условий может помочь оптимизатору найти минимум, где целевая функция является плоской вблизи минимума. В примере, показанном на предыдущем рисунке, изменение начальных условий на (x, y) = (1,1) приводит кfmincon нахождение минимума в (0, 0).

  • Выполните масштабирование целевой функции.

    Масштабируйте целевую функцию с помощью операции, которая не изменяет расположение каких-либо оптимальных решений, например, попробуйте взять квадратный корень, четвертый корень или логарифм или умножить на положительный скаляр. Проверьте, что положение оптимума не изменилось. Когда целевая функция является плоской в окрестности оптимума, масштабирование целевой функции может помочь алгоритмам оптимизации на основе градиента, таким как fmincon в CAGE. В примере, показанном на предыдущем рисунке, когда fmincon в CAGE используется для минимизации 1012g (x, y), минимальное значение при (0, 0).

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

    Попробуйте либо поиск шаблона, либо параметры генетического алгоритма. Поскольку эти алгоритмы не используют информацию о градиенте, они могут работать лучше при использовании задач оптимизации с плоскими минимумами. В примере, показанном на предыдущем рисунке, алгоритм поиска шаблона в CAGE расположен как минимум с использованием настроек по умолчанию.

  • Выполните оптимизацию из нескольких начальных значений условий.

    Если используется fmincon тогда другим возможным решением является установка параметра Число начальных точек (Number of Start Points) больше 1. Этот параметр запускается fmincon указанное количество раз из различных условий запуска. Эта опция используется только для соответствующих прогонов, поскольку это может занять много времени.

  • Изменение допусков.

    Для алгоритма на основе градиента (fmincon в CAGE), изменение допусков переменной или функции может помочь оптимизатору найти минимум, где целевая функция является плоской вблизи минимума. Уменьшение допусков переменной и функции может улучшить сходимость до оптимального значения в этом случае.