【Matlab群体智能算法第八期】基于logistic-sine融合混沌映射的改进LSPSO算法(含完整matlab代码)

0.引言

        在第七期中主要介绍了基于改进Sine混沌映射的ISPSO算法,对Sine混沌映射及相关matlab代码进行分享,并根据目标函数,对改进后的SIne-PSO算法与SIne-PSO算法进行对比。最后得出改进后Sine混沌映射的PSO算法在高维度优化问题求解时具有更好的求解精度及稳定性。

        通过查阅相关文献可知,采用融合混沌映射策略能够产生更加规律与均匀的初始种群。文献[1]采用logstic-sine混沌映射生成群体智能算法的初始种群,提升初始种群的均匀性及初始解的质量。因此,本文参照文献[1],利用logstic-sine融合混沌映射策略作为PSO算法的种群初始化改进策略。

1.基于logistic-sine的融合混沌映射原理及matlab代码

        基于logistic-sine的融合混沌映射策略如下:

x_{i+1}=\mu *x_{i}*(1-x_{i})+(4-\mu)*sin(\pi *x_{i})/4

        其中,x为种群粒子解,\mu是混沌乘数,文中取0.5。

        根据上述logistic-sine的融合混沌映射原理,matlab代码如下:

%基于logistic-sine的融合混沌映射的种群初始化
function x_apply =log_sin_int(dim,miu,Lb,Ub)
x=rand();%随机粒子
%根据logistic-sine的融合混沌映射函数,生成后续初始种群
for i=1:dim-1
    x(i+1)=miu*x(i)*(1-x(i))+(4-miu)*sin(pi*x(i))/4;
end
%获取在粒子边界约束内的种群解
x_apply=Lb+x.*(Ub-Lb);

%粒子边界约束检查
I=x_apply<Lb;
x_apply(I)=Lb(I);
U=x_apply>Ub;
x_apply(U)=Ub(U);
end

2.基于logistic-sine融合混沌映射的改进LSPSO算法

        文中第1节已对logistic-sine融合混沌映射策略原理及代码进行讲解与复现,现将logistic-sine融合混沌映射策略与传统PSO算法相结合,并基于相应目标函数进行求解,以验证改进PSO算法的可行性,具体matlab代码如下:

%% 基于logistic-sine融合混沌映射的改进粒子群算法主程序
clc;
clear all;
close all
%% 算法基本参数设置
c1=2; %学习因子1
c2=2;%学习因子2
w=0.7;%惯性权重
MaxDT=500;%最大迭代次数
D=3;%搜索空间维数(未知数个数)
N=30;%初始化群体个体数目
Lb=-100*ones(1,D);%种群解的下限
Ub=100*ones(1,D);%种群解的上限
Vmax=1*ones(1,D);%速度上限
Vmin=-1*ones(1,D);%速度下限
miu=0.5;%混沌乘数
Best_f=[];pop=[];
%% 基于logistic-sine融合混沌映射的种群初始化
for L=1:N
    pop(L,:) = log_sin_int(D,miu,Lb,Ub);
    Best_f(1,L)=fitness_obl(pop(L,:));
end
V=rand(N,D);
%计算各个粒子的适应度值并初始化Pi和Pg
[fitnessgbest bestindex]=min(Best_f);
gbest=pop(bestindex,:);
pbest=pop;
fitnesspbest=Best_f;

%% 粒子群算法更新迭代部分
for iter=1:MaxDT
    
    for j=1:N
        %种群更新
        V(j,:)=w*V(j,:)+c1*rand*(pbest(j,:)-pop(j,:))+c2*rand*(gbest-pop(j,:));
        %更新速度边界检查
        I=V(j,:)<Vmin;
        V(j,I)=Vmin(I);
        U=V(j,:)>Vmax;
        V(j,U)=Vmax(U);
        pop(j,:)=pop(j,:)+V(j,:);

        %粒子边界检查
        PI=pop(j,:)<Lb;
        pop(j,PI)=Lb(PI);
        PU=pop(j,:)>Ub;
        pop(j,PU)=Ub(PU);
        %计算更新后种群的适应度函数值
        Best_f(j)=fitness_obl(pop(j,:));

        %个体极值更新
        if Best_f(j)<fitnesspbest(j)
            pbest(j,:)=pop(j,:);
            fitnesspbest(j)=Best_f(j);
        end

        %全局极值更新
        if Best_f(j)<fitnessgbest
            gbest=pop(j,:);
            fitnessgbest=Best_f(j);
        end

    end
    %记录粒子全局最优解
    Fgbest(iter)=fitnessgbest;

end

%% 结果可视化
figure
plot(Fgbest)
title(['适应度曲线 ' '终止次数=' num2str(MaxDT)]);
xlabel('进化代数');
ylabel('适应度')

        为验证改进后算法的求解效果,本文将采用logistic-sine融合混沌映射改进后的PSO算法与及原始PSO算法寻优结果进行对比,采用测试函数与第1~7期测试函数相同,此处不再赘述。

        根据上述目标函数,基于logistic-sine融合混沌映射改进的PSO算法适应度曲线如下:

图1 基于logistic-sine融合混沌映射改进的PSO算法适应度迭代曲线(粒子维度为3)

图2 标准粒子群算法适应度曲线(粒子维度为3)

         根据上述对比可知,采用logistic-sine融合混沌映射策略后,能够获得更好的初始解,解的质量更高,有助于PSO算法更快的实现收敛,并获取更好的求解精度。为了验证基于logistic-sine融合混沌映射策略粒子群算法求解的稳定性,分别对该目标函数求解10次,并分别记录10次中目标函数最小值、最大值及均值。运行结果如下所示:

粒子维度3
运行次数logistic-sine标准粒子群算法Sine-PSOISine-PSO
11.59E-300.08317.43E-312.30E-30
21.11E-310.05475.55E-325.72E-28
35.48E-300.02942.23E-297.30E-31
46.34E-290.01191.23E-322.92E-29
51.32E-290.04773.18E-296.17E-27
66.21E-270.03991.39E-313.06E-30
79.81E-300.04599.76E-294.19E-31
89.01E-290.02352.13E-299.33E-30
93.97E-290.00435.18E-314.63E-30
108.36E-270.05327.53E-297.27E-27
均值1.47943E-270.039362.49776E-291.40588E-27
最小值1.10934E-310.00431.2326E-324.19082E-31
最大值8.36352E-270.08319.76339E-297.26677E-27

        根据上述结果能够发现,尽管采用logistic-sine融合混沌映射策略后,PSO算法能够具有较好的提升,但与Sine混沌映射相比,当粒子维度为3时,logistic-sine算法改进的PSO算法解的精度及稳定性反而有所降低。这一现象与第7期中基于改进Sine混沌映射策略的改进PSO算法相似。

        在上期中通过对不同维度下算法求解能力的对比,证明改进后Sine策略在高维求解是具有更好的性能。因此,本文延续上期思路,分别对三种算法在该测试函数下进行粒子维度为5、10、50及100情况下适应度函数对比情况,具体结果如下:

粒子维度5时各算法适应度值对比情况:

粒子维度5
运行次数logistic-sineSine-PSOISine-PSO
11.66E-221.62E-221.52E-21
26.24E-211.03E-222.01E-22
38.13E-247.04E-254.74E-24
48.88E-244.27E-211.05E-23
53.54E-235.66E-225.89E-23
61.44E-214.82E-234.93E-24
71.59E-237.58E-254.02E-23
82.67E-241.32E-259.18E-23
91.42E-212.91E-235.71E-22
101.82E-222.79E-224.15E-22
均值9.52662E-225.46339E-222.91637E-22
最小值2.67313E-241.31822E-254.74013E-24
最大值6.23815E-214.27388E-211.51773E-21

粒子维度为10时,各算法适应度函数的对比情况:

粒子维度10
运行次数logistic-sineISine-PSOSine-PSO
11.51E-052.15E-051.01E-06
23.35E-097.47E-073.68E-09
34.20E-062.25E-050.000205002
46.79E-071.37E-057.03E-05
52.73E-066.15E-062.19E-07
63.39E-062.84E-054.47E-10
76.37E-073.79E-062.93E-09
87.19E-062.83E-058.94E-09
91.11E-054.49E-092.84E-06
109.71E-074.29E-064.63E-06
均值4.59961E-061.29349E-052.84036E-05
最小值3.34589E-094.49273E-094.47233E-10
最大值1.51037E-052.84421E-050.000205002

粒子维度为50时,各算法适应度函数的对比情况:

粒子维度50
运行次数logistic-sineISine-PSOSine-PSO
11.48E+003.7166151354.65689791
21.73E+003.1262072754.053907075
31.77E+002.1705339575.942409671
41.29E+002.2635325912.69338274
52.40E+003.7000107862.92443506
62.29E+002.0672826833.562016503
72.09E+003.24877180519803.65408
81.94E+002.372561345.317398751
92.29E+003.4169308649907.125206
101.64E+004.2920956845.882953292
均值1.891789153.0374542122974.581269
最小值1.2930322222.0672826832.69338274
最大值2.3959771874.29209568419803.65408

粒子维度为100时,各算法适应度函数的对比情况:

粒子维度100
运行次数logistic-sineISinePSOSine-PSO
124.6501416131.308838610045.23924
226.6689422430.5765912110039.88843
331.2104074327.53145305288.447776
439.6933649235.8015407183.8666929
533.1731903744.2160825319938.62958
630.7173521730.8993146710045.64049
729.7967149834.4213067510021.72415
828.0852704233.42632033738.2758468
924.2530926429.05607031355.0614265
1030.7137524330.6526960710011.66353
均值29.8962229232.789021427166.843716
最小值24.2530926427.53145305183.8666929
最大值39.6933649244.2160825319938.62958

        根据上述结果可知,当粒子维度为3时logistic-sine-PSO算法求解能力弱于Sine-PSO算法,与改进后Sine-PSO算法性能接近。但随着粒子维度的增加logistic-sine-PSO算法的求解稳定性及优越性更加突出。以粒子维度为100时为例,采用logistic-sine混沌映射策略的PSO算法适应度函数值明显优于Sine-PSO算法与改进的Sine-PSO算法,领先幅度较为明显。

        当粒子维度为50时,logistic-sine-PSO算法在10次求解过程中均领先Sine-PSO算法与改进的Sine-PSO算法,并未出现Sine-PSO算法中某几次适应度函数值较大的现象。这证明logistic-sine-PSO算法粒子解的均匀性更好,能够更快的实现函数精确解的求解。

        同时,维度50时Sine-PSO算法适应度函数值异常的问题可能与Sine混沌映射的缺点有关,导致在迭代次数500次的情况下Sine-PSO算法没能够找到较好的精确解,且该情况随着粒子维度的增加变得更加明显。

3.总结   

        根据第2节中的仿真结果可知,Sine-PSO算法在低纬空间中具有较好的求解性能,但随着粒子维度的逐渐提升,Sine混沌映射策略本身的缺点被逐渐放大,从而导致无法获取较好的精确解。ISine混沌映射策略能够更好的处理高维粒子优化求解问题,当粒子维度逐渐升高时,依旧能够获取较好的初始解及精确解。而logistic-sine混沌映射策略具有相比ISine混沌映射更加均匀的初始种群,因此在高维求解中logistic-sine-PSO算法的优势更加明显,且随着维度的增加,该优势更加明显。

        限于作者水平有限,上述文章在复现过程中可能存在不足,欢迎大家批评指正。本文在写作过程中logistic-sine混沌映射原理参照下述文献进行,在此对该文献作者进行感谢,若有侵权,请联系我进行修改删除。参考文献如下:

[1] 夏艺瑄,贺兴时. 融合混沌映射和乘除算子的花授粉算法及应用 [J]. 智能计算机与应用, 2024, 14 (01): 76-84.

往期传送门:

【Matlab群体智能算法第七期】基于改进Sine混沌映射的ISPSO算法(含完整matlab代码)-CSDN博客

【Matlab群体智能算法第六期】基于Sine混沌映射的SPSO算法(含完整matlab代码)_二维 sine-tent 混沌映射 matlab-CSDN博客

【Matlab群体智能算法第五期】基于改进Tent混沌映射的ITPSO算法(含完整matlab代码)_基于tent混沌映射的粒子群优化算法-CSDN博客

【Matlab群体智能算法第四期】基于Tent混沌映射、自适应t分布和动态选择策略的TDPSO算法(含完整matlab代码)_自适应tent混沌映射-CSDN博客

【Matlab群体智能算法第三期】基于Tent混沌映射的TPSO算法(含完整matlab代码)_基于改进的tent混沌映射-CSDN博客

【Matlab群体智能算法第二期】基于反向学习的改进粒子群算法(含matlab代码)_改进粒子群算法matlab代码-CSDN博客

【Matlab群体智能算法第一期】粒子群算法及其变体(一)_粒子群算法示意图-CSDN博客

  • 31
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值