基于自适应决策算子的鲸鱼优化算法-附代码

基于自适应决策算子的鲸鱼优化算法


摘要: 针对鲸鱼优化算法容易陷入早熟和收敛速度慢等缺陷,本文提出一种基于自适应决策算子的鲸鱼优化算法,考虑到算法初始种群也是影响算法性能的关键因素,将混沌 Singer 映射用于优化算法初始阶段,生成的初始种群,使种群的分布更加均匀,并且提出一个受个体适应度值影响的决策算子,通过决策算子来决定整个种群的搜索方向,一定程度上降低了最优区域对领导者的吸引,同时加入了一个分段的自适应的权重来有效调节算法对最优解的勘探能力。

1.鲸鱼优化算法

基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167

2. 改进鲸鱼优化算法

2.1 混沌初始化种群

近几年出现的大多数生物启发算法都是基于随 机种群的算法, 鲸鱼优化算法也一样, 通过概率分布 来实现算法种群的随机分布, 这种产生初始种群的 方式则会导致种群多样性低, 往往使寻优的位置不 够广泛,利用混沌特性来提高 WOA 的收玫速度和 搜索精度具有重要意义 [ 6 ] { }^{[6]} [6], 目前优化领域中有多种 类型混沌映射, 在大部分的研究中使用 Tent 映射和 Logistic 映射等来进行种群初始化, Singer 映射能产 生相对均匀的混沌序列。因此, 本文采用 Singer 映 射来优化算法初始种群, 数学公式描述为式(9):
x i + 1 = P ⋅ ( 7.86 x i − 23.31 x i 2 + 28.75 x i 3 − 13.302875 x i 4 ) . (9) \begin{aligned} x_{i+1}=& P \cdot\left(7.86 x_{i}-23.31 x_{i}{ }^{2}+28.75 x_{i}{ }^{3}-13.302875 x_{i}{ }^{4}\right) . \end{aligned} \tag{9} xi+1=P(7.86xi23.31xi2+28.75xi313.302875xi4).(9)
其中, P ∈ ( 0.9 , 1.08 ) P \in(0.9,1.08) P(0.9,1.08), 本文取 0.98 0.98 0.98
在算法初始阶段, 通过混沌映射生成位置分布 较为合理的个体,扩大了算法中个体在空间中的勘 探范围,一定程度上降低了空间中种群被局部极值 吸引的可能性, 从而提高了算法的性能。

2.2 决策算子

在 WOA 搜索方程中,种群的搜索方向对领导者有很大依赖关系,领先的鲸鱼有时会在局部解决方案中陷入停滞,特别是在存在多峰的多模态问题中,在局部极值处的停滞是过早收敛的主要原因。鲸鱼个体之间的协作和信息交换机制有助于缓解这一问题,为了增强算法避免早熟能力,本文在算法中加入一个决策算子,将个体的适应度和位置加入到算法的搜索机制中,通过对领 8 导者的位置进行处理,加强种群之间的信息交流,进而提高算法的寻优性能,具体策略如式( 10) ~ ( 12) :
X i t + 1 = { M i t + 1 ,  if  r 3 < D P N i t + 1 ,  else.  (10) X_{i}^{t+1}= \begin{cases}M_{i}^{t+1}, & \text { if } r_{3}<D P \\ N_{i}^{t+1}, & \text { else. }\end{cases} \tag{10} Xit+1={ Mit+1,Nit+1, if r3<DP else. (10)

M i t + 1 = X t r 1 + X t r 2 + X t r 3 3 (11) M_{i}{ }^{t+1}=\frac{X_{t r 1}+X_{t r 2}+X_{t r 3}}{3} \tag{11} Mit+1=3Xtr1+Xtr2+Xtr3(11)

N i t + 1 = X igbest  + k ⋅ ( X 1 t + X 2 t + X 3 t ) (12) N_{i}{ }^{t+1}=X_{\text {igbest }}+k \cdot\left(X_{1}^{t}+X_{2}^{t}+X_{3}^{t}\right) \tag{12} Nit+1=Xigbest +k(X1t+X2t+X3t)(12)

其中, X t r 1 、 X t r 2 、 X t r 3 X_{t r 1} 、 X_{t r 2} 、 X_{t r 3} Xtr1Xtr2Xtr3 表示随机选择的第 t t t 代的 3 个个体位置; X i g b e s t X_{i g b e s t} Xigbest 表示全局最优位置, X 1 t 、 X 2 t 、 X 3 t X_{1}{ }^{t} 、 X_{2}{ }^{t} 、 X_{3}{ }^{t} X1tX2tX3t 表示第 t t t 代适应度值最好的前 3 个个体位置; k k k 表示 ( 0 , 1 ) (0,1) (0,1) 之间的随机数。 D P D P DP 表示受个体适应度值影 响决策概率, 表示为式( 13):
D P = 1 N ∑ i = 1 N C ( t ) , (13) D P=\frac{1}{N} \sum_{i=1}^{N} C(t), \tag{13} DP=N1i=1NC(t),(13)
其中, N N N 表示种群个体, C ( t ) C_{(t)} C(t) 表示第 t t t 代优化成 功的个体数,表示为式 (14):
C ( t ) = { 1 ,  if  f i t i , t < f i t i , t − 1 0 ,  else.  (14) C(t)=\left\{\begin{array}{lc} 1, & \text { if } f i t_{i, t}<f i t_{i, t-1} \\ 0, & \text { else. } \end{array}\right. \tag{14} C(t)={ 1,0, if fiti,t<fiti,t1 else. (14)
考虑到在鲸鱼优化算法中,每次迭代时将适应度值最好的位置赋值给鲸鱼领导者,这样的方式导致种群个体汇聚在局部最优区域,往往导致寻优精度较低,为了降低这种缺陷对算法的影响,本文将个体的适应度值纳入影响决策算子的因素中,加入决策算子后的算法领导者不是直接进行下一次迭代过程,而是记录每个个体的适应度值和位置,通过判断决策概率的大小选择筛选公式,通过比较适应度值的大小挑选出一个新的领导者位置,最后引入贪婪机制,比较两个领导者之间的适应度值大小,更新全局最优位置及适应度值,再进入到下一次的迭代过程,通过对最优位置的不断选择,对提高了算法的搜索精度和收敛速度具有重要意义。

2.3 分段自适应权重

WOA 与当前大多数元启发式算法一样,惯性权重对算法性能具有很明显的影响,在粒子群算法中已经证明,惯性权重反映的是后一个追随者摆脱前一个位置束缚的能力,较大的惯性权重会使算法拥有较好的全局搜索能力,反之,较小的惯性权重会使算法拥有较好的局部开发能力 [ 7 ] { }^{[7]} [7] 。通常情况下, 较 大的权重会使算法快速抵达最优区域附近, 而在算 法迭代后期, 应该适当减小相邻两代之间的联系, 此 时权重应该较小, 因此, 本文在改进算法中提出分段 自适应的惯性权重, 式 (15) 和式(16):
ω 1 = ω min ⁡ + D P ⋅ ( ω max ⁡ − ω min ⁡ ) , t T max ⁡ ⩽ 0.5 (15) \omega_{1}=\omega_{\min }+D P \cdot\left(\omega_{\max }-\omega_{\min }\right), \frac{t}{T_{\max }} \leqslant 0.5 \tag{15} ω1=ωmin+DP(ωmaxωmin),Tmaxt0.5(15)

ω 2 = ω max ⁡ − ( ω max ⁡ − ω min ⁡ ) × rank ⁡ ( r ) N , t T max ⁡ > 0.5 (16) \omega_{2}=\omega_{\max }-\left(\omega_{\max }-\omega_{\min }\right) \times \frac{\operatorname{rank}(r)}{N}, \frac{t}{T_{\max }}>0.5 \tag{16} ω2=ωmax(ωmaxωmin)×Nrank(r),Tmaxt>0.5(16)

其中, ω max  \omega_{\text {max }} ωmax  表示最大惯性权重; ω min  \omega_{\text {min }} ωmin  表示最小惯 性权重, 当 ω \omega ω [ 0.4 , 0.9 ] [0.4,0.9] [0.4,0.9] 之间变化时,算法具有最 佳的寻优性能; D P D P DP 表示算法中个体优化的成功率, rank ⁡ ( r ) \operatorname{rank}(r) rank(r) 表示随机一个个体的秩序数; N N N 表示种群大 小。因此, 在迭代的前半部分, 权重受群体的优化成 功率影响。随着迭代的进行, 惯性权重在 0.4 ∼ 0.9 0.4 \sim 0.9 0.40.9 之间动态变化, 使算法的全局搜索和局部开发得到 较好的平衡。在迭代的后半部分, 随着种群的聚集, 继续使用优化成功率将导致权重无法更新, 于是采 用随机个体的秩序数来更新权值, 使迭代后期鲸鱼 群也拥有较大的搜索步长, 一定程度上增加了算法 跳出局部最优区域的概率。当 t / T max  < 0.5 t / T_{\text {max }}<0.5 t/Tmax <0.5 时, 加入 权值的位置更新公式表示为(17) ( 19)(同理可 得 t / T max ⁡ ⩾ 0.5 t / T_{\max } \geqslant 0.5 t/Tmax0.5 时的位置更新公式) :
X ( t + 1 ) = X ∗ ( t ) − ω 1 ⋅ A ⋅ D ∣ A ∣ < 1 , p < 0.5 ,  (17) X(t+1)=X^{*}(t)-\omega_{1} \cdot A \cdot D \quad|A|<1, p<0.5 \text {, } \tag{17} X(t+1)=X(t)ω1ADA<1,p<0.5(17)

X ( t + 1 ) = X r a n d − ω 1 ⋅ A ⋅ D r a n d ∣ A ∣ ⩾ 1 , p < 0.5 (18) X(t+1)=X_{r a n d}-\omega_{1} \cdot A \cdot D_{r a n d} \quad|A| \geqslant 1, p<0.5 \tag{18} X(t+1)=Xrandω1ADrandA1,p<0.5(18)

X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + ω 1 ⋅ X ∗ ( t ) , p ⩾ 0.5 (19) X(t+1)=D^{\prime} \cdot e^{b l} \cdot \cos (2 \pi l)+\omega_{1} \cdot X^{*}(t), p \geqslant 0.5 \tag{19} X(t+1)=Deblcos(2πl)+ω1X(t),p0.5(19)

本文所提基于自适应决策算子的鲸鱼优化算法步骤如下:

Step 1 根据混沌 Singer 映射生成 N N N 个初始化 个体, N N N 为种群大小, 设置最大迭代次数 T max ⁡ 、 ω max ⁡ T_{\max } 、 \omega_{\max } Tmaxωmax ω min ⁡ \omega_{\min } ωmin

Step 2 由目标函数 f ( x ) f(x) f(x) 计算出种群中每个 个体的目标函数值, 并记录最优位置 X ( t ) X(t) X(t), 根据适 应度值将 N N N 个个体排序, 随机选择个体, 记录其秩序 数 rank ⁡ ( r ) \operatorname{rank}(r) rank(r), 同时分别与领导者适应度进行比较, 统 计 C ( t ) C(t) C(t), 更新决策概率 D P D P DP;

Step 3 更新算法中 r 1 、 r 2 、 k r_{1} 、 r_{2} 、 k r1r2k 等参数,同时更新 a 、 A 、 C 、 l a 、 A 、 C 、 l aACl 等, 通过(15) (16) 式更新参数 ω 1 、 ω 2 \omega_{1} 、 \omega_{2} ω1ω2;

Step 4 如果迭代次数 t ⩽ 0.5 T max  t \leqslant 0.5 T_{\text {max }} t0.5Tmax , 通过比较 | A ∣ A \mid A 的大小, 用随机生成的 p p p 值与 0.5 0.5 0.5 作比较, 选择 相应的位置更新公式, 若 p < 0.5 p<0.5 p<0.5 ∣ A ∣ < 1 |A|<1 A<1, 则按照 ( 17)式更新当前个体位置;

Step 5 若 p < 0.5 p<0.5 p<0.5 ∣ A ∣ ⩾ 1 |A| \geqslant 1 A1, 则按照 ( 18 ) (18) (18) 式 搜索猎物;

Step 6 若 p ⩾ 0.5 p \geqslant 0.5 p0.5, 按照( 19) 式更新当前位 置;

Step 7 将 r 3 r_{3} r3 与决策概率进行比较选择决策公 式, 同时选择种群中适应度值最好的 3 个位置和随 机的 3 个位置, 将保存下来的最优位置 X ∗ X^{*} X 按照 (11) 或(12) 式进行位置筞选操作, 最后引入贪婪机制, 通过适应度值的大小篥选出一个新的领导者位置, 更新全局最优位置;

Step 8 若迭代次数 t > 0.5 T max ⁡ t>0.5 T_{\max } t>0.5Tmax, 将 (17)(19) 式中 ω 1 \omega_{1} ω1 更新为 ω 2 \omega_{2} ω2, 重复步骤 4 ∼ 7 4 \sim 7 47;
Step 9 判断算法是否满足停止条件,若达到 则停止迭代, 并输出最优解和适应度值, 反之, 重复 执行步骤 3-8。

3.实验结果

请添加图片描述

4.参考文献

[1]徐航,张达敏,王依柔,宋婷婷,樊英.基于自适应决策算子的鲸鱼优化算法[J].智能计算机与应用,2020,10(09):6-11.

5.Matlab代码

6.Python代码

]徐航,张达敏,王依柔,宋婷婷,樊英.基于自适应决策算子的鲸鱼优化算法[J].智能计算机与应用,2020,10(09):6-11.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125824562