【优化求解】基于自适应权重和Levy飞行的改进鲸鱼优化算法matlab源码
作者:互联网
一、理论基础
1、基本鲸鱼优化算法
1、启发
鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili等提出的一种新的群体智能优化算法,其优点在于操作简单、参数少以及跳出局部最优的能力强。
图1 座头鲸的狩猎摄食行为
2、包围猎物
座头鲸能识别猎物的位置并围着它们转。由于最优位置在搜索空间中的位置是未知的,WOA算法假设当前的最佳候选解是目标猎物或接近最优解。在定义了最佳候选解之后,其他候选位置将尝试向最佳位置移动并更新其位置。此行为由以下等式表示:
3、狩猎行为
根据座头鲸的狩猎行为,它是以螺旋运动游向猎物,故狩猎行为的数学模型如下:
4、搜索猎物
数学模型如下:
2、改进的鲸鱼优化算法
为了避免传统的WOA在求解后期容易陷入局部最优导致的算法早熟从而收敛使进度不高的问题,本文改进WOA的思路从以下两个方法入手:一是使用自适应权重方法,使得WOA的局部寻优能力得到提升;另一方法是通过引入Levy飞行策略对鲸鱼位置进行更新,以提升WOA的全局寻优能力。
(1)自适应权重方法
文使用了一种呈指数改变的自适应权重方法,算法前期使用较大的权重实现较强的全局搜索性能,保证搜索范围,随着迭代次数的增长,接近最优解时,权重值呈现指数减小,使得算法的局部寻优能力大大提升。自适应权值公式如式(1)所示,改进后的位置更新公式如式(2)所示:
(2)Levy飞行策略
本文将Levy飞行应用于鲸鱼的位置更新中,在算法进行更新后再进行一次Levy飞行更新个体位置,可以实现跳出局部最优解,扩大搜索能力的效果。位置更新的方式为:
(3)改进WOA的算法流程图
改进WOA(ALWOA)通过使用Levy飞行策略来跳出局部最优解,避免算法早熟。通过加上自适应权重的方式使得鲸鱼在进行局部寻优时可以提升收敛精度,具体的算法执行步骤如图1所示。
图1 算法流程图
二、实验测试及分析
将ALWOA算法与基本鲸鱼优化算法(WOA)进行对比,以表1中的测试函数为例。种群规模N = 30 N=30N=30,最大迭代次数T max = 500 T_{\max}=500Tmax=500,独立运行30次。
表1 测试函数
结果显示如下:
函数:F1
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 1.6883e-72,最优值:2.9877e-85,平均值:1.1383e-73,标准差:3.6912e-73
函数:F2
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 9.2114e-49,最优值:1.6957e-58,平均值:4.0317e-50,标准差:1.7153e-49
函数:F3
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 81115.6125,最优值:7149.4409,平均值:45078.032,标准差:16689.7634
函数:F4
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 90.4817,最优值:0.74946,平均值:48.111,标准差:27.4069
函数:F5
ALWOA:最差值: 0.00039416,最优值:1.5239e-06,平均值:0.00010479,标准差:0.00011388
WOA:最差值: 0.013092,最优值:3.1057e-05,平均值:0.0035873,标准差:0.0037103
函数:F6
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 5.6843e-14,最优值:0,平均值:1.8948e-15,标准差:1.0378e-14
函数:F7
ALWOA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:4.4409e-15,标准差:2.6389e-15
函数:F8
ALWOA:最差值: 0,最优值:0,平均值:0,标准差:0
WOA:最差值: 0.1511,最优值:0,平均值:0.008203,标准差:0.032075
结果表明,改进WOA算法(ALWOA)在收敛速度、优化精度和寻优能力方面较基本WOA算法有很大提升。
三、参考文献
[1] 吴小龙, 胡松, 成卫. 基于改进鲸鱼优化算法的多目标信号配时优化[J]. 昆明理工大学学报(自然科学版), 2021, 01: 134-141.
标签:Levy,平均值,优化,算法,源码,标准差,差值,最优,WOA 来源: https://www.cnblogs.com/matlabxiao/p/15156034.html