面向高维优化问题的混沌粒子群混合蝴蝶优化算法(Matlab代码实现)

文章提出了一种新的混合算法HPSOBOA,结合蝶形优化(BOA)和粒子群优化(PSO),旨在解决BOA的精度低和收敛慢的问题。通过立方一维映射初始化和非线性参数控制策略改进BOA,并通过实验对比,证明了HPSOBOA在高维数值优化问题中具有更快的收敛速度和更好的稳定性,优于纯PSO和其它群优化算法。
摘要由CSDN通过智能技术生成

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码及详细文章讲解

🎉4 参考文献


💥1 概述

文献来源:

摘要:为了解决蝶形优化算法(BOA)容易出现精度低、收敛慢的问题,研究的趋势是将两种或多种算法混合,以获得优化问题领域的最优解。提出了一种新的混合算法,即HPSOBOA,并介绍了三种改进基本BOA的方法。因此,引入了使用立方一维映射的BOA初始化,并执行了非线性参数控制策略。此外,将粒子群优化(PSO)算法与BOA相结合,以改进全局优化的基本BOA。进行了两个实验(包括26个众所周知的基准函数)来验证所提出算法的有效性。实验的比较结果表明,与PSO、BOA和其他已知的群优化算法相比,混合HPSOBOA在高维数值优化问题中收敛速度快,稳定性更好。 

关键词:蝶形优化算法(BOA);粒子群优化;立方图;非线性;高维度

📚2 运行结果

 

 

部分代码:

function func_plot_con(func_name)

[lb,ub,dim,fobj] = Hight_Get_Functions_details(func_name);

switch func_name 
    case 'F1' 
        x=-100:2:100; y=x; %[-100,100]        
    case 'F2' 
        x=-10:0.2:10; y=x; %[-10,10]        
    case 'F3' 
        x=-10:0.2:10; y=x; %[-10,10]        
    case 'F4' 
        x=-10:0.5:10; y=x; %[-10,10]
    case 'F5' 
        x=-10:0.5:10; y=x; %[-10,10]
    case 'F6' 
        x=-1.28:0.05:1.28; y=x; %[-1.28,1.28]
    case 'F7' 
        x=-10:0.5:10;  y=x;  %[-10,10]
    case 'F8' 
        x=-1:0.01:1;y=x; %[-1,1]
    case 'F9' 
        x=-10:0.1:10;   y=x; %[-10,10]    
    case 'F10' 
        x=-10:0.1:10;   y=x; %[-10,10]
    case 'F11' 
        x=-5.12:0.1:5.12;   y=x;  %[-5,10]
    case 'F12' 
        x=-5:0.05:5; y=x;  %[-5,5]
    case 'F13' 
        x=-100:2:100; y=x;  %[-100,100]
    case 'F14' 
        x=-100:2:100; y=x;  %[-100,100]
    case 'F15' 
        x=-10:0.1:10; y=x; %[-10,10]
    case 'F16' 
        x=-5.12:0.1:5.12; y=x; %[-50,50]
    case 'F17' 
        x=-5.12:0.1:5.12; y=x; %[-50,50]
    case 'F18' 
        x=-20:0.05:20; y=x; %[-20,20]
    case 'F19' 
        x=-600:5:600; y=x; %[-600,600]
    case 'F20' 
        x=-10:0.2:10; y=x; %[-10,10]      
    case 'F21' 
        x=-10:0.1:10; y=x; %[-50,50]
    case 'F22' 
        x=-5:0.05:5; y=x; %[-50,50]
    case 'F23' 
        x=-2:0.02:2; y=x; %[-5,5]     
    case 'F24' 
        x=-1:0.01:1; y=x; %[-1,1]
    case 'F25' 
        x=-20:0.2:20; y=x; %[-100,100]
    case 'F26' 
        x=-5:0.2:5; y=x; %[-10,10]
end    

L=length(x);
f=[];

for i=1:L
    for j=1:L
            f(i,j)=fobj([x(i),y(j)]);         
    end
end

surfc(x,y,f,'LineStyle','none');
% contour(x,y,f)
% colormap winter
colormap parula
% colormap autumn
% colormap summer

end

🌈3 Matlab代码及详细文章讲解

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值