💥1 概述
文献来源:
摘要:为了解决蝴蝶优化算法(BOA)精度低、收敛速度慢的问题,将两种或两种以上的算法进行杂交以获得优化问题的优解是研究的趋势。提出了一种新的混合算法HPSOBOA,并介绍了三种改进基本BOA的方法。因此,引入了基于一维三次映射的BOA初始化方法,并采用了非线性参数控制策略。此外,将粒子群优化(PSO)算法与BOA算法相结合,改进了全局优化的基本BOA算法。通过两个实验(包括26个知名的基准函数)验证了所提算法的有效性。实验对比结果表明,与PSO、BOA等已知群优化算法相比,混合HPSOBOA算法收敛速度快,在高维数值优化问题上具有更好的稳定性。
蝴蝶优化算法(BOA)由Arora和Singh于2018年提出[1]。
该算法的方法和概念最早在2015年国际信号处理、计算与控制会议(2015 ISPCC)上提出[2]。该算法提出后,作者对BOA进行了大量的研究。Arora和Singh[3]提出了一种改进的带有十个混沌映射的蝴蝶优化算法,用于解决三个工程优化问题。Arora和Singh[4]提出了一种新的混合优化算法,将标准BOA与人工蜂群(Artificial Bee Colony, ABC)算法相结合。Arora和Singh[5]利用BOA求解无线传感器网络中的节点定位问题,并将结果与粒子群优化算法(particle swarm optimization, PSO)和萤火虫算法(firefly algorithm, FA)进行了比较。Arora等[6]提出了一种改进的蝶形优化算法来解决机械设计优化问题。Singh和Anand[7]提出了一种新的自适应蝴蝶优化算法,这是一种改变基本BOA感觉模态的新现象。Sharma和Saha[8]提出了一种新的混合算法(m-MBOA),利用共生生物搜索(symbiosis organisms search, SOS)的互助阶段来增强BOA的开发能力。Yuan等[9]提出了一种改进的蝶形优化算法,根据年成本、能源效率和污染物减排等因素对系统性能进行优化分析。Li等[10]利用交叉熵方法提出了一种改进的工程设计问题BOA。
此外,所提出的优化算法根据其原理主要分为三类,其中著名的元启发式算法主要包括进化算法:遗传算法(Genetic algorithm, GA)[15,16]、差分进化算法(Differential Evolution, DE) [17];群体智能算法:粒子群算法(Particle swarm Optimization, PSO)[18]、蚁群算法(Ant Colony Optimization, ACO)[19]、人工蜂群算法(Artificial Bee Colony, ABC) [20];基于物理的算法:引力搜索算法(GSA)[21]、正弦余弦算法(SCA)[22]和Henry气溶解度优化算法(HGSO)[23]。近十年来,学者们提出了许多新的基于自然界动物行为的群体智能优化算法,也称为自然启发式算法,如蝙蝠启发算法(BA)[24]、磷虾群算法(KH)[25]、果蝇优化算法(FOA)[26]、灰狼优化算法(GWO)[27]、蛾焰优化算法(MFO)[28]、鲸鱼优化算法(WOA)[29]、Salp群算法(SSA)[30]、Grasshopper Optimization Algorithm (GOA)[31]和Marine predator Algorithm (MPA)[32]。要了解更多细节,读者可以参考论文[33-35],其中对最近和流行的算法进行了很好的回顾。
介绍了各种智能优化算法的混合算法和粒子群算法的研究现状。Zhen等[36]提出了一种新的模因算法,称为shuffle particle swarm optimization (SPSO),该算法将PSO与shuffle frog jumping algorithm (SFLA)相结合。Niu和Li[37]提出了一种结合PSO和DE的新型混合全局优化算法PSODE。Lai和Zhang[38]提出了一种结合PSO和GA的新型混合算法,并给出了23个基准问题的实验。Mirjalili和Hashim[39]提出了一种新的混合PSOGSA算法用于函数优化。Wang等[40]提出了一种基于磷虾群和量子粒子群优化(QPSO)的混合算法,用于基准和工程优化。Trivedi等[41]提出了一种新的混合PSO-DA算法,将PSO算法与蜻蜓算法(dragonfly algorithm, DA)相结合,进行全局数值优化。Trivedi等[42]针对全局数值优化问题提出了一种新的PSOWOA算法。Laskar等[43]在对粒子群算法和其他元启发式算法混合算法进行研究的基础上,提出了一种新的用于电子设计优化问题的混合HWPSO算法。此外,粒子群算法与BOA在结构上有一定的相似性,研究一种新的粒子群算法与BOA的混合算法具有重要意义。
📚2 运行结果
可视化:
%% plots figure('Position',[500 400 800 200]) %[left bottom width height] subplot(1,2,1); func_plot_con(Function_name); title(Function_name) % xlabel('x_1'); % ylabel('x_2'); % zlabel([Function_name,'( x_1 , x_2 )']) %% Convergence curves subplot(1,2,2); semilogy(BOA_cg_curve,'b-','LineWidth',1) hold on semilogy(PSOBOA_cg_curve,'g-','LineWidth',1) hold on semilogy(HPSOBOA_cg_curve,'r-','LineWidth',1) % axis tight % grid off xlabel('Iterations'); ylabel('Fitness value'); legend('BOA','PSOBOA','HPSOBOA')
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。