具有许多局部极小值的最小化函数

描述

本节给出一个例子,说明如何使用模拟退火来寻找函数的局部最小值。

德容第五函数是一个具有多个(25)局部极小值的二维函数:

dejong5fcn

许多标准的优化算法陷入了局部最小值。由于模拟退火算法执行广泛的随机搜索,减少了陷入局部极小值的机会。

注意:

因为模拟退火使用随机数生成器,所以每次运行这个算法都会得到不同的结果。看到复制你的结果为更多的信息。

在命令行最小化

若要运行无约束的模拟退火算法,请调用simulannealbnd在命令行中使用目标函数dejong5fcn.m,被匿名函数指针引用:

rng(10,'twister') %可重现性[x,fval] = simulannealbnd(fun,[0 0])

这将返回

终止优化:最佳功能值变化小于选项。功能容忍度。x = -16.1292 -15.8214 fval = 6.9034

在哪里

  • x是算法返回的最后一个点。

  • fval为最终点的目标函数值。

最小化使用优化应用程序

为了使用优化应用程序运行最小化,

  1. 设置您的问题,如图优化应用程序

  2. 点击开始运行求解程序并查看结果:

    你的结果可能与图片中的不同,因为simulannealbnd使用随机数流。

另请参阅

相关的话题