优化算法(二)——鲸鱼算法(WOA)
停更好久,今天继续我们的算法介绍,今天为大家介绍的是鲸鱼算法(Whale Optimization Algorithm,WOA)。鲸鱼优化算法(WOA)是 2016 年由澳大利亚格里菲斯大学的 Mirjalili 等提出的一种新的群体智能优化算法,因算法简练易于实现,且对目标函数条件要求宽松,参数控制较少等种种优点受到一批又一批学者的亲睐,且经过不断的改进WOA已应用于许多领域。[*]算法介绍
WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行为的模拟, 通过鲸鱼群体搜索、包围、追捕和攻击猎物等过程实现优时化搜索的目的。在原始的WOA中,提供了包围猎物,螺旋气泡、寻找猎物的数学模型。在初始每个鲸鱼的位置
初始化的鲸鱼位置
代表了一个可行解,通过后期探索和开发两个阶段,逐步找到最佳位置,即最优解。
首先,座头鲸可以识别猎物的位置并将其包围,但由于最佳位置在搜索空间中不是已的,因此WOA算法假定当前最佳候选解决方案是目标猎物或接近最佳猎物。 确定最佳搜索代理后,其他搜索代理将因此尝试更新其对最佳搜索代理的位置。 此行为由以下方程式表示:
座头鲸还可以使用螺旋气泡发捕捉猎物,该方法首先计算鲸鱼与猎物之间的距离。通过距离创建一个螺旋方程,等式如下:
鲸鱼在选择包围法和螺旋气泡法捕猎是随机的,因此prob我们使用来进行随机选择,公式如下:
当然,在海洋中的座头鲸会在四处寻找猎物,在这里,我们使用随机值大于1或小于-1的A来强制搜索代理远离参考鲸,与开发阶段相反,我们在探索阶段根据随机选择的搜索代理而不是到目前为止找到的最佳搜索代理来更新搜索代理的位置并允许WOA算法执行全局搜索,等式如下:
2. 源代码
WOA源代码传送门: SEYEDALI MIRJALILI
3. 算法改进
本人在改进WOA的过程中,发现本身具有很强的寻优能力,是一个不错的算法,如果真的要改的话可以采用混沌映射,高斯突变之类的在探索阶段进行扰动,但是该算法已经发布好多年了,更多的还是自己新奇想法比较好,传统的改进方法早已被很多研究人员使用。
4.引用
Mirjalili, S., & Lewis, A. (2016). The whale optimization algorithm.Advances in engineering software,95, 51-67.
页:
[1]