具有自适应边界与最优引导的莱维飞行蚁狮优化算法-附代码

具有自适应边界与最优引导的莱维飞行蚁狮优化算法

文章目录

  • 具有自适应边界与最优引导的莱维飞行蚁狮优化算法
    • 1.蚁狮优化算法
    • 2. 改进蚁狮优化算法
      • 2.1 蚂蚁莱维飞行策略
      • 2.2 蚂蚁自适应游走边界策略
      • 2.3 蚁狮自适应最优引导策略
      • 2.4蚁狮主动高斯变异策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对蚁狮算法存在探索与开发能力不平衡的缺点,提出了具有自适应边界与最优引导的莱维飞行改进算法.首先蚁狮调整边界范围,蚂蚁做莱维飞行,以此平衡探索与开发能力;其次较差蚁狮做高斯变异,并通过自适应最优引导方程,提高收敛速度和全局搜索能力.

1.蚁狮优化算法

基础蚁狮优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107726004

2. 改进蚁狮优化算法

2.1 蚂蚁莱维飞行策略

莱维飞行 (Levy Flight) 是一种特殊的随机游走 策略, 大量研究发现许多生物群体的悹食方式都可 以用莱维飞行进行有效描述. 在游走过程中, 莱维飞行伴随着频繁的短距离游走和偶尔长距离游走, 因 此有效均衡了算法局部开发与全局探索能力 .
莱维飞行的随机步长服从莱维分布, 其简化形 式为:
L ( s ) ∼ ∣ s ∣ − 1 − β 0 < β < 2 (9) L_{(s)} \sim|s|^{-1-\beta} \quad 0<\beta<2 \tag{9} L(s)s1β0<β<2(9)
式中, s s s 是随机步长. 由于莱维飞行非常复杂, 本文采用 Mantegna提出的算法计算, 其方程如下:
s = μ ∣ u ∣ 1 β s=\frac{\mu}{|u|^{\frac{1}{\beta}}} s=uβ1μ
式中, μ 、 v \mu 、 v μv 服从正态分布:
{ μ ∼ N ( 0 , σ μ μ 2 ) v ∼ N ( 0 , σ v 2 ) { σ μ = ( Γ ( 1 + β ) × sin ⁡ π β 2 Γ ( 1 + β 2 ) × β × 2 ( β − 1 ) / 2 ) 1 β σ v = 1 \begin{aligned} &\left\{\begin{array}{l} \mu \sim N\left(0, \sigma_{\mu \mu}{ }^{2}\right) \\ v \sim N\left(0, \sigma_{v}{ }^{2}\right) \end{array}\right. \\ &\left\{\begin{array}{c} \sigma_{\mu}=\left(\frac{\Gamma(1+\beta) \times \sin \frac{\pi \beta}{2}}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2^{(\beta-1) / 2}}\right)^{\frac{1}{\beta}} \\ \sigma_{v}=1 \end{array}\right. \end{aligned} {μN(0,σμμ2)vN(0,σv2) σμ=(Γ(21+β)×β×2(β1)/2Γ(1+β)×sin2πβ)β1σv=1
式中, Γ \Gamma Γ 为积分运算; β \beta β 通常取值为 1.5 1.5 1.5, 则 σ μ = \sigma_{\mu}= σμ= 0.6966 0.6966 0.6966, 随机步长 S S S 的计算变得更加简便.

2.2 蚂蚁自适应游走边界策略

由式 (6) 可知, 蚂蚁游走的边界随迭代次数增加 而缩小, 但同一次迭代中, 所有蚂蚁的游走边界相 同, 这不能反映出所围绕的蚁狮能力大小的差别, 也 不利千均衡算法的探索与开发能力泹. 对此, 本文提 出自适应边界调整策略, 其方程如下:
I = μ ( m ) ⋅ 1 0 w ⋅ t T μ ( m ) = 0.5 + 1 1 + exp ⁡ ( 2 m − M M α ) \begin{aligned} &I=\mu(m) \cdot 10^{w} \cdot \frac{t}{T} \\ &\mu(m)=0.5+\frac{1}{1+\exp \left(\frac{2 m-M}{M} \alpha\right)} \end{aligned} I=μ(m)10wTtμ(m)=0.5+1+exp(M2mMα)1
式中, m m m 是蚁狮按适应度由小到大排列的元素下标; M M M 是蚁狮数量; α \alpha α 调整变化速率. 由式 (14) 可知适应 度最差的蚁狮其 m = 1 , μ ( m ) ≈ 1.5 m=1, \mu(m) \approx 1.5 m=1,μ(m)1.5, 边界收缩比例 I I I 增大, 蚂蚁游走边界减小、符合较差蚁狮应该缩小 陷阱, 提高局部开发能力, 快速找到局部最优的原 理. 而适应度最好的蚁狮其 m = M , μ ( m ) ≈ 0.5 , I m=M, \mu(m) \approx 0.5, I m=M,μ(m)0.5,I 减小,蚂蚁游走边界增大. 符合较好蚁狮应该扩大陷 阱, 提高全局探索能力, 以此跳出局部最优的原理.

2.3 蚁狮自适应最优引导策略

标准 ALO 算法为平衡探索与开发能力, 采用 式 (7)更新蚂蚁位置, 使蚊狮向精英蚁狮靠近, 该方 程虽然在一定程度上提高了算法的开发能力, 但并 没有充分考虑 ALO 算法在迭代初期需要更强的探 索能力而在迭代后期需要更强的开发能力这一问 题. 对此, 本文在文献 [ 9 ] [9] [9] 研究人工蜂群算法时提出 的自适应思想基础上, 提出了自适应精英蚁狮引导 方程:

A n t j t = σ ( t ) R A t + ( 1 − σ ( t ) ) R E t \mathrm{Ant}_{j}^{t}=\sigma(t) R_{A}^{t}+(1-\sigma(t)) R_{E}^{t} Antjt=σ(t)RAt+(1σ(t))REt

σ ( t ) = 1 − rand ⁡ ( 1 − t / T ) 2 \quad \sigma(t)=1-\operatorname{rand}^{(1-t / T)^{2}} σ(t)=1rand(1t/T)2

式中, A n t j 、 R A t 、 R E t A_{n t}^{j} 、 R_{A}^{t} 、 R_{E}^{t} AntjRAtREt 同式 (7); σ ( t ) \sigma(t) σ(t) 为自适应系数; t t t 为 当前迭代次数; T T T 为最大迭代次数. 由式 (16) 可知, 在迭代初期, σ ( t ) ≈ 1 \sigma(t) \approx 1 σ(t)1, 则式 (15) 以围绕选定蚁狮游 走为主, 能够保证前期更强的探索能力, 提高算法全 局搜索能力, 避免陷入局部最优; 随着迭代次数增 加, σ ( t ) → 0 \sigma(t) \rightarrow 0 σ(t)0, 则式 (15) 以围绕精英蚁狮游走为主, 保证算法后期对最优区域进行精细化开发, 从而提 高算法的收敛速度和精度. 通过上述改进, 蚂蚁能够 自适应地选择两种不同的游走方式, 有效地均衡并 充分发挥了算法的探索与开发能力.

2.4蚁狮主动高斯变异策略

由式 (8) 可知, 只有蚂蚑游走后的适应度大于其 围绕的蚁狮, 该蚁狮才会更新到适应度更高的位置, 否则位置不变. 也就是蚁狮种群中会存在适应度较 差的个体, 且围绕其游走的蚂蚁没有找到更优的位 置, 意味着该蚁狮很有可能陷入局部最优. 如果保持 该蚁狮位置不变, 势必会继续吸引蚂蚁开发该区域, 导致一定程度上弱化种群的多样性和寻优能力. 对 此, 在文献 [10]提出变异策略能有效提高种群多样 性的基础上, 为了增强种群的寻优能力, 本文提出了 最优引导的主动高斯变异策略, 其方程如下:
X i t + 1 = X i t + X E t 2 + N ( 0 , 1 ) ( X E t − X i t 2 ) \left.X_{i}^{t+1}=\frac{X_{i}^{t}+X_{E}^{t}}{2}+N_{(0,1}\right)\left(\frac{X_{E}^{t}-X_{i}^{t}}{2}\right) Xit+1=2Xit+XEt+N(0,1)(2XEtXit)
式中, X E t X_{E}^{t} XEt 是精英蚁狮的位置; N ( 0 , 1 ) N(0,1) N(0,1) 是服从标准高 斯分布的随机函数. 由式 (17) 可知, 变异后的蚁狮位置以 ( X i t + X E t ) / 2 \left(X_{i}^{t}+X_{E}^{t}\right) / 2 (Xit+XEt)/2 为中心, 在 X i t X_{i}^{t} Xit X E t X_{E}^{t} XEt 之间随机产 生, 达到较差蚁狮向精英蚁狮学习的目的, 从而提高 了算法的收敛速度和跳出局部最优的能力.
该策略对 M M M 个蚁狮按照适应度大小排序, 从中 按比例 β \beta β 选取适应度较差的 ( β ⋅ M ) (\beta \cdot M) (βM) 个蚁狮, 对这部 分蚁狮中位置没有被动更新的个体, 根据式 (17) 进 行主动变异. 最后, 比较蚁狮变异前后的适应度, 选 择其中最优的蚁狮位置作为下一代蚁狮.

自适应边界与最优引导的莱维飞行ALO算法伪代码步骤如下:

根据式 (1)初始化 N N N 个蚂蚁和 M M M 个蚁狮在 D \mathrm{D} D 维空间的位置 计算其适应度并保存最优蚑狮的位置
while t ⩽ T t \leqslant T tT
for 每只蚂蚁
根据轮盘赌选定一个蚑狮
根据式 (5) (13) 计算游走边界
根据式 (10) (4) 创建随机游䞢并转换
根据式 (15) 更新种蚁的位置
end for
计算更新后所有蚂蚁的适应度

根据式 ( 8 ) (8) (8) 更新蚁狮的位置
更新最优蚁狮的位置
根据式(17) 对较差蚁狮进行变异
t = t + 1 t=t+1 t=t+1
end while
return最优蚁狮的位置观其适应度

3.实验结果

具有自适应边界与最优引导的莱维飞行蚁狮优化算法-附代码_第1张图片

4.参考文献

[1]王若安,周越文,韩博,李剑峰,刘强.具有自适应边界与最优引导的莱维飞行蚁狮优化算法[J].微电子学与计算机,2018,35(09):20-25+31.

5.Matlab代码

6.Python代码

你可能感兴趣的:(智能优化算法改进,算法,机器学习,概率论)