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

这篇文章在这里:点一下

哈里斯鹰优化(HHO)算法:

哈里斯鹰优化(Harris Hawk Optimization, HHO)算法是2019年提出的一种群智能优化算法,由德黑兰大学的Heidari等人提出。HHO算法的寻优能力强,并且没有繁琐的调参环节。它的原始参考文献如下:

“Heidari A A, Mirjalili S, Faris H, et al. Harris hawks optimization: Algorithm and applications[J]. Future generation computer systems, 2019, 97: 849-872.”

这里先分享一个WOS上的数据,HHO算法在提出的3年时间里,被广泛引用和研究。如图1所示,HHO算法是一个被高引的工作,具有广泛的认可度。所以,这一期的推送,还是值得大家看一下~

图1 HHO算法在WOS上的引用数据

01
灵感来源

哈里斯鹰捕捉猎物的主要战术是突袭。在这种策略中,几只鹰试图从不同的方向合作攻击。捕杀可能会在几秒钟内迅速完成,但考虑到猎物的逃跑能力,捕杀也可能会持续几分钟。哈里斯鹰会在猎物附近进行多次短距离的俯冲,如图1所示。哈里斯鹰可以根据环境的动态性质和猎物的逃跑模式,展示出各种各样的追逐方式。

图1 哈里斯鹰短距离俯冲

当最好的鹰(首领)俯冲捕食猎物时,往往会出现转换策略,追逐将由另一名成员继续进行。这种转换有利于迷惑逃跑的猎物。这种战术的主要优势是,哈里斯鹰可以将猎物追到筋疲力尽,最后,其中一只鹰(通常是最强大和最有经验的鹰)毫不费力地抓住了疲惫的猎物,并与其他成员分享。

因此,HHO算法是基于哈里斯鹰捕食猎物的过程而提出的智能优化算法,通过对哈里斯鹰不同捕食策略的数学建模,实现种群的进化。算法设计相对复杂,计算公式较多,但大部分公式是相似的。

02
算法设计

HHO算法主要分为三部分:勘探、勘探与开发的转换、开发。与往期推送一样,目前我还不会在公众号里编辑数学公式。因此,这部分内容在Word文档里先写好,然后做成图片,最后导入。

图2 HHO算法勘探与开发的转换方式

由此,作者便通过模拟哈里斯鹰捕食猎物的行为设计出了HHO算法。HHO算法的计算公式较多,但并没有涉及参数的选取,也就是说,HHO算法的性能基本不受参数的影响,参数灵敏度低。此外,HHO算法的位置更新公式较多,实际上都是高度相似的,看起来确实有点恐怖,但也有效地平衡了算法的勘探与开发。

03
计算流程

HHO算法虽然计算公式多,但并没有增加额外的循坏,只是存在更多的判断步骤。只要理清楚每个判断下的具体位置更新方式就能弄清它的计算流程了。这里我用visio绘制了HHO算法的计算流程图,如图3所示。大家跟着我的流程图进行编码,就很容易了~

图3 HHO算法的计算流程

04
实验仿真

HHO算法的设计相对来说,比较复杂,计算公式较多,计算流程也比较繁琐。这里就来检验一下作者通过牺牲一定的计算量是否换来了算法的先进性能。HHO算法的MATLAB程序是严格按照它的原始参考文献进行编码的。此外,种群规模N我取的50,最大迭代次数T为500,问题维度D为50,基准函数采用的是CEC2005。

这里以多峰函数Ackley、Levy和单峰函数Zakharov为例,展示HHO算法在50维环境下的收敛效果,如图4所示。这里就不再进一步做分析了。

(a) Ackley

(b) Levy

(c) Zakharov

图4 HHO算法的收敛曲线

05
MATLAB代码

HHO算法的MATLAB代码可关注公众号获取。代码严格按照原始参考文献编写,附有详细注释。我个人建议是自己动手编,在理清算法计算流程后,编码是非常容易的!

关于其他智能优化算法的介绍,可关注我的个人公众号:启发式算法讨论

哈里斯鹰优化(HHO)算法(含MATLAB代码)相关推荐

  1. 灰狼优化(GWO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论. 文献[1]中的灰狼优化(Grey Wolf Optimizer, ...

  2. 白鲸优化(BWO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论. 原文在这里:点一下 白鲸优化(BWO)算法: 白鲸优化(Belug ...

  3. 金豺优化(GJO)算法(含MATLAB代码)

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

  4. 蜣螂优化(DBO)算法(含MATLAB代码)

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

  5. 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码

    目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...

  6. 学生心理学优化(SPBO)算法(含开源代码)

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

  7. matlab实现photoshop,photoshop图像滤镜——素描算法(含matlab代码)

    二.photoshop图像滤镜--素描算法 素描的算法,网络上有多种,但是效果并不是特别理想.熟悉photoshop的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步操作:1.去色:2.复制去色图层 ...

  8. matlab 浮雕算法,photoshop图像滤镜——浮雕算法(含matlab代码)

    一.photoshop图像滤镜--浮雕算法 浮雕的算法是对图像的每一个点进行卷积处理,采用的矩阵如下 [100:00 0:00-1]: 假设原图像为X,处理后的图像为Y ,也就是说,对于坐标为(i,j ...

  9. 蚁群算法(含matlab代码)

    蚁群算法 蚁群算法(Ant Algorithm简称AA)是近年来刚刚诞生的随机优化方法,它是一种源于大自然的新的仿生类算法.由意大利学者Dorigo最早提出,蚂蚁算法主要是通过蚂蚁群体之间的信息传递而 ...

最新文章

  1. python用jieba进行分词并可视化
  2. 使用GitLab或者Github简单实用地将数据导入Colab的方法
  3. ios 静态方法是否能被重写_小米新系统亮相,比苹果iOS更干净,21款手机支持升级...
  4. android https 简书,关于Android http改为https
  5. python manage.py syncdb Unknown command: 'syncdb'问题解决方法
  6. 2151: 种树 - BZOJ
  7. java 输出字符集合里的字_Java基础 -- 字符串(格式化输出、正则表达式)(示例代码)...
  8. c语言读一字节程序,C语言读写二进制文件
  9. 解散群通知怎么写_德云社演员私联初二女生,随后德云社全员退出粉丝群,什么情况?...
  10. mac 下载appium
  11. java之PropertyUtils
  12. 记一次mykings暗云挖矿木马的排查与解决
  13. ASP.NET MVC中的下拉框数据查询
  14. 论文笔记(CPN):Cascaded Pyramid Network for Multi-Person Pose Estimation
  15. java精选视频资源,收藏慢慢看!
  16. win7卸载Ubuntu重新安装ubuntu18.04
  17. 第九周.02.KAT
  18. 与微型计算机运算速度无关的是,四川大学《计算机应用基础0006》17春在线作业1...
  19. GIMP的安装和使用
  20. pro缺点和不足 一加7t_一加7T与OPPO Reno Ace 各有优势与缺点

热门文章

  1. Effective_go_Notes
  2. java 8 把list中对象的属性转成list
  3. 机器学习 任务管理器中显示cpu占用很高,gpu很低,但是设置了Gpu运算
  4. QQ群创建者和管理员
  5. php工作心得简50字,50字简短个人工作总结
  6. HTML5笔记(菜鸟教程)
  7. 机器学习面试题(转)
  8. Spring Boot进阶(09):集成EasyPoi,实现Excel文件多sheet导入导出,你得会 | 保姆级教学,超级详细,建议收藏
  9. ANSYS fluent
  10. 如何高效管理自己的电脑?文件再多也不乱!