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

文章目录

  • 具有自适应边界与最优引导的莱维飞行蚁狮优化算法
    • 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)​∼∣s∣−1−β0<β<2(9)
式中, sss 是随机步长. 由于莱维飞行非常复杂, 本文采用 Mantegna提出的算法计算, 其方程如下:
s=μ∣u∣1βs=\frac{\mu}{|u|^{\frac{1}{\beta}}} s=∣u∣β1​μ​
式中, μ、v\mu 、 vμ、v 服从正态分布:
{μ∼N(0,σμμ2)v∼N(0,σv2){σμ=(Γ(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,σv​2)​⎩⎨⎧​σμ​=(Γ(21+β​)×β×2(β−1)/2Γ(1+β)×sin2πβ​​)β1​σv​=1​​
式中, Γ\GammaΓ 为积分运算; β\betaβ 通常取值为 1.51.51.5, 则 σμ=\sigma_{\mu}=σμ​= 0.69660.69660.6966, 随机步长 SSS 的计算变得更加简便.

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

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

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

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

Antjt=σ(t)RAt+(1−σ(t))REt\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

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

2.4蚁狮主动高斯变异策略

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

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

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

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

3.实验结果

4.参考文献

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

5.Matlab代码

6.Python代码

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

  1. 【蚁狮算法】基于具有自适应边界与最优引导的莱维飞行蚁狮优化算法(ABLALO)求解单目标优化问题matlab代码

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

  2. 优选策略的自适应蚁狮优化算法-附代码

    优选策略的自适应蚁狮优化算法 文章目录 优选策略的自适应蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 自适应边界 2.2 优选轮盘赌策略 2.3 动态比例系数 3.实验结果 4.参考 ...

  3. 具有随机分形自适应搜索策略的蚁狮优化算法-附代码

    具有随机分形自适应搜索策略的蚁狮优化算法 文章目录 具有随机分形自适应搜索策略的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 蚂蚁随机分形搜索方程 2.2 蚁狮自适应搜索方程 3.实 ...

  4. 基于自适应权重的缎蓝园丁鸟优化算法-附代码

    基于自适应权重的缎蓝园丁鸟优化算法 文章目录 基于自适应权重的缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.改进的缎蓝园丁鸟优化算法 2.1 自适应权重 2.2 改进原高斯变异形式 3.实验结果 5 ...

  5. 基于自适应调整权重和搜索策略的鲸鱼优化算法-附代码

    基于自适应调整权重和搜索策略的鲸鱼优化算法 文章目录 基于自适应调整权重和搜索策略的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 自适应调整权重 2.2 自适应调整搜索策略 3.实验 ...

  6. 具有自适应搜索策略的灰狼优化算法-附代码

    具有自适应搜索策略的灰狼优化算法 文章目录 具有自适应搜索策略的灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 自适应调整策略 2. 2 跳出局部最优策略 2.3 最优学习搜索方程 3 ...

  7. 非均匀变异的互利自适应缎蓝园丁鸟优化算法-附代码

    非均匀变异的互利自适应缎蓝园丁鸟优化算法 文章目录 非均匀变异的互利自适应缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.非均匀变异的互利自适应缎蓝园 2.1 非均匀变异 2.2 互利因子 2.3自适 ...

  8. 具有自适应调整策略的混沌灰狼优化算法-附代码

    具有自适应调整策略的混沌灰狼优化算法 文章目录 具有自适应调整策略的混沌灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 自适应调整策略 2. 2 混沌局部搜索策略 3.实验结果 4.参 ...

  9. 基于优选策略的自适应蚁狮优化算法

    文章目录 一.理论基础 1.蚁狮优化算法 2.优选策略的自适应蚁狮优化算法 (1)自适应边界 (2)优选轮盘赌策略 (3)动态比例系数 二.算法步骤 三.仿真实验与结果分析 四.参考文献 一.理论基础 ...

最新文章

  1. mouseover与mouseenter,mouseout与mouseleave的区别
  2. mv命令(移动和重命名)
  3. jvm优化_使用Java流和In-JVM-Memory的超低延迟查询
  4. python时间戳转换并pandas批量转换时间戳
  5. linux下,.ko,.o , .so , .a ,.la
  6. Java基础03 字符串连接符+
  7. SqlServer系列笔记——游标
  8. Redis的持久化 RDB AOF
  9. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_8 Mybatis中的返回值深入-调整实体类属性解决增和改方法的报错...
  10. c语言求45678所有非平凡因子,近世代数基础习题课答案到第二章9题
  11. 10的负2次方用计算机怎么算,2的负二次方等于多少(进制转换计算器)
  12. 联想拯救者y7000p加内存条_怎么给笔记本升级内存和硬盘 联想Y7000P加装内存和硬盘图文介绍...
  13. Spring 文件路径
  14. Android Keep screen on(保持屏幕唤醒)
  15. Vue错误03:Property or method “xxx“ is not defined on the instance but referenced during render.
  16. 【Spring】一文带你吃透基于注解的DI技术
  17. MySQL数据库(三):数据库设计与查询语句
  18. RTC电路锂电池耗电过快的问题
  19. 计算机日常故障DIY维修有哪些,有关计算机常见故障排除与日常维护
  20. 维克生产管理软件 v1.12 免费

热门文章

  1. python tkinter Button的使用
  2. Oracle系列之add_months简介以及用法归纳教程
  3. 考研英语 各种阅读/翻译/新题型/完形填空技巧
  4. Ubuntu 新加硬盘并挂载到home目录下
  5. 智能家居DIY创意之智能灯泡
  6. 10大Android手机杀毒软件
  7. Untiy 游戏存档PlayerPrefs
  8. android新浪微博开发Sso登录
  9. 用让新海诚本人惊讶的 AI 模型制作属于你的动漫视频
  10. enter password mysql_打开进入dos,出现的就是enter password,输入密码后,进入的是mysql...