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

这篇具有很好参考价值的文章主要介绍了具有自适应边界与最优引导的莱维飞行蚁狮优化算法-附代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


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

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.实验结果

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

4.参考文献

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

5.Matlab代码

6.Python代码

到了这里,关于具有自适应边界与最优引导的莱维飞行蚁狮优化算法-附代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包