文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进
CEC2005中的测试
本文KAU将介绍一个2022年发表在中科院1区期刊KBS上的优化算法——白鲸优化算法(Beluga Whale Optimization,BWO)[1]
该算法由大连理工大学学者Zhong等人[1]于2022年提出,其模拟了白鲸游泳、捕食和鲸落行为,与15种优化算法在30个基准函数和4个真实优化问题上进行测试,均显示出其惊艳的性能,目前也成功应用于机器学习、电力系统经济负荷调度、车间调度等领域。
图源文献[1]
各位可以跟着作者一起学习一下该算法的巧妙之处,并且,在文章的最后也给出了算法的MATLAB和Python实现。将这样性能优异的算法应用于一些工程问题也能够在一定程度上提升文章的创新性。
00 目录
1 白鲸优化 (BWO) 算法原理
2 代码目录
3 算法性能
4 源码获取
01 白鲸优化 (BWO) 算法原理
图源文献[1]
BWO同样是基于种群的元启发式算法,其通过白鲸游泳、捕食和鲸落三种行为来实现模型参数的优化,结构简单,并且具有良好的全局和局部搜索能力,在现实工程问题中同样具有优异性能。下面讲解BWO原理:
1.1 初始化
白鲸的位置可视为搜索代理,其遵循随机初始化的方法:
另外,白鲸通过平衡因子Bf从勘探阶段过渡到开发阶段,这一点和前面提过的哈里斯鹰优化算法HHO很像:
B0是(0,1)之间的随机数,T是当前迭代次数,Tmax是最大迭代次数,当Bf>0.5时,白鲸将处于勘探阶段,呈镜像游动,当Bf≤0.5时,白鲸将处于开发阶段,进行捕食行为。
1.2 勘探阶段—游泳
BWO的勘探阶段模仿白鲸的成对游泳行为,它们以镜像或同步的方式随机移动,可以表示为:
其中,pj代表维度d中的一个随机整数,Xipj代表第i头白鲸在pj维度的值,而Xrp1则代表了一头随机白鲸的位置,r1和r2都是随机数,sin()和cos()代表了镜像白鲸的鳍朝向水面,even和odd是偶数和奇数。
1.3 开发阶段—捕食
BWO的开发阶段模仿白鲸的捕食行为,白鲸种群间会相互交流、分享位置信息,从而与附近白鲸合作觅食,同时为提高算法的收敛能力,在开发阶段使用了Levy飞行策略,可以表示为:
其中,r3和r4为随机数,Xr和Xbest分别为随机白鲸和最佳白鲸的位置,LF为Levy飞行函数,其表达式如下:
1.4 鲸落
若平衡因子Bf≤Wf,则进入鲸落阶段,鲸落是由于白鲸在迁徙和觅食时容易受到虎鲸和人类活动的捕食,死亡的白鲸将沉入海底,此后为维持种群数目,利用该个体位置、随机个体位置和鲸落步长建立新个体位置:
其中,r5、r6和r7是随机数,Xstep是鲸落步长,其定义如下:
其中,Wf代表白鲸个体鲸落概率,该策略也可以引入其他算法以进行解的淘汰优化。
1.5 算法流程
BWO的整个算法已介绍完毕,个人感觉是非常简单清爽的,它的框架和HHO很类似,但除了勘探与开发外,BWO还有鲸落阶段增强算法跳出局部最优的能力,并且经过验证其收敛速度和精度也很不错,想尝试新算法进行应用的朋友不妨试试BWO,后续KAU也会推出BWO的原创改进。该算法的流程图如下:
1.6 算法利用&改进
BWO的算法框架使得其非常便于嵌入修改或利用,无论是其勘探阶段中的镜像游泳行为还是开发阶段中的捕食行为都可引入其他算法中,同时,鲸落阶段作为算法跳出局部最优的一种策略,也可引入其他算法中作为“变异”策略的一种。
其次,可以改进BWO的平衡因子以使其在复杂优化问题中前期和后期的全局/局部搜索更加平衡,并且其开发阶段的Levy飞行具有长短步长相结合的特点,与局部搜索的十分契合,但同样可以切换为黄金正弦或自适应等具有更佳遍历性的策略,以充分探索优解附近的搜索空间。
02 代码目录
(左Python,右Matlab)
代码包含MATLAB和Python,Python代码为KAU按照Matlab代码手搓而成,我发现理解算法的程序实现对理解原理同样有帮助。考虑到很多同学获取代码后,MATLAB代码部分有乱码(MATLAB版本问题),有几个方法:
①可以将MATLAB版本改为2020及以上;
②使用乱码解决文件夹中的txt文件即可;
③将m文件用记事本打开,再将记事本中的代码复制到Matlab即可
代码都经过作者重新注释,代码更清爽,可读性强。
03 算法性能
采用标准测试函数初步检验其寻优性能
在MATLAB中,进行标准函数的测试,执行程序结果如下:
在Python中,进行标准函数的测试,执行程序结果如下:
MATLAB和Python都进行了F13函数的测试,测试效果都不错,其收敛速度和精度很好。
04 源码获取
在公众号:KAU的云实验台
回复 BWO 即可
后续KAU将更新关于BWO的原创改进算法,感兴趣的话可以关注不迷路~
参考文献
[1] Zhong Changting, Li Gang, Meng Zeng. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm [J]. Knowledge-Based Systems, 2022, 251.
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。