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

一、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值,经过计算验证,结果准确。
在这里插入图片描述
绘制出图形:
在这里插入图片描述
如上图,可以看到输出图像有很多的局部最优值,可以被用来检测算法是局部收敛还是全局收敛。

五、可执行文件

Griewank函数

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

  • 7
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值