具有 Levy 变异和精英自适应竞争机制的蚁狮优化算法-附代码

具有 Levy 变异和精英自适应竞争机制的蚁狮优化算法


摘要:针对蚁狮优化算法易陷入局部最优、收敛速度慢的缺点,本文提出一种具有Levy变异和精英自适应竞争机制的蚁狮优化算法。利用服从Levy分布的随机数对种群较差个体进行变异,可改善种群多样性提高算法的全局搜索能力;精英自适应竞争机制使得多个精英并行带领种群寻优,提高了算法的收敛速度,为避免较大计算量,并行竞争的精英个数会随着寻优代数增加而减少。

1.蚁狮优化算法

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

2. 改进蚁狮优化算法

2.1 Levy 变异机制

利用 Levy 飞行特点形成 Levy 变异机制来提 高种群的多样性, 保证了种群对附近区域详细捜索 的同时又具有一定的突变性。两种方式交替从而实 现对求解域的充分遍历, 有助于提高算法的全局捜 索能力 [ 9 ] { }^{[9]} [9] 。Levy 昴行服从 Levy 分布, 其概率密度 函数如下:
P α , γ ( z ) = 1 π ∫ 0 ∞ exp ⁡ ( − γ q α ) cos ⁡ ( q z ) d q P_{\alpha, \gamma}(z)=\frac{1}{\pi} \int_{0}^{\infty} \exp \left(-\gamma q^{\alpha}\right) \cos (q z) \mathrm{d} q Pα,γ(z)=π10exp(γqα)cos(qz)dq
式中: 0 < α ⩽ 2 0<\alpha \leqslant 2 0<α2 控制 Levy 分布图形的锐度, γ > 0 \gamma>0 γ>0 控 制分布的尺度。当 α = 2 \alpha=2 α=2 时, Levy 分布等同于高斯分 布, α = 1 \alpha=1 α=1 时, Levy 分布等同于柯西分布。对于一般 的 α \alpha α 取值, 通过 Levy 分布的概率密度函数分析较为 困难, 所以通常采用模拟方法产生 Levy 分布的随 机数 [ 10 − 12 ] { }^{[10-12]} [1012] 。为了使 Levy 行轨迹充分遍历设定的 求解域, 对文献[13]的模拟公式做修改如式 (8):
{ δ μ = { Γ ( 1 + β ) sin ⁡ ( π β / 2 ) Γ [ ( 1 + β ) / 2 ] 2 ( β − 1 ) / 2 β δ v = 1 { μ ∼ N ( 0 , δ μ 2 ) v ∼ N ( 0 , δ v 2 ) \begin{aligned} \left\{\begin{aligned} \delta_{\mu}=&\left\{\frac{\Gamma(1+\beta) \sin (\pi \beta / 2)}{\Gamma[(1+\beta) / 2] 2^{(\beta-1) / 2} \beta}\right.\\ \delta_{v}=1 \end{aligned}\right.\\ \left\{\begin{array}{l} \mu \sim N\left(0, \delta_{\mu}^{2}\right) \\ v \sim N\left(0, \delta_{v}^{2}\right) \end{array}\right. \end{aligned} δμ=δv=1{Γ[(1+β)/2]2(β1)/2βΓ(1+β)sin(πβ/2){μN(0,δμ2)vN(0,δv2)

{ S = μ ∣ v ∣ 1 / β λ i =  cumsum  ( S i ) \left\{\begin{array}{l} S=\frac{\mu}{|v|^{1 / \beta}} \\ \lambda_{i}=\text { cumsum }\left(S_{i}\right) \end{array}\right. {S=v1/βμλi= cumsum (Si)
式中: i = 1 , 2 , ⋯   , n i=1,2, \cdots, n i=1,2,,n 为寻优的维度, cumsum ⁡ ( S i ) \operatorname{cumsum}\left(S_{i}\right) cumsum(Si) 为前 i i i 次 Levy 飞行位置的累积。
L ( λ i ) = { l b , λ i < l b a ⋅ λ i , l b < λ i < u b u b , λ i > u b L\left(\lambda_{i}\right)= \begin{cases}l_{b}, & \lambda_{i}<l_{b} \\ a \cdot \lambda_{i}, & l_{b}<\lambda_{i}<u_{b} \\ u_{b}, & \lambda_{i}>u_{b}\end{cases} L(λi)= lb,aλi,ub,λi<lblb<λi<ubλi>ub

2.2 精英自适应竞争机制

单个精英所拥有的极值信息极其有限, 因此有 必要建立精英库存储历代较佳的个体 (变异后适应 值较佳的个体也会被存人精英库)。对 ALO 算法引 人精英竞争机制, 在每一代的寻优中, 多个精英之 间并行竞争, 而不是通过轮盘赌的方式选择。在多 个精英的同时带领下, 种群能够快速锁定相对较优 解的所在区域, 有助于加快算法收敛速度 [ 14 − 15 ] { }^{[14-15]} [1415]
为保证寻优前期的收敛速度, 应选取较多个精 英参与竞争; 而后期, 应减少精英个数避免较大的 计算量。因此并行竞争的精英个数应随着迭代次数 的增加而衰减。这种自适应选取方式在保证算法寻 优速度的同时避免了不必要的计算量。设置精英个 数范围为 [ n min  , n max ⁡ ] \left[n_{\text {min }}, n_{\max }\right] [nmin ,nmax], 则对于当代精英个数 n ( t ) n(t) n(t) 和迭代 次数 t t t, 构造如下关系式:
{ n ( t ) =  round  ( n min ⁡ 1 + ( n min ⁡ n max ⁡ − 1 ) h ( t ) ) h ( t ) = 1 − ( t T ) 2 \left\{\begin{array}{l} n(t)=\text { round }\left(\frac{n_{\min }}{1+\left(\frac{n_{\min }}{n_{\max }}-1\right) h(t)}\right) \\ h(t)=1-\left(\frac{t}{T}\right)^{2} \end{array}\right. n(t)= round (1+(nmaxnmin1)h(t)nmin)h(t)=1(Tt)2
式中: round()为取整函数, T T T 为设置的最大迭代次 数。设置精英个数的范围为 [ 1 , 5 ] [1,5] [1,5] 时, 随迭代次数的增加, 建立容量为 n n n 的精英库, 每代寻优完成后对其更 新, 使得库内始终存放的是截止当前代为止最优的 n n n 个个体。根据式 (13) 确定精英个数, 蚂蚁种群按 照式 (1)、(2) 绕多个精英游走, 式 (3) 变为
c i t =  Elite  j t + c t , d i t =  Elite  j t + d t i = 1 , 2 , ⋯   , n × N ; j = 1 , 2 , ⋯   , n \begin{gathered} c_{i}^{t}=\text { Elite }_{j}^{t}+c^{t}, d_{i}^{t}=\text { Elite }_{j}^{t}+d^{t} \\ i=1,2, \cdots, n \times N ; j=1,2, \cdots, n \end{gathered} cit= Elite jt+ct,dit= Elite jt+dti=1,2,,n×N;j=1,2,,n
式中: E l i t e t \mathrm{Elite}^{t} Elitet '为来自精英库的精英, N N N 为设定的种群 数目。式 (4) 不作变化, 式 (6) 中的 A n t 2 i \mathrm{Ant}^{2}{ }_{i} Ant2i 代表被 n n n 个 精英精英化后的蚂蚑种群, 即 i = 1 , 2 , ⋯   , n × N i=1,2, \cdots, n \times N i=1,2,,n×N 。式 (5) 变为
∑ i = 1 n × N f sort  ( Ant ⁡ i t ) ⇒ ∑ i = 1 n  Antlion  i t + 1 \sum_{i=1}^{n \times N} f_{\text {sort }}\left(\operatorname{Ant}_{i}^{t}\right) \Rightarrow \sum_{i=1}^{n} \text { Antlion }_{i}^{t+1} i=1n×Nfsort (Antit)i=1n Antlion it+1
式中: f sort  f_{\text {sort }} fsort  为排序函数, ⇒ \Rightarrow 表示提取排序后的前 n n n 个较 优个体作为下一代蚁狮种群。

3.实验结果

请添加图片描述

4.参考文献

[1]景坤雷,赵小国,张新雨,刘丁.具有Levy变异和精英自适应竞争机制的蚁狮优化算法[J].智能系统学报,2018,13(02):236-242.

5.Matlab代码

6.Python代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值