Эта тема описывает процесс для анализа результатов одно-объективной оптимизации (например, максимизируя крутящий момент по сравнению с искрой, ICP, ECP в рабочей точке механизма, с помощью fmincon
, ga
и patternsearch
алгоритмы.
Для каждого запуска оптимизации цель состоит в том, чтобы найти оптимальное решение. Выходное Представление Оптимизации обеспечивает графические инструменты, чтобы помочь вам определить, было ли оптимальное решение найдено для данного шанса. Это представление предоставляет таблице значки, которые указывают на состояние каждой запущенной оптимизации.
Значки таблицы результатов оптимизации
Значок | Описание |
---|---|
Зеленый квадрат Принимает значок | Указывает на успех (выходной флаг алгоритма> 0). |
Оранжевый треугольник Принимает значок | Указывает на оптимизацию, отключенную рано (выходной флаг = 0). Эта ситуация обычно происходит, когда оптимизатор достиг некоторой формы ограничения по времени. Примеры этого включают превышение многих итераций или предела вычисления функции. В таких случаях оптимизация происходила, но была обеспечена, чтобы завершить работу, прежде чем оптимальное решение было найдено. |
Красный круг Принимает значок | Указывает на отказ (выходной флаг <0). Обычно это происходит из-за проблемы, являющейся по ограниченному для этого запуска. |
Процесс для анализа результатов оптимизации точки включает эти задачи:
Переключитесь на представление Optimization Output для оптимизации.
Анализируйте все запуски с зеленым квадратом, Принимают значки (). Для каждого запуска:
Смотрите объективные графики.
Смотрите Объективные Контурные графики для как можно большего количества пар свободных переменных. Можно сконфигурировать оптимизацию выходное представление, чтобы отобразить несколько контурных графиков одновременно.
Решение нашло локальный оптимум? Много алгоритмов оптимизации спроектированы, чтобы определить местоположение локальных оптимумов (например, fmincon
в CAGE). Проверяйте каждый успешный запуск, чтобы гарантировать, что оптимизатор нашел лучшее решение возможным. Смотрите Локальные оптимумы Обнаружения для получения дополнительной информации и примеры.
Оптимизация, кажется, завершила работу рано? В некоторых случаях оптимизация, кажется, возвращает субоптимальные результаты даже при том, что оптимизатор возвратил положительный выходной флаг. Исследуйте такие случаи. Смотрите Исследование Раннее Завершение Оптимизации.
Повторите, что шаги 2a и 2b, чтобы анализировать все запуски с оранжевым треугольником Принимают значки (), которые указывают на оптимизацию, отключенную рано. Смотрите Исследование Раннее Завершение Оптимизации для получения дополнительной информации и примеров.
Повторите, что шаги 2a и 2b, чтобы анализировать все запуски с красным кругом Принимают значки (), которые указывают на отказы. Этим запускам обычно не удавалось соответствовать ограничениям. Смотрите графики и определите, приемлемо ли ослабить какое-либо из ограничений.
После того, как вы исследуете свои результаты идентифицировать проблемы, используйте эти предложения, чтобы попытаться улучшить ваши результаты оптимизации:
Если вы обнаруживаете локальные оптимумы, попытайтесь запустить оптимизацию снова, чтобы определить местоположение лучшего оптимума.
Отредактируйте начальное условие вручную для этой рабочей точки оптимизации и повторно выполнитесь.
Для оптимизации точки, которая использует fmincon
алгоритм, набор Number of start points, чтобы быть больше 1 и повторно выполниться. В этом случае CAGE выполняет оптимизацию несколько раз для каждого запуска. Чтобы сэкономить время, вы можете хотеть только повторить незаконные запуски таким образом.
Используйте альтернативный алгоритм для запусков, которые нашли локальный оптимум. Например, вы могли попробовать ga
или patternsearch
алгоритмы в CAGE (если вы попробовали fmincon
алгоритм сначала).
Если оптимизация завершает работу рано:
В случаях, где оптимизатор исчерпывает оценки/время итераций/функции и возвращенное решение, выполнимо, определите, приемлемо ли решение для вас.
Чтобы принять решение, установите флажок Accept на таблице Optimization Results.
Если вы отклоняете решение, повторно выполняете оптимизацию с модифицированными установками параметров. В этом случае, если fmincon
или patternsearch
используется, желательно запустить оптимизатор с решения, которое было только что найдено.
В случаях, где оптимизатор исчерпывает оценки/время итераций/функции и возвращенное решение, неосуществимо, можно попытаться повторно выполнить оптимизацию от различных начальных условий (для fmincon
или patternsearch
) или различные установки параметров (все алгоритмы). Если этот подход не разрешает проблему, определяет, было ли какое-либо ограничение нарушено. Исследуйте нарушенные ограничения, чтобы определить, могут ли они быть ослаблены. Если они могут, повторно выполнить оптимизацию с расслабленными ограничениями; в противном случае оставьте флажок отменявшим, чтобы указать, что решение недопустимо.
См. также Обрабатывающий Плоский Optima.
Этот рисунок показывает представления для оптимизации, которая нашла оптимальное решение. Цель состоит в том, чтобы максимизировать Крутящий момент (Objective1) против угла искры (S), Выпускной клапан, заключительный (ECP) и открытие клапана Потребления (ICP).
Когда вы анализируете результаты оптимизации, ищете результаты, которые определили местоположение лучшего оптимума против свободных переменных.
В этом случае отдельный участок может только показать, что это очень вероятно, а не определенно оптимальное значение, потому что существует больше чем две свободные переменные. Для проблем больше чем с двумя свободными переменными Объективные Графики и представления Контуров не могут гарантировать, что оптимальное решение было найдено, потому что они обеспечивают проекции модели.
Для дальнейшего подтверждения необходимо смотреть представление Objective Contour для стольких пар свободных переменных, сколько у вас есть время, чтобы анализировать.
Этот пример показывает, что алгоритм нашел локальный максимум (отмеченным оранжевым крестом). Вы видите глобальный максимум для этой оптимизации в нижнем правом углу контурного графика.
Ограничение, такое как табличное ограничение градиента, могло вызвать локальный максимальный результат. Этот результат мог быть желательным, однако, потому что может быть предпочтительно для табличной гладкости найти локальный максимум с небольшой потерей крутящего момента по сравнению с глобальным максимумом (в этом случае, приблизительно 1,3 морских мили крутящего момента (1%), который является в точности модели).
Чтобы смотреть контурные графики для многих пар свободных переменных, можно сконфигурировать оптимизацию выходное представление, чтобы отобразить несколько контурных графиков одновременно. Сеанс одновременной игры может помочь определить местоположение тех запусков, которые сходились к локальному оптимуму.
Этот рисунок одновременно показывает контурные графики для всех пар свободных переменных для тематического исследования бензина.
Смотрите Объективные Графики и Представления Контура, чтобы проверять на оптимизацию, которая завершила работу рано. Раннее завершение обычно происходит при запусках, которые имеют предупреждение, что оранжевый треугольник Принимает значки, но может также произойти, когда оптимизатор возвратился, успешный зеленый квадрат Принимают значок.
Этот рисунок показывает, что оптимизация, запущенная с предупреждающим оранжевым треугольником, Принимает значок, который был обеспечен, чтобы завершить работу, потому что это превысило предел итераций.
В этом случае оптимизатор почти нашел оптимальное решение для этого запуска. Если этот оптимизатор занял много времени, чтобы запуститься, то, когда это решение почти оптимально, это, вероятно, стоит отметить как приемлемое (выберите Accept, окружают таблицу Optimization Results для этого запуска).
Этот рисунок показывает другой пример, где оптимизация завершила работу рано, потому что это превысило предел итераций.
В этом случае проблема, кажется, по ограниченному, потому что графики полностью заштрихованы желтые. Можно проверять ограничительную сводную таблицу или выходную таблицу, чтобы идентифицировать, соответствуют ли ограничениям. Также смотрите ограничительные сводные данные и ограничительные графики.
Ограничительные графики для этого случая показывают в этом рисунке.
Эти ограничительные представления подтверждают тот Constraint2
нарушен для этого запуска. Поэтому это решение, вероятно, лучше всего оставляют как недопустимое. В случаях как это, если это уже не отмечено как недопустимое, очищают поле Accept в таблице Optimization Results для этого запуска.
Этот рисунок показывает оптимизацию, которая, кажется, завершила работу рано несмотря на возврат положительного выходного флага. Вы видите, что оптимизатор не определил местоположение максимума. Необходимо исследовать случаи как это.
Существует много причин, почему оптимизация, кажется, завершает работу рано. Две частых причины и возможные разрешения обсуждены в этом разделе.
fmincon
может не возвратить локальный оптимум, если эти значения параметров слишком высоки:
Переменный допуск
Function tolerance
Допуск ограничения
В этом попытка случая, уменьшающая значения этих параметров, чтобы улучшать производительность. Однако не уменьшайте эти значения параметров слишком низко (меньше чем ~10-10), чтобы избежать внутренних проблем с fmincon
. Модели, которые имеют нефизическую нелинейность, могут также вызвать отказ.
Некоторые основанные на неградиенте алгоритмы не могут возвратить оптимальное решение. Примером этого является генетический алгоритм (ga
) оптимизация в CAGE. Плохой выбор параметров для таких алгоритмов может привести к раннему завершению оптимизации. Например, устанавливая параметр Crossover Fraction ga
алгоритм к 1 может привести к ситуации, где алгоритм преждевременно сходится. В этом случае попытайтесь повторно выполнить оптимизацию при альтернативных установках параметров. Для лучших результатов, повторно выполненных алгоритм с Перекрестной Частью ниже, чем 1 (значение по умолчанию 0.8).
Оптимизация может завершить работу рано, потому что модели являются шумными, и вы использовали основанный на градиенте алгоритм (fmincon
) решить задачу оптимизации.
Если контурные графики или какие-либо результаты подозрительны, что необходимо всегда исследовать тренды модели, чтобы проверять, являются ли они разумными и не сверхподходящими. Исследуйте модели в Средстве просмотра Поверхности CAGE или представлении поверхности ответа Model Browser. Вы, возможно, должны реконструировать.
Чтобы проверять, является ли ваша модель шумной, увеличьте масштаб линейного графика модели в средстве просмотра Поверхности CAGE. Следующее является графиком Objective1 против x вокруг значения x, возвращенного оптимизатором.
Вы видите, что модель является шумной, и оптимизатор (правильно) возвратил локальный максимум модели. Однако этим результатом является максимум шумового компонента в модели а не физического компонента. Если шум не является поведением физической системы, то необходимо реконструировать шумные модели в Model Browser. Инструмент CAGE Import может использоваться, чтобы заменить шумные модели на результаты модернизации, и оптимизация может быть повторно выполнена.
Функции, которые являются плоскими около их optima, могут затруднить, чтобы оптимизировать. Этот рисунок показывает пример такой функции, , и его объемная поверхностная диаграмма.
Эта функция имеет глобальный минимум в (0, 0) и является очень плоской около оптимального решения.
Используя fmincon
алгоритм в CAGE, чтобы найти минимум этой функции (от начальных условий ) приводит к результату, показанному в этом рисунке. Оптимизатор находит решение в , который не оптимален. В этих графиках можно ясно видеть, что оптимизатор не определил местоположение минимума в (0, 0).
Чтобы настроить оптимизатор, чтобы найти минимум, можно проявить один из нескольких подходов:
Измените начальные условия.
Для основанного на градиенте алгоритма (fmincon
в CAGE), изменение начальных условий может помочь оптимизатору определить местоположение минимума, где целевая функция является плоской около минимума. В примере, показанном на предыдущем рисунке, изменяя начальные условия в (x, y) = (1,1), приводит к fmincon
нахождение минимума в (0, 0).
Перемасштабируйте целевую функцию.
Перемасштабируйте целевую функцию с операцией, которая не изменяет местоположение никаких оптимальных решений, например, пытается пустить квадратный корень, четвертый корень или журнал, или умножиться положительной скалярной величиной. Проверяйте, что положение оптимума не сменилось. Когда целевая функция является плоской около оптимума, перемасштабирование целевой функции может помочь основанным на градиенте алгоритмам оптимизации, таким как fmincon
в CAGE. В примере, показанном на предыдущем рисунке, когда fmincon
в CAGE используется, чтобы минимизировать , минимум в (0, 0) расположен.
Используйте основанный на неградиенте алгоритм.
Попробуйте или опции алгоритма поиска или генетического алгоритма шаблона. Когда эти алгоритмы не используют информацию о градиенте, они могут выполнить лучше, когда используется на задачах оптимизации с плоскими минимумами. В примере, показанном на предыдущем рисунке, алгоритм поиска шаблона в CAGE определил местоположение минимума с помощью настроек по умолчанию.
Запустите оптимизацию от нескольких начальных значений условия.
Если вы используете fmincon
затем другое возможное обходное решение должно установить параметр Number of Start Points, чтобы быть больше 1. Эта установка запускает fmincon
конкретное количество раз от различных условий запуска. Используйте эту опцию только для затронутых запусков, когда это может быть трудоемким.
Измените допуски.
Для основанного на градиенте алгоритма (fmincon
в CAGE), изменение переменных или функциональных допусков может помочь оптимизатору определить местоположение минимума, где целевая функция является плоской около минимума. Сокращение variable и допусков function может улучшить сходимость до оптимального значения в этом случае.