智能优化算法:闪电搜索算法-附代码

文章目录

  • 智能优化算法:闪电搜索算法-附代码
    • 1.算法原理
    • 1.1 过渡放电体
      • 1.2 空间放电体
      • 1.3 引导放电体
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:2015 年,Hussain Shareef 等基于闪电的机理提出了一种新型的启发式优化算法—闪电搜索算法( lightning search algorithm,LSA),该算法具有调节参数少、收敛精度高和全局寻优能力强等优点,已在函数优化、旅行商问题寻优等方面得到应用。

1.算法原理

LSA 主要通过 3 种放电体的数学模型模拟来实现,即过渡放电体、试图成为领先者的空间放电体、源于过渡放电体群并代表最佳位置的引导放电体。

1.1 过渡放电体

初期就形成了一个先导放电体,经过过渡形成了一个随机方向的放电体。因此,可以认为它是从解空间的开区间上的标准均匀概率分布中取得的一个随机数。设一个群体规模为 NNN 的梯级先导sl=[sl1,...,slN]sl = [sl_1,...,sl_N]sl=[sl1​,...,slN​],其满足待优化问题的 NNN个随机放电体位置 PT=[P1T,....,PNT]P^T=[P_1^T,....,P_N^T]PT=[P1T​,....,PNT​]。标准均匀分布的概率密度函数f(xT)f(x^T)f(xT) 可以表示:
f(xT)={1/b−a,a≤xT≤b0,xT<aorxT>b(1)f(x^T)=\begin{cases} 1/b-a,a\leq x^T \leq b\\ 0,x^T<a\,or\,x^T>b \end{cases} \tag{1} f(xT)={1/b−a,a≤xT≤b0,xT<aorxT>b​(1)
式中,xTx^TxT为可提供候选解或梯级先导 slisl_isli​的初始顶端能量 EsliE_{sli}Esli​的随机数; $a、b $分别为解空间下限和上限。

1.2 空间放电体

先导放电体才能形成下一个通道。设空间放电体的位置为PS=[P1S,....,PNS]P^S=[P_1^S,....,P_N^S]PS=[P1S​,....,PNS​] ,利用指数分布函数随机生成数进行数学建模。其指数分布概率密度函数 f(xS)f(x^S)f(xS):
f(xS)={1/u.e−xS/u,xS≥00,xs<0(2)f(x^S)=\begin{cases} 1/u.e^{-x^S/u},x^S\geq 0\\ 0,x^s<0 \end {cases}\tag{2} f(xS)={1/u.e−xS/u,xS≥00,xs<0​(2)
空间放电体的位置或下一次迭代的方向可以通过形状参数uuu来控制。在 LSA 中,uiu_iui​为引导放电体PLP^LPL和空间放电体 piSp^S_ipiS​之间的距离。依据这一定义,piSp^S_ipiS​在第 t+1t + 1t+1 次迭代位置可以描述为:
pi_newS=piS±erand(ui)(3)p_{i\_new}^S=p_i^S\pm e^{rand(u_i)}\tag{3} pi_newS​=piS​±erand(ui​)(3)
其中,erande^{rand}erand是指数随机数。如果 PiSP^S_iPiS​为负,那么产生的随机数应该被减去,因为式( 2) 只提供正值。然而,新位置 Pi_newSP_{i\_new}^SPi_newS​不能保证梯级先导传播或通道的形成,除非空间放电体能量Ep_iSE_{p\_i}^SEp_iS​大于先导放电体能
量 EsliE_{sli}Esli​或者找到一个更好的解。如果 Pi_newSP^S_{i\_new}Pi_newS​在下一步提供了更好的解,那么相应的先导放电体 slislisli 被扩展到新位置 sli_newsl_{i\_new}sli_new​,并且 PiSP^S_iPiS​被更新到Pi_newSP^S_{i\_new}Pi_newS​。否则,PiSP^S_iPiS​保持不变,直到下一次迭代。如果 Pi_newSP^S_{i\_new}Pi_newS​
延伸到sli_newsl_{i\_new}sli_new​并优于当前迭代,则空间放电体将变成引导放电体。

1.3 引导放电体

用具有形状参数uuu 和尺度参数 σ\sigmaσ的标准正态分布生成的随机数进行数学建模,其正态概率密度函数 f(xL)f( x^L)f(xL) 表示为:
f(xL)=1σ2πe−(xL−u)22σ2(4)f(x^L)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x^L-u)^2}{2\sigma^2}}\tag{4} f(xL)=σ2π​1​e−2σ2(xL−u)2​(4)
由式( 2) 可知,随机生成的引导放电体可以从形状参数所定义的当前位置的所有方向上进行搜索,并且可通过尺度参数定义其开采能力。在 LSA中,引导放电体 PLP^LPL的尺度参数σ\sigmaσ随着向地球的推进或找到最佳解而呈指数下降。有了这个定义,引导放电 PLP^LPL在第 t+1t + 1t+1 次迭代位置可以描述为:
pnewL=pL+normrand(uL,σL)(5)p_{new}^L=p^L+normrand(u^L,\sigma^L)\tag{5} pnewL​=pL+normrand(uL,σL)(5)
其中,normrandnormrandnormrand是由正态分布函数产生的随机数。若Ep_iL>EsliE_{p\_i}^L>E_{sli}Ep_iL​>Esli​
,更新 PLP^LPL至新引导 放 电 体 位 置Pi_newLP^L_{i\_new}Pi_newL​; 若Pi_newLP^L_{i\_new}Pi_newL​在第 t+1t + 1t+1 次迭代提供了较优解,则相应的梯级先导 slisl_isli​被扩展到新位置 slLnewsl_{L_new}slLn​ew​,且 PLP^LPL更新为 Pi_newLP^L_{i\_new}Pi_newL​; 否则,引导放电体 pL位置保持不变,直到下一次迭代。

LSA 的整个过程总结为图所示的流程:

2.算法结果

3.参考文献

[1] Shareef H,Ibrahim A A,Mutlag A H. Lightning search algorithm[J]. Applied Soft Computing,2015,36 ( S1 ) :
315 - 333.

[2]丁祥,王津生,李剑,王彤,赵明.基于闪电搜索算法的水泵流量-扬程样本曲线校准[J].供水技术,2019,13(04):6-11.

4.Matlab代码

个人资料介绍

智能优化算法:闪电搜索算法-附代码相关推荐

  1. 【智能优化算法-闪电算法】基于闪电算法求解多目标优化问题附matlab代码

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

  2. 【9种优化算法比较】CGO、SCA、GWO、CSA、SSA、HHO、WOA、PSO、TSO智能优化算法比较(Matlab代码实现)

  3. 萤火虫算法_40多种智能优化算法原理和代码分享

    40多种智能优化算法原理和代码分享 <智能优化算法讲解>PDF下载地址: <智能优化算法原理讲解>PDF​mianbaoduo.com 包括: 1.海鸥算法SOA 智能优化算法 ...

  4. 《Python智能优化算法:从原理到代码实现与应用》出版啦

    <Python智能优化算法:从原理到代码实现与应用> 各位亲爱的小伙伴,让各位久等了.我们撰写的<Python智能优化算法:从原理到代码实现与应用>由电子工业出版社出版了. 本 ...

  5. 浣熊优化算法(COA)(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

  6. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  7. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

  8. 智能优化算法:爬行动物搜索算法-附代码

    智能优化算法:爬行动物搜索算法 文章目录 智能优化算法:爬行动物搜索算法 1.算法原理 1.1 初始化 1.2 包围阶段(探索) 1.3 狩猎阶段(开发) 2.实验结果 3.参考文献 4.Matlab ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

最新文章

  1. 用aspnetpager实现datalist分页(绝对的简单实用)
  2. Python脚本完美解决Linux环境解压.zip文件乱码问题
  3. Eclipse中导入Maven项目后没有run on server
  4. [deviceone开发]-do_RichLabel的简单示例
  5. zabbix3 mysql8.0_Zabbix3的离线安装
  6. 梦断A股:证监会发现了小米的违规之处
  7. VS2019插件VSIX开发
  8. android版本11下载,coloros 11正式版下载
  9. FinalShell更换背景颜色
  10. 华为2018年服务器销售额,2018Q4华为服务器收入全球第三 同比增45.9%
  11. miss工作室官宣加盟新公司是真的吗
  12. 从数字企业转型来看,数据分析能带来什么
  13. else用法的一个小细节
  14. 软件环境:安装报Error opening file for writing
  15. Vue笔记-尚硅谷-Alex
  16. 创客集结号:3D打印技术原理
  17. ad中按钮开关的符号_送给初学者电工最常用电气元件实物图及对应符号
  18. Java 编程问题:七、Java 反射类、接口、构造器、方法和字段
  19. 天行健君子以自强不息----宣言
  20. 傅老师课堂:最大子序列

热门文章

  1. linux获取p12证书信息,微信公众号现金红包——.p12证书linux部署如何使用
  2. (C/C++)数据结构所需的程序语言基础(一)数据类型、运算符及表达式
  3. 死链提交为什么不能提交 html文件,百度死链提交的方法,百度死链提交的的作用...
  4. 东北大学计算机学院生产实习,东北大学生产实习报告.doc
  5. MySQL--自然连接的用法
  6. 嵌入式Linux系统开发入门宝典(第2版)
  7. KNN算法和sklearn中的KNN算法
  8. H.264码流的分析
  9. 太棒了!CSS颜色基本样式
  10. 中心极限定理-通俗理解