粒子群算法(PSO)的测试函数:Griewank函数

文章目录

  • 一、Griewank 公式
  • 二、简介
    • 1.粒子群算法简介
    • 2.Griewanke作为测试函数
  • 三、MATLAB代码实现
  • 四、测试
  • 五、可执行文件

一、Griewank 公式

粒子群算法(PSO)的测试函数:Griewank函数_第1张图片

二、简介

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值,经过计算验证,结果准确。
粒子群算法(PSO)的测试函数:Griewank函数_第2张图片
绘制出图形:
粒子群算法(PSO)的测试函数:Griewank函数_第3张图片
如上图,可以看到输出图像有很多的局部最优值,可以被用来检测算法是局部收敛还是全局收敛。

五、可执行文件

Griewank函数

希望可以对学习的朋友有所帮助,如有遗漏或者错误,请评论我改正!

你可能感兴趣的:(通信常用计算算法,算法,matlab,动态规划)