Минимизируйте функцию со многими локальными минимумами

Описание

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

Пятая функция Де Йонга является двумерной функцией со многими (25) локальные минимумы:

dejong5fcn

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

Примечание:

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

Минимизируйте в командной строке

Чтобы запустить симулированный алгоритм отжига без ограничений, вызовите simulannealbnd в командной строке с помощью целевой функции в dejong5fcn.m, ссылаемый указателем анонимной функции:

rng(10,'twister') % for reproducibility
fun = @dejong5fcn;
[x,fval] = simulannealbnd(fun,[0 0])

Это возвращается

Optimization terminated: change in best function value less than options.FunctionTolerance.

x =
  -16.1292  -15.8214

fval =
    6.9034

где

  • x конечная точка, возвращенная алгоритмом.

  • fval значение целевой функции в конечной точке.

Минимизируйте Используя приложение оптимизации

Запускать минимизацию с помощью приложения Оптимизации,

  1. Настройте свою проблему, как изображено в приложении Оптимизации

  2. Нажмите Start под Run solver and view results:

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

Смотрите также

Похожие темы