随机权重的PSO算法

选用随机的权重,可以在多峰函数求解的时候,避免陷入局部最优。

一、目标函数

y=x(1)^2+2*x(2)^4;

二、随机权重的计算公式

权重可以理解为所占工作量的大小及影响整体能力的程度。

权重w设定为某种随机分布的随机数,当粒子在起始位置接近最优点时候,权重最小,加快算法的收敛。同时也可以克服在初期找不到最优点的局限。

%w=u+m*N(0,1)
%u=u(min)+[u(max)-u(min)]*rand(0,1)

三、MATLAB代码实现

随机权重的PSO:

function [xm,fv]=suijiquanzhongPSO(suijiquanzhonghanshu,N,c1,c2,meanmax,meanmin,sigma,M,D)
%目标函数、粒子数、学习因子、学习因子、最大权重、最小权重、方差、迭代步数
format long;
for i=1:N
    for j=1:D
        %初始化位置
        x(i,j)=randn;
        %初始化速度
        v(i,j)=randn;
    end
end
%计算适应度
for i=1:N
    p(i)=suijiquanzhonghanshu(x(i,:));
    y(i,:)=x(i,:);
end
zuiyou=x(N,:);%全局最优
for i=1:N-1
    if suijiquanzhonghanshu(x(i,:))<suijiquanzhonghanshu(zuiyou)
        zuiyou=x(i,:);
    end
end
%迭代求解
for t=1:M
    for i=1:N
        miu=meanmin+(meanmax-meanmin)*rand();
        w=miu+sigma*randn();
        v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(zuiyou-x(i,:));
        x(i,:)=x(i,:)+v(i,:);
        if suijiquanzhonghanshu(x(i,:))<p(i)
            p(i)=suijiquanzhonghanshu(x(i,:));
            y(i,:)=x(i,:);
        end
        if p(i)<suijiquanzhonghanshu(zuiyou)
            zuiyou=y(i,:);
        end
    end
    pbest(t)=suijiquanzhonghanshu(zuiyou);
end
r=[1:1:100];
plot(r,pbest,'r--','linewidth',2);
xlabel('迭代次数');ylabel('适应度');
title('随机权重策略自适应算法收敛曲线');
grid on
hold on
xm=zuiyou';
fv=suijiquanzhonghanshu(zuiyou);

目标函数:

function y=suijiquanzhonghanshu(x)
y=x(1)^2+2*x(2)^4;
end
%w=u+m*N(0,1)
%u=u(min)+[u(max)-u(min)]*rand(0,1)

四、测试

在命令行输入

[xm,fv]=suijiquanzhongPSO(@suijiquanzhonghanshu,100,2,2,0.8,0.5,0.2,100,2)

选取参数含义为:
目标函数:suijiquanzhonghanshu
粒子数:100
学习因子:2
权重最大值:0.8
权重最小值:0.5
随机权重平均值的方差:0.2
迭代步数:100
在这里插入图片描述

结果

在这里插入图片描述
得到理论最小值点为xm所表示:(-0.000004443481202e-04, -0.408099448228020e-04)
最小值fv所表示为: 5.744903292062844e-18
在这里插入图片描述
根据检验,图像符合实际,所以计算的结果可以认为是准确的。

如有遗漏或者错误,请在评论区中指正!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elm-pso算法是结合了极限学习机(ELM)和粒子群优化(PSO)的一种优化算法。ELM是一种机器学习算法,通过随机初始化输入层到隐藏层的权重和偏置,然后通过最小化误差来优化这些参数。而PSO是一种启发式优化算法,通过模拟鸟群觅食的方式来寻找最优解。 elm-pso算法能够用来解决一些实际问题,其中包括: 1. 模式识别:elm-pso算法可以用来识别复杂的模式,比如人脸识别、手写体识别等。通过对隐藏层的权重和偏置进行优化,elm-pso算法能够提高模型的准确率和泛化能力。 2. 回归分析:elm-pso算法可以用来进行回归分析,通过拟合非线性的函数关系,来预测未知的数据点。这在金融、经济预测等领域具有应用前景。 3. 特征选择:elm-pso算法可以用来选择最优的特征子集,从而提高模型的精确度和解释能力。通过优化隐藏层的权重和偏置,elm-pso算法能够选择最相关的输入特征,剔除无关的噪声特征。 4. 参数优化:elm-pso算法还可以用来优化其他机器学习算法中的参数。通过对待优化的参数进行编码,并结合粒子群的搜索机制,elm-pso算法能够找到最优的参数组合,提高模型的表现力和泛化能力。 总之,elm-pso算法结合了ELM和PSO的优势,能够在模式识别、回归分析、特征选择和参数优化等问题中发挥重要作用,提高模型的性能和效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值