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