长春做网站qianceyun,ui设计软件下载官网,无锡做网站建设,免费优化网站测试函数为F9
在MATLAB中执行程序结果如下#xff1a; 在Python中执行程序结果如下#xff1a; 哈里斯鹰优化算法(Harris Hawks Optimization , HHO)是 Heidari等[1]于2019年提出的一种新型元启发式算法#xff0c;设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突…测试函数为F9
在MATLAB中执行程序结果如下 在Python中执行程序结果如下 哈里斯鹰优化算法(Harris Hawks Optimization , HHO)是 Heidari等[1]于2019年提出的一种新型元启发式算法设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突然袭击的狩猎风格算法的寻优过程包括探索、探索与开发转换和开发三个阶段。具有需调参数少、原理简单易实现、局部搜索能力强等优点。在数值和工程优化、图像识别、故障诊断、电网优化设计、等工程领域得到广泛的应用。
本文作者将详细介绍其原理、代码实现并分析可以进行改进的方向。
00 目录
1 哈里斯鹰优化算法HHO原理
2 代码目录
3 算法性能
4 算法的改进与利用
5 源码获取
01 哈里斯鹰优化算法HHO原理
HHO算法通过模仿哈里斯鹰在捕食猎物过程中的合作行为以及突然袭击的狩猎风格。HHO算法共有三个阶段全局探索阶段、全局探索向局部开发转换阶段和局部开发阶段。在HHO 算法中哈里斯鹰的位置被当作为候选解迭代的最佳候选解为猎物。
1.1 探索阶段
探索阶段哈里斯鹰种群个体随机栖息在各地根据其敏锐的眼睛在沙漠空间中跟踪和探测猎物通过两种策略对猎物进行等概率的全局搜索P0.5时每只鹰会根据其他成员和猎物位置进行移动P0.5时哈里斯鹰会随机栖息在种群范围内的某棵树上其表达式如下 其中 Urand为第t代种群中随机选择的哈里斯鹰个体Uprey表示猎物位置Um表示当前哈里斯鹰种群的平均位置ub, lb分别为搜索范围上限和下限rand1234和P均为(0,1)区间内的随机数。
1.2 探索与开发转换阶段
HHO算法根据哈里斯鹰捕猎习性将其捕猎过程划分为探索行为和开发行为猎物在逃跑过程中能量会逐渐降低因此采用猎物逃逸能量动态选取探索行为或开发行为进行捕猎猎物逃逸能量定义为 其中E0为猎物的初始逃逸能量是在(-1,1)之间的随机数t为当前进化代数M为种群最大进化代数。当|E|1时进入探索阶段|E|1时进入开发阶段。
1.3 开发阶段
在找到目标猎物后哈里斯鹰在开发阶段发起攻击其会在猎物周围形成一圈围攻等待突然袭击的机会。然而实际的捕食过程是复杂的例如被围困的猎物可能会逃脱包围圈哈里斯鹰可以根据猎物的行为作出必要的调整。因此HHO采用四种策略来模仿哈里斯鹰的狩猎行为这四种策略分别是软包围、硬包围、渐进式快速俯冲的软包围和渐进式快速俯冲的硬包围。
定义Sp为猎物逃逸概率其为(0,1)之间的随机数Sp0.5表示有逃脱机会结合猎物逃逸能量|E|和猎物逃逸概率Sp确定狩猎策略。
a. 当0.5 ≤ |E| 1且Sp ≥ 0.5时-软包围
猎物仍然有逃逸的能量试图通过随机的跳跃逃出包围圈此时鹰使用软包围捕食猎物以使其精疲力尽从而使鹰可以突击突袭其更新公式为: 其中ΔU为猎物位置和当前个体位置之差J~U(0,2)。
b. 当|E| 0.5且Sp ≥ 0.5时-硬包围
猎物没有逃逸的能量也没有逃脱的机会哈里斯鹰使用硬包围捕食猎物以进行最后突击突袭其更新公式为:
c. 当0.5 ≤ |E| 1且Sp 0.5时-渐进式快速俯冲软包围
猎物有机会从包围圈中逃脱且有足够能量逃脱鹰的捕捉但是哈里斯鹰会围绕猎物采用渐进式快速俯冲软包围并根据猎物的欺骗性行为逐渐纠正其位置和方向从而选择最佳位置来捕捉猎物通过以下两个策略实施。当第一个策略无效时执行第二个策略其更新公式为:
其中F(.)是适应度函数S是元素为(0,1)之间d维随机向量Levy为莱维飞行策略其公式为
d. 当|E| 0.5且Sp 0.5时-渐进式快速俯冲硬包围
猎物筋疲力尽但仍有机会逃脱哈里斯鹰通过渐进式快速俯冲硬包围猎物此策略鹰的更新位置公式与渐进式快速俯冲的软包围中的公式相似。在这种情况下哈里斯鹰群试图缩短它们与目标猎物的平均位置的距离其更新公式为: 算法流程如下 02 代码目录 代码包含MATLAB和Python考虑到很多同学获取代码后MATLAB代码部分有乱码MATLAB版本问题可以将MATLAB版本改为2020及以上或使用乱码解决文件夹中的txt文件即可。
代码都经过作者重新注释编写代码更清爽可读性强。
部分代码
MATLAB: Python 03 算法性能
采用标准测试函数初步检验其寻优性能
在MATLAB中执行程序结果如下 Python中执行程序结果如下
MATLAB和Python都进行了F9函数的测试测试效果都不错其收敛速度和精度很好。
04 算法的改进与利用
根据没有免费的午餐(NFL)定理[2]没有一个算法可以处理所有的优化问题即每个算法都有其优势和局限性这也激励着学者提出各种改进的算法来解决不同类型的优化问题同时也为算法间的混合利用提供了参考。这一节作者就简要谈一下HHO的可改进之处及其可利用的优点。
4.1 改进
HHO算法通过4种策略进行局部开发在开发阶段具有良好的表现但其探索阶段对于更复杂的优化问题效率并不高可能会过早收敛因此可以对其探索阶段的更新方式进行改进避免在探索阶段种群陷入局部最优。
其次HHO依赖于一个线性递减方法来改变逃逸能量因子这会导致勘探和开发不平衡且无法准确表征实际情况下鹰与猎物多轮围捕逃逸过程因为在迭代后期|E|必然小于1只进行局部搜索因此其搜索并不呈现全局性若在前期种群接近局部最优则可能导致后期算法陷入局部最优而无法跳出。可以通过一种非线性递减的方法来动态调整算法参数E。
4.2 利用
由HHO的理论可知其在开发阶段采用了4种策略来围捕猎物这样的策略能够使算法具有良好的局部搜索性能可以作为其他算法提高局部搜索能力的方法之一。
05 源码获取
在GZH (KAU的云实验台) 后台回复 HHO
参考文献
[1] Heidari A A, Mirjalili S, Faris H, et al. Harris Hawks Optimization Algorithm and Applications[J]. Future Generation Computer Systems,2019,97(8):849-872.
[2] Wolpert DH, Macready WG. No free lunch theorems for optimization. IEEE transactions on evolutionary computation 67–82, 1997.
另如果有伙伴有待解决的优化问题各种领域都可可以发我我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行)你们的鼓励就是我坚持的动力