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

Описание

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

Пятая функция Де Йонга является двумерной функцией со многими (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 использует поток случайных чисел.

Похожие темы