一、分析Rastrigin函数
Rastrigin函数的函数形式为:
图1
绘制Rastrigin函数图像的代码为:surf(X1,X2,z,'EdgeColor','none','FaceColor','interp')
为了验证上面的推断,所以进一步绘制该函数二维等高线图如图2所示,在图中分别从x轴和y轴的正负方向观察,可以得到和前面相同的分析结果,所以此时确定Rastrigin函数全局最小值的位置位于(0,0)。 图2
绘制Rastrigin函数等高线的代码为:contour(X1,X2,z)
二、利用遗传算法寻找Rastrigin函数的(全局)最小值 前文中通过对Rastrigin函数图形的分析,得到此函数的全局最小值位于 (0,0),那么遗传算法作为全局寻优算法得到的结果又如何呢? 因此,利用MATLAB中optimtool工具箱中的遗传算法来求解Rastrigin函数的(全局)最小值,如图3所示为求解过程中拟合结果、变量变化等参数图形。 options = optimoptions('ga');
调用遗传算法求解Rastrigin函数(全局)最小值的代码为: [ ]=ga(@rastrigin,nvars,options);
参考文献 周琛琛.基于Matlab遗传算法工具箱的函数优化问题求解[J].现代计算机,2006(12):84-86. 获取代码,后台回复“Rastrigin and GA”或“RGA”