基于非线性收敛因子和局部扰动的鲸鱼算法

一、理论基础

1、鲸鱼算法

请参考这里

2、改进后算法

(1)非线性收敛因子

为了解决算法迭代前期搜索和后期寻优失去平衡,引入了非线性收敛因子。其具体表达式如下 a = 1 − ( t T max ⁡ ) λ ⋅ ( e + μ ) + θ ⋅ κ (1) a=1-\left(\frac{t}{T_{\max}}\right)^\lambda\cdot(e+\mu)+\theta\cdot\kappa\tag{1} a=1(Tmaxt)λ(e+μ)+θκ(1)其中, λ \lambda λ μ \mu μ κ \kappa κ为常量系数。 θ \theta θ是区间 [ 0 , 1 ] [0,1] [0,1]之间的随机数, t t t是当前迭代次数, T max ⁡ T_{\max} Tmax是最大迭代次数, e e e是欧拉常数。收敛因子 a a a随进化迭代次数的增加而非线性递减,在初期 a a a的衰减程度较低,鲸鱼能够以较大步幅移动,更好地寻找全局最优解。到了后期, a a a的衰减程度提高,鲸鱼移动步幅减小,可以更加精确地寻找最优解。从而更有效地平衡了全局搜索时的开发能力与局部搜索时的挖掘能力。

(2)局部扰动

从基本鲸鱼算法的包围猎物阶段中可以看出,鲸鱼个体以当前最优个体作为参照物进行移动,这样的移动方式极易使算法陷入局部最优解。为了进一步提高算法全局收敛精度,避免算法陷入局部极值。在包围猎物阶段鲸鱼个体进行位置更新后,增加了随机扰动机制。其具体扰动方式如下 ξ = ξ max ⁡ − ( ξ max ⁡ − ξ min ⁡ ) ⋅ sin ⁡ ( π 2 ⋅ t T max ⁡ ) (2) \xi=\xi_{\max}-(\xi_{\max}-\xi_{\min})\cdot\sin\left(\frac\pi2\cdot\frac{t}{T_{\max}}\right)\tag{2} ξ=ξmax(ξmaxξmin)sin(2πTmaxt)(2) x l = ξ ⋅ x f (3) x_l=\xi\cdot x_f\tag{3} xl=ξxf(3)其中, x f x_f xf是未扰动前的鲸鱼个体, x l x_l xl是扰动后的鲸鱼个体。 t t t是当前迭代次数, T max ⁡ T_{\max} Tmax是最大迭代次数。 ξ \xi ξ是非线性扰动系数, ξ max ⁡ \xi_{\max} ξmax ξ min ⁡ \xi_{\min} ξmin分别为 ξ \xi ξ的最大值和最小值。式(2)为凹函数,前期的扰动力度较大,可使算法快速跳出局部最优值,则后期的扰动力度相对较小,可以更好平衡算法前后期的搜索能力。

(3)改进算法伪代码

初始化参数,初始化鲸鱼个体数n,最大迭代次数Tmax以及空间维数d。
随机产生每只鲸鱼个体的位置xi,根据适应度函数f(x),求出每只鲸
鱼的适应度函数值,并且找出当前最优值fmin和当前最优鲸鱼位置x*while t < Tmax
	for i = 1:n
		if p < 0.5
			if abs(A) >= 1
				按原式更新位置
			elseif abs(A) < 1
				按原式更新
				执行局部扰动公式(3)
			end
		elseif p >= 0.5
			按原式更新位置
		end
	end
	t = t+1;
end

二、仿真实验与结果分析

为了验证本文算法的寻优能力,用粒子群算法(PSO)、基本蝙蝠算法(BA)、基本鲸鱼算法(WOA)与本文改进算法(NPWOA)在文献[1]中提到的f1、f3、f4、f5、f8函数进行对比仿真实验。仿真实验中,4种算法的种群规模、最大迭代次数、空间维度均保持一致,即 n = 50 n=50 n=50 T max ⁡ = 1000 T_{\max}=1000 Tmax=1000 d = 100 d=100 d=100。BA算法中的声波响度、脉冲发射速率设置为 A 0 = 0.25 A_0=0.25 A0=0.25 r 0 = 0.5 r_0=0.5 r0=0.5。PSO算法中的学习因子 c 1 c_1 c1 c 2 c_2 c2分别设置为 c 1 = c 2 = 1.5 c_1=c_2=1.5 c1=c2=1.5。经过反复多次实验,NPWOA算法中的特有参数设置为: λ = 0.1 \lambda=0.1 λ=0.1 μ = 1 \mu=1 μ=1 κ = 5 \kappa=5 κ=5 ξ max ⁡ = 0.9 \xi_{\max}=0.9 ξmax=0.9 ξ m i n = 0.1 \xi_{min}=0.1 ξmin=0.1。其它参数与基本鲸鱼算法一致。每个算法独立运算30次。
结果显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数:F1
PSO:最差值: 1328.2592,最优值:682.0375,平均值:1049.5084,标准差:147.2905
BA:最差值: 253347.0297,最优值:105424.4107,平均值:215999.1892,标准差:39481.6682
WOA:最差值: 1.2045e-166,最优值:3.9477e-184,平均值:4.0488e-168,标准差:0
NPWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F3
PSO:最差值: 12.4181,最优值:8.6316,平均值:10.6349,标准差:1.1073
BA:最差值: 2551.9231,最优值:1243.939,平均值:2158.4791,标准差:407.1075
WOA:最差值: 0,最优值:0,平均值:0,标准差:0
NPWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F4
PSO:最差值: 1097.6793,最优值:485.3677,平均值:784.8481,标准差:153.7394
BA:最差值: 21337.5329,最优值:3061.851,平均值:13638.5297,标准差:5181.2748
WOA:最差值: 3.1591e-167,最优值:2.5099e-185,平均值:1.0657e-168,标准差:0
NPWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F5
PSO:最差值: 49.6304,最优值:26.5478,平均值:38.8887,标准差:6.1906
BA:最差值: 75.1849,最优值:32.1163,平均值:55.2511,标准差:11.2549
WOA:最差值: 2.8665e-106,最优值:3.4368e-118,平均值:1.404e-107,标准差:5.4517e-107
NPWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F8
PSO:最差值: 478.2715,最优值:332.4484,平均值:410.8983,标准差:39.5236
BA:最差值: 839.7404,最优值:426.8358,平均值:694.3779,标准差:105.1576
WOA:最差值: 1.1369e-13,最优值:0,平均值:3.7896e-15,标准差:2.0756e-14
NPWOA:最差值: 0,最优值:0,平均值:0,标准差:0

结果表明,本文改进后算法具有较快地收敛速度和较高地寻优精度。

三、参考文献

[1] 于俊洋, 高宁杰, 李涵. 基于非线性收敛因子和局部扰动的鲸鱼算法[J]. 计算机工程与设计, 2019, 40(10): 2861-2866.

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值