Этот раздел представляет пример, который показывает, как найти локальный минимум функции с помощью моделируемого отжига.
Пятая функция Де Йонга является двумерной функцией со многими (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
является значением целевой функции в конечном пункте.
Запускать минимизацию с помощью приложения Оптимизации,
Настройте свою проблему, как изображено в приложении Оптимизации
Нажмите Start под Run solver and view results:
Ваши результаты могут отличаться от изображенных единиц, потому что simulannealbnd
использует поток случайных чисел.