文章目录
- 一、理论基础
-
- 1、磷虾群算法(KH)
- 2、改进的磷虾群算法(ANRKH)
-
- (1)觅食权重和运动权重的时变非线性递减策略
- (2)随机扰动
- (3)自然选择
- (4)ANRKH算法步骤
- 二、仿真实验与分析
- 三、参考文献
一、理论基础
1、磷虾群算法(KH)
磷虾群(Krill herd algorithm, KH)算法是一种新的启发式智能优化算法,该算法主要是基于对南极磷虾群在海洋环境中的生存运动过程的仿真研究。对于每个磷虾个体,它的位置更新主要受到3个因素的影响:
1)诱导运动(周围磷虾的诱导)
2)觅食活动
3)随机扩散
磷虾个体的速度更新公式采用了下面的拉格朗日模型: d x i d t = N i + F i + D i (1) \frac{dx_i}{dt}=N_i+F_i+D_i\tag{1} dtdxi=Ni+Fi+Di(1)其中, N i , F i , D i N_i,F_i,D_i Ni,Fi,Di分别代表诱导运动、觅食活动和随机扩散。
3个因素的公式构造如下: N i = N m a x α i + w n N i o l d (2) N_i=N^{max}\alpha_i+w_nN_i^{old}\tag{2} Ni=Nmaxαi+wnNiold(2) F i = V f β i + w f F i o l d (3) F_i=V_f\beta_i+w_fF_i^{old}\tag{3} Fi=Vfβi+wfFiold(3) D i = D m a x ( 1 − t t m a x ) δ (4) D_i=D^{max}(1-\frac{t}{t_{max}})\delta\tag{4} Di=Dmax(1−tmaxt)δ(4)其中, N m a x , V f , D m a x N^{max},V_f,D^{max} Nmax,Vf,Dmax分别代表最大诱导速度、最大觅食速度和最大扩散速度; α i , β i , δ \alpha_i,\beta_i,\delta αi,βi,δ分别代表诱导方向、觅食方向和扩散方向; w n , w f w_n,w_f wn,wf分别代表诱导权重和觅食权重; t , t m a x t,t_{max} t,tmax分别为当前迭代次数和最大迭代次数。
磷虾个体在 t t t到 t + Δ t t+\Delta t t+Δt区间的位置更新公式如下: x i ( t + Δ t ) = x i ( t ) + ( d x i d t ) ( Δ t ) (5) x_i(t+\Delta t)=x_i(t)+(\frac{dx_i}{dt})(\Delta t)\tag{5} xi(t+Δt)=xi(t)+(dtdxi)(Δt)(5) Δ t = C t ∑ j = 1 N V ( U B j − L B j ) (6) \Delta t=C_t\sum_{j=1}^{NV}(UB_j-LB_j)\tag{6} Δt=Ctj=1∑NV(UBj−LBj)(6)其中, Δ t \Delta t Δt为速度向量的缩放因子, C t C_t Ct为步长缩放因子,取介于 [ 0 , 2 ] [0,2] [0,2]的常数, N V NV NV代表变量数, U B j , L B j UB_j,LB_j UBj,LBj分别为第 j j j个变量的上界和下界。
为了进一步提升算法的性能,在算法中执行遗传算子(交叉或变异),经测试,交叉算子更为有效。 x i , m = { x r , m r a n d i , m < C r x i , m e l s e (7) x_{i,m}=\begin{dcases}x_{r,m}\quad rand_{i,m}<Cr\\x_{i,m}\quad else\end{dcases}\tag{7} xi,m={xr,mrandi,m<Crxi,melse(7) x i , m = { x g b e s t , m + μ ( x p , m − x q , m ) r a n d i , m < M u x i , m e l s e (8) x_{i,m}=\begin{dcases}x_{gbest,m}+\mu(x_{p,m}-x_{q,m})\quad rand_{i,m}<Mu\\\ x_{i,m}\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\,\, else\end{dcases}\tag{8} xi,m={xgbest,m+μ(xp,m−xq,m)randi,m<Mu xi,melse(8)其中, C r Cr Cr为交叉算子, M n Mn Mn为遗传算子, r a n d rand rand为 [ 0 , 1 ] [0,1] [0,1]上均匀分布的随机数, μ \mu μ为 [ 0 , 1 ] [0,1] [0,1]内的常数。
2、改进的磷虾群算法(ANRKH)
(1)觅食权重和运动权重的时变非线性递减策略
较大的 w n w_n wn和 w f w_f wf有利于跳出局部极小点,算法有很强的全局搜索能力;较小的 w n w_n wn和 w f w_f wf有利于对当前区域进行精确的局部搜索,提高算法的局部搜索能力;因此,合理的调节诱导权重 w n w_n wn和觅食权重 w f w_f wf是算法高效搜索且避免陷入局部最优的关键,本文在这里提出了一种基于时变的非线性递减策略,即: w n = w f = w m a x − w m i n t m a x ⋅ ( t m a x − t ) + w m i n ⋅ r a n d (9) w_n=w_f=\frac{w_{max}-w_{min}}{t_{max}}\cdot(t_{max}-t)+w_{min}\cdot rand\tag{9} wn=wf=tmaxwmax−wmin⋅(tmax−t)+wmin⋅rand(9)其中, t t t和 t m a x t_{max} tmax分别为当前迭代次数和最大迭代次数, w m a x w_{max} wmax和 w m i n w_{min} wmin分别代表诱导权重和觅食权重的最大值和最小值。这种策略使得算法的 w n w_n wn和 w f w_f wf总体在逐渐减小,随机数 r a n d rand rand的引入改变了其线性递减的单调模式,使得算法在整个迭代过程
中都可以很好的适应当前的搜索情况,从而更加有效的调节算法的全局搜索和局部勘探能力。
(2)随机扰动
在新一代种群生成时加入随机扰动,更新公式如下: x i ( t + Δ t ) = x i ( t ) + ( d x i d t ) ⋅ ( Δ t ) ⋅ r a n d (10) x_i(t+\Delta t)=x_i(t)+(\frac{dx_i}{dt})\cdot(\Delta t)\cdot rand\tag{10} xi(t+Δt)=xi(t)+(dtdxi)⋅(Δt)⋅rand(10)通过上述更新方式的随机扰动,可以增加新一代磷虾群个体中包含的信息量,使得陷入局部最优的磷虾个体跳出局部最优点,朝着全局最优方向前进,在算法后期,可以明显的增强算法的局部勘探能力,提升求解精度。
(3)自然选择
自然选择的基本思想是:在对新一代磷虾群个体生成时进行随机扰动过后,我们将对生成的新一代磷虾群个体进行评估,即按照目标函数值进行排序,用新种群中目标函数值好的前 1 / K 1/K 1/K替换目标函数值差的后 1 / K 1/K 1/K,在此基础上保留原来每个磷虾个体所记忆的历史最优值,提高新种群中优秀粒子的比重,以此来确保每次迭代的磷虾个体都具有很好的性能,这样也会加快收敛速度。在本文中,为了保持磷虾个体的多样性以及全局性,防止磷虾个体陷入局部最优,我们取 K K K为10,即用前10%的磷虾个体来替换后10%的磷虾个体。
(4)ANRKH算法步骤
请参考文献[1]。
二、仿真实验与分析
为了验证ANRKH算法的性能,本文将ANRKH算法与两种相关算法—KH 算法和KHLD算法进行比较。以文献[1]中的f2、f3、f5为例。为了保证测试算法的公平性,3种算法中共同的参数设置如下:磷虾个体数目 N P = 100 NP=100 NP=100,最大迭代次数 t m a x = 1000 t_{max}=1000 tmax=1000,最大诱导速度 N m a x = 0.001 N^{max}=0.001 Nmax=0.001,最大觅食速度 V f = 0.02 V_f=0.02 Vf=0.02,最大随机扩散速度 D m a x = 0.005 D^{max}=0.005 Dmax=0.005;3种算法中不同的参数取值见表1;每个函数进行30次独立数值实验。
表1 KH、KHLD和ANRKH中的参数取值

结果显示如下:
函数:F2
KH:最大值: 124.3161,最小值:28.6977,平均值:43.0134,标准差:29.4007
KHLD:最大值: 101.6416,最小值:26.2886,平均值:30.2278,标准差:13.5046
ANRKH:最大值: 81.6635,最小值:24.9959,平均值:28.6219,标准差:12.2347
函数:F3
KH:最大值: 0.91102,最小值:0.37651,平均值:0.60851,标准差:0.12396
KHLD:最大值: 0.024535,最小值:0.0063132,平均值:0.013014,标准差:0.0046107
ANRKH:最大值: 9.4045e-07,最小值:1.4627e-07,平均值:5.5261e-07,标准差:1.9059e-07
函数:F5
KH:最大值: 0.27584,最小值:0.18773,平均值:0.22487,标准差:0.024735
KHLD:最大值: 0.038433,最小值:0.019181,平均值:0.027884,标准差:0.0054838
ANRKH:最大值: 0.00044475,最小值:0.00026492,平均值:0.00033714,标准差:4.5962e-05
由此可以看出,ANRKH算法能够有效地避免陷入局部最优,在全局搜索和局部勘探能力上有着显著优势。
三、参考文献
[1] 刘沛, 高岳林, 郭伟. 基于自然选择和随机扰动的改进磷虾群算法[J]. 小型微型计算机系统, 2017, 38(8): 1845-1849.
[2] Li J , Tang Y , Hua C , et al. An improved krill herd algorithm: Krill herd with linear decreasing step[J]. Applied Mathematics & Computation, 2014, 234:356-367.
[3] Gandomi A H, Alavi A H. Krill Herd:a new bio- inspired optimization algorithm[J]. Commun Nonlinear Sci Numer Simul, 2012, 17(12) : 4831-4845.