一、Griewank 公式
二、简介
1.粒子群算法简介
粒子群算法是基于群体的随机优化技术,它初始化一组随机解,然后迭代搜寻最优解。通过追随当前搜索到的最优解来寻找全局的最优解。
2.Griewanke作为测试函数
格里旺克函数,是数学上用于测试优化程序效率的函数。
Griewank函数存在局部极小点,数目与问题的维数有关,最小值在(0,0…0)处取得。
是非线性的多模态函数,具有很广泛的搜索空间,可以用来对粒子群算法进行测试。
三、MATLAB代码实现
Griewank函数:
function y=Griewank(x)
%Girewank函数
%输入x,得出y
[row,col]=size(x);
if row>1
error('输入错误')
end
y1=1/4000 *sum(x.*2);
y2=1;
for h=1:col
y2=y2*cos(x(h)/sqrt(h));
end
y=y1-y2+1;
y=-y;
end
绘制出图形:
function pmj_girewank
%绘制图形
x = [-10 : 0.1 : 10];
y = x;
[X,Y]=meshgrid(x,y);
[row,col]=size(X);
for l=1:col
for h=1:row
z(h,l)=Griewank([X(h,l),Y(h,l)]);
end
end
surf(X,Y,z);
view([-15.5 30]);
shading interp
end
四、测试
Griewank函数:
输入一个参数x,可以求得对应的y值,经过计算验证,结果准确。
绘制出图形:
如上图,可以看到输出图像有很多的局部最优值,可以被用来检测算法是局部收敛还是全局收敛。
五、可执行文件
希望可以对学习的朋友有所帮助,如有遗漏或者错误,请评论我改正!