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