智能优化算法:闪电连接过程算法

文章目录

  • 智能优化算法:闪电连接过程算法
    • 1.算法原理
      • 1.1 初始化
      • 1.2 确定闪电的下一跳
      • 1.3 闪电分支消失
      • 1.4 上迎先导的移动
      • 1.5 连接点的确定
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:闪电连接过程算法( Lightning Attachment Procedure Optimization,LAPO)是受自然界中闪电上迎先导与下行先导连接过程的启发,于2017年提出的一种新型智能算法。该算法具有收敛速度快,精度高等特点。

1.算法原理

下文将介绍闪电接触过程算法的数学模型。模型主要分为以下部分:
(1)初始化;
(2)确定闪电的下一跳;
(3)闪电分支消失;
(4)上迎先导的移动;
(5)连接点的确定。

1.1 初始化

群智能优化算法通常都需要一个初始种群,闪电连接过程算法同样如此。标准的 LAPO 是通过随机的方式在定义域内产生一个初始种群,种群中的每个个体代表优化问题中的一个候选解,LAPO 中的个体可以看作是云层和地面之间的候选点。对于所有的候选点,都可以计算其电场值来作为目标函数的适应度值。候选点的产生可以用公式(1)来描述:
Xtestpointi=Xmini+(Xmaxi−Xmini)∗rand(1)X_{testpoint}^i=X_{min}^i+(X_{max}^i-X_{min}^i)*rand\tag{1} Xtestpointi​=Xmini​+(Xmaxi​−Xmini​)∗rand(1)
其中XminiX_{min}^iXmini​​ 表示第 iii 个个体的下界,XmaxiX_{max}^iXmaxi​表示第 iii 个个体的上界,randrandrand​是一个取值范围为[0,1]的随机数。根据目标函数可以计算出候选点的电场值作为该候选点解的适应度,如公式(2)所示:
Ftestpointi=obj(Xtestpointi)(2)F_{testpoint}^i=obj(X_{testpoint}^i)\tag{2} Ftestpointi​=obj(Xtestpointi​)(2)

1.2 确定闪电的下一跳

首先计算出所有候选点的平均值点,再计算平均值点的适应度值,如公式(3)所示:
Xave=mean(Xtestpoint)(3)X_{ave}=mean(X_{testpoint})\tag{3} Xave​=mean(Xtestpoint​)(3)

Fave=obj(Xave)(4)F_{ave}=obj(X_{ave})\tag{4} Fave​=obj(Xave​)(4)

由于闪电在传播过程中需要历经多个点来进行移动,这就意味着对于某个点来说,所有除它自己之外的候选点都可能是下一个移动点。该过程的数学描述如下:对于某个测试点 i,在种群中随机选择一个点 j( j≠i),如果点j 的电场高于平均值点的电场(点 j 的适合度优于平均值点的适合度),则闪电向此点移动,否则,闪电移向另一个方向。
Xtestpoint_newi={Xtestpointi+rand∗(Xave+rand∗(Xpotentialpoint)),ifFtestpointi<FaveXtestpointi−rand∗(Xave+rand∗(Xpotentialpointj)),else(5)X_{testpoint\_new}^i=\begin{cases} X_{testpoint}^i + rand*(X_{ave}+rand*(X_{potential\,point})),if\, F_{testpoint}^i<F_{ave}\\ X_{testpoint}^i-rand*(X_{ave}+rand*(X_{potential\,point}^j)),else \end{cases}\tag{5} Xtestpoint_newi​={Xtestpointi​+rand∗(Xave​+rand∗(Xpotentialpoint​)),ifFtestpointi​<Fave​Xtestpointi​−rand∗(Xave​+rand∗(Xpotentialpointj​)),else​(5)

1.3 闪电分支消失

​ 如果新候选点的电场值高于前一个点的电场值(如果新候选点的适应度值优于前一个候选点),则新候选点所在的分支保留,反之,该分支消失。该特征的数学表达如公式(6)所示。
Xtestpointi={Xtestpoint_new,ifFtestpoint_newi<FtestpointiXtestpoint_new=Xtestpointiotherwise(6)X_{testpoint}^i =\begin{cases} X_{testpoint\_new},if\, F_{testpoint\_new}^i<F_{testpoint}^i \\ X_{testpoint\_new} = X_{testpoint}^i\,otherwise \end{cases} \tag{6} Xtestpointi​={Xtestpoint_new​,ifFtestpoint_newi​<Ftestpointi​Xtestpoint_new​=Xtestpointi​otherwise​(6)
以上过程是算法的第一个阶段,在这个阶段可以视为下行先导向地面移动的阶段。

1.4 上迎先导的移动

​ 在第一个阶段中,所有的候选点都被认为是下行先导,并向下移动。在第二个阶段,所有的候选点都被认为是上迎先导,并向上移动。上迎先导的移动和下行引导的电荷分布有关,下行先导的电荷沿闪电通道大致呈指数分布。其中指数因子可以用公式(7)表示。
S=1−(iteritermax)∗exp(−iteritermax)(7)S=1-(\frac{iter}{iter_{max}})*exp(-\frac{iter}{iter_{max}})\tag{7} S=1−(itermax​iter​)∗exp(−itermax​iter​)(7)
其中ttt是当前迭代次数,tmaxt_{max}tmax​ 是最大迭代次数。另外,上迎先导的下一个候选点的选择过程可以用公式(8)来描述:
Xtestpoint_new=Xtestpoint_new+rand∗S∗(Xmin−Xmax)(8)X_{testpoint\_new}=X_{testpoint\_new}+rand*S*(X_{min}-X_{max})\tag{8} Xtestpoint_new​=Xtestpoint_new​+rand∗S∗(Xmin​−Xmax​)(8)
其中,XminX_{min}Xmin​ 和XmaxX_{max}Xmax​分别为种群的最佳解和最差解,SSS 为指数因子,randrandrand 为取值范围[0,1]的随机数。

1.5 连接点的确定

当上迎先导和下行先导彼此相遇时,连接点确定,闪电连接过程停止,若满足算法终止条件,则优化完成。此外,算法原作者为了提高该算法的性能,使标准 LAPO 在每次迭代后都计算出当前种群的平均解,并得到平均解的适应度。如果最劣解的适应度比平均解的要小,则用平均解代替最劣解。

2.算法结果

3.参考文献

[1] NEMATOLLAHI A F, RAHIMINEJAD A, VAHIDI B. A Novel Physical Based Meta-Heuristic
Optimization Method Known as Lightning Attachment Procedure Optimization[J]. Applied Soft
Computing, 2017, 59: 596–621.

[1]杨帅. 基于改进闪电连接过程算法和多维熵的图像分割方法研究[D].湖北工业大学,2020.

4.Matlab代码

智能优化算法:闪电连接过程算法 - 附代码相关推荐

  1. 【智能优化算法】基于闪电连接过程优化算法求解单目标优化问题含Matlab源码

    1 简介 闪电连接过程算法( Lightning Attachment Procedure Optimization,LAPO)是受自然界中闪电上迎先导与下行先导连接过程的启发,于2017年提出的一种 ...

  2. 基于闪电连接过程优化算法的函数寻优算法

    文章目录 一.理论基础 1.闪电连接过程优化算法 (1)初始化 (2)确定闪电的下一跳 (3)闪电分支消失 (4)上迎先导的移动 (5)连接点的确定 2.LAPO算法伪代码 二.仿真实验与结果分析 三 ...

  3. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  4. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  5. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  6. 基于海鸥算法优化的Elman神经网络数据预测-附代码

    基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  7. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  8. 【AI超级美发师】深度学习算法打造染发特效(附代码)

    [新智元导读]如今,在类似天天P图.美图秀秀等手机APP中,给指定照片或视频中的人物更换头发颜色已经是再正常不过的事情了.那么本文便介绍了该功能背后如AI头发分割模块.头发换色.颜色增强与修正模块等技 ...

  9. 基于遗传算法优化的Elman神经网络数据预测-附代码

    基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  10. 基于蜣螂优化的Elman神经网络数据预测-附代码

    基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

最新文章

  1. 解题报告:X、骑士共存问题(最大独立集)(匈牙利 / 最大流)
  2. SCOI2019AFO记
  3. 8086CPU常见汇编指令、debug命令
  4. 扩展系统功能——装饰模式
  5. lucene两个分页操作
  6. MYSQL中的BlackHole引擎
  7. SOAP协议初级指南(9)
  8. 1.Hadoop的组成 HDFS YARN
  9. Pandas 文本数据方法 findall( )
  10. 全基因组SNP分型(Whole Genome SNP Genotyping)分析简介
  11. VS2010 C++单元测试之gtest与OpenCppCoverage实践
  12. Windows程序设计实验---BOUNCING BALL
  13. OpenMV新手上路1 -- OpenMV简介、参数描述
  14. 从两幅图像的匹配点计算焦距f
  15. 自由职业者:提高效率的6个简单方法
  16. 基于swiftype应用于Hexo-Yilia-主题的站内搜索引擎
  17. 笔戈科技到底是不是魅族的?
  18. Android短信验证(手机号注册,绑定手机号获取验证码)实例
  19. 复制百度文库文字收费内容
  20. 力学笃行系列之List自定义排序

热门文章

  1. MySQL int类型的显示
  2. python切片将两个list合并_8种高级的Python列表使用技巧,都给你整理好啦(附实操代码)...
  3. python函数的及函数的参数的基本使用
  4. python如何获取权限_python 权限系统设计
  5. join为什么每个字符都分割了 js_js如何截取以逗号隔开的字符串
  6. java protected类_关于JAVA的protected类型
  7. delphi 调试控件代码_机器人调试(六十七)
  8. pandas nat_利用pandas爬取研招网信息
  9. 递归和迭代_斐波那契数列的实现:递归方式和迭代方式
  10. 20. Django进阶:生成csv文件