В этой таблице описываются типичные проблемы оптимизации и приводятся рекомендации по их устранению.
|
Проблема |
Рекомендация |
|---|---|
|
Решение, найденное |
Нет никакой гарантии, что решение является глобальным минимумом, если ваша проблема не является постоянной и имеет только один минимум. Чтобы найти глобальный минимум, начните оптимизацию с нескольких начальных точек (или интервалов, в случае |
|
Невозможно оценить целевую функцию |
Измените функцию, чтобы вернуть большое положительное значение для |
|
Процедура минимизации, по-видимому, входит в бесконечный цикл или возвращает решение, которое не является минимальным (или не равно нулю, в случае |
Возможно, ваша целевая функция возвращается options = optimset('FunValCheck','on') и вызовите функцию оптимизации с помощью |
|
Решатель занимает много времени. |
Большинство проблем оптимизации выигрывают от хороших отправных точек. Попробуйте случайные начальные точки в области, которая может быть близка к решению, в зависимости от характеристик проблемы. Иногда вы можете решить сложную задачу, используя эволюционный подход. Во-первых, решить проблемы с меньшим количеством независимых переменных. Используйте решения этих более простых задач в качестве отправной точки для более сложных задач, используя соответствующее сопоставление. Кроме того, иногда можно ускорить решение, используя более простые объективные функции и менее строгие условия остановки на начальных этапах задачи оптимизации. |
|
Неясно, что делает решатель. |
Чтобы увидеть, что делает решатель при итерациях:
|
|
|
|