请参考这里。
本文采用Logistic混沌映射方法来改进初始化的随机解,可随机性地生成均匀且不重复的初始解集,其数学表达式描述为: x n + 1 = μ x n ( 1 − x n ) (1) x_{n+1}=\mu x_n(1-x_n)\tag{1} xn+1=μxn(1−xn)(1)其中, μ \mu μ为Logistic控制参数,且 μ ∈ ( 0 , 4 ] \mu\in(0,4] μ∈(0,4]; x n ∈ ( 0 , 1 ) x_n\in(0,1) xn∈(0,1);本文 μ \mu μ的取值为4。
为了平衡全局搜索和局部开发的关系,本文采用双曲正弦函数进行改进,改进后的调节因子 r 1 r_1 r1表达式为: r 1 = 1 − T 5 × sinh ( t 3 100 ⋅ T 3 ) (2) r_1=1-\frac T5×\sinh(\frac{t^3}{100\cdot T^3})\tag{2} r1=1−5T×sinh(100⋅T3t3)(2)其中, t t t表示当前迭代次数, T T T表示最大迭代次数。从式(2)可以着出,在迭代的前期,调节因 r 1 r_1 r1值相对较大且递减的变化速度较慢,能够通过较大的步长进行搜索;而到了迭代的后期,调节因子 r 1 r_1 r1值的递减变化速度加快,可使最优解快速收敛。
为了进一步提升算法的局部开发能力, 在个体更新的过程中增加了动态惯性权重因子 w w w,结合上述双曲正弦调节因子 r 1 r_1 r1的改进, 改进后的位置更新表达式为: x i D ( t + 1 ) = { w ⋅ x i D ( t ) + r 1 ⋅ sin ( r 2 ) ⋅ ∣ r 3 P D t − x i D ( t ) ∣ , r 4 < 0.5 w ⋅ x i D ( t ) + r 1 ⋅ cos ( r 2 ) ⋅ ∣ r 3 P D t − x i D ( t ) ∣ , r 4 ≥ 0.5 (3) x_{iD}(t+1)=\begin{dcases}w\cdot x_{iD}(t)+r_1\cdot\sin(r_2)\cdot|r_3P_D^t-x_{iD}(t)|,\quad r_4<0.5\\w\cdot x_{iD}(t)+r_1\cdot\cos(r_2)\cdot|r_3P_D^t-x_{iD}(t)|,\quad r_4≥0.5\end{dcases}\tag{3} xiD(t+1)={w⋅xiD(t)+r1⋅sin(r2)⋅∣r3PDt−xiD(t)∣,r4<0.5w⋅xiD(t)+r1⋅cos(r2)⋅∣r3PDt−xiD(t)∣,r4≥0.5(3)其中,惯性权重因子 w w w的表达式为: w ( t ) = w max − ( w max − w min ) ⋅ t T (4) w(t)=w_{\max}-(w_{\max}-w_{\min})\cdot\frac tT\tag{4} w(t)=wmax−(wmax−wmin)⋅Tt(4)其中, w max w_{\max} wmax和 w min w_{\min} wmin分别为惯性权重最大值和最小值。同理,通过式(4)的结构也可看出,随着迭代次数的増大, w ( t ) w(t) w(t)逐渐递减,在前期阶段有助于全局搜索,而到了迭代的后期,则更有助于局部开发,从而有效提高算法的收敛精度和速度。
由于本文在标准SCA算法基础上仅对种群初始化、调节因子和惯性权重因子做了改进,所以算法的复杂度与原标准SCA算法仍保持一致,即在未使算法变的更复杂的情况下,大幅改善了算法的性能。
为了验证本文提出的IM-SCA算法性能,选择8个具有代表性的基准函数进行测试,并与标准SCA算法进行对比,基准测试函数描述如表1所示。其中,前4个是单峰函数,后4个是多峰函数。
设置维数 D = 20 D=20 D=20,种群规模 N = 30 N=30 N=30,最大迭代次数 T = 500 T=500 T=500,为了避免偶然性的干扰,保证测试的准确度,分别采用标准SCA算法以及本文提出的IM-SCA算法对表1中的8个函数独立运行25次。
结果显示如下:
函数:F1
SCA:最优值: 9.6513e-06,最差值:0.25013,平均值:0.024266,标准差:0.055197
IM-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
SCA:最优值: 2.8624e-06,最差值:0.0025485,平均值:0.00019964,标准差:0.00050354
IM-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F3
SCA:最优值: 0.36068,最差值:19.9281,平均值:6.56,标准差:6.0081
IM-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F4
SCA:最优值: 0.00097847,最差值:0.072605,平均值:0.015826,标准差:0.018114
IM-SCA:最优值: 1.2656e-05,最差值:0.00024853,平均值:9.4924e-05,标准差:6.4001e-05
函数:F5
SCA:最优值: -3804.4731,最差值:-2669.4781,平均值:-3117.1216,标准差:344.716
IM-SCA:最优值: -2635.493,最差值:-1696.652,平均值:-2132.9732,标准差:287.3696
函数:F6
SCA:最优值: 0.002272,最差值:51.7738,平均值:15.3019,标准差:16.2941
IM-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F7
SCA:最优值: 0.00017779,最差值:20.2168,平均值:6.6549,标准差:9.0613
IM-SCA:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F8
SCA:最优值: 0.00013533,最差值:0.9761,平均值:0.24568,标准差:0.22527
IM-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
结果验证了本文提出的改进策略可以有效避免陷入局部最优,改善了算法的遍历性,并提高了算法的收敛精度和鲁棒性。
[1] 刘丽娟, 刘定一, 刘婷婷. 改进的正余弦优化算法在WSN覆盖中的应用[J]. 数学的实践与认识, 2021, 51(11): 129-137.