具有自适应边界与最优引导的莱维飞行蚁狮优化算法
摘要:针对蚁狮算法存在探索与开发能力不平衡的缺点,提出了具有自适应边界与最优引导的莱维飞行改进算法.首先蚁狮调整边界范围,蚂蚁做莱维飞行,以此平衡探索与开发能力;其次较差蚁狮做高斯变异,并通过自适应最优引导方程,提高收敛速度和全局搜索能力.
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)∼∣s∣−1−β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)v∼N(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)⋅10w⋅Ttμ(m)=0.5+1+exp(M2m−Mα)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)=1−rand(1−t/T)2
式中, A n t j 、 R A t 、 R E t A_{n t}^{j} 、 R_{A}^{t} 、 R_{E}^{t} Antj、RAt、REt 同式 (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)(2XEt−Xit)
式中,
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
t⩽T
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.实验结果
文章来源:https://www.toymoban.com/news/detail-430227.html
4.参考文献
[1]王若安,周越文,韩博,李剑峰,刘强.具有自适应边界与最优引导的莱维飞行蚁狮优化算法[J].微电子学与计算机,2018,35(09):20-25+31.文章来源地址https://www.toymoban.com/news/detail-430227.html
5.Matlab代码
6.Python代码
到了这里,关于具有自适应边界与最优引导的莱维飞行蚁狮优化算法-附代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!