本节给出一个例子,说明如何使用模拟退火来寻找函数的局部最小值。
德容第五函数是一个具有多个(25)局部极小值的二维函数:
dejong5fcn
许多标准的优化算法陷入了局部最小值。由于模拟退火算法执行广泛的随机搜索,减少了陷入局部极小值的机会。
注意:
因为模拟退火使用随机数生成器,所以每次运行这个算法都会得到不同的结果。看到复制你的结果为更多的信息。
若要运行无约束的模拟退火算法,请调用simulannealbnd
在命令行中使用目标函数dejong5fcn.m
,被匿名函数指针引用:
rng(10,'twister') %可重现性[x,fval] = simulannealbnd(fun,[0 0])
这将返回
终止优化:最佳功能值变化小于选项。功能容忍度。x = -16.1292 -15.8214 fval = 6.9034
在哪里
x
是算法返回的最后一个点。
fval
为最终点的目标函数值。
为了使用优化应用程序运行最小化,
设置您的问题,如图优化应用程序
点击开始下运行求解程序并查看结果:
你的结果可能与图片中的不同,因为simulannealbnd
使用随机数流。