智能优化算法:哈里斯鹰算法-附代码

2019智能优化算法:哈里斯鹰算法-附代码


摘要:2019 年 Heidari 等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全局搜索能力,并且需要调节的参数较少的优点。

1.算法原理

哈里斯鹰优化算法是一种模拟哈里斯鹰捕食行为的智能优化算法,主要由 3 部分组成:搜索阶段、搜索与开发的转换和开发阶段。

1.1 搜索阶段

哈里斯鹰随机栖息在某个地方,通过 2 种策略找到猎物:
X ( t + 1 ) = { X r a n d ( t ) − r 1 ∣ X r a n d ( t ) − 2 r 2 X ( t ) ∣ , q ≥ 0.5 [ X r a b b i t ( t ) − X m ( t ) ] − r 3 [ l b + r 4 ( u b − l b ) ] , q < 0.5 (1) X(t+1)=\begin{cases}X_{rand}(t)-r_1|X_{rand}(t)-2r_2X(t)|,q\geq 0.5 \\ [X_{rabbit(t)}-X_m(t)]-r_3[lb+r_4(ub-lb)],q<0.5 \end{cases}\tag{1} X(t+1)={Xrand(t)r1Xrand(t)2r2X(t),q0.5[Xrabbit(t)Xm(t)]r3[lb+r4(ublb)],q<0.5(1)
其中, X ( t ) , X ( t + 1 ) X(t),X(t+1) X(t),X(t+1)分别为当前和下一次迭代式时个体的位置, t t t为迭代次数, X r a n d ( t ) X_{rand}(t) Xrand(t)为随机选出的个体位置, X r a b b i t ( t ) X_{rabbit}(t) Xrabbit(t)为猎物位置,即拥有最优适应度的个体位置, r 1 , r 2 , r 3 , r 4 , q r_1,r_2,r_3,r_4,q r1,r2,r3,r4,q都是[0,1]之间的随机数。 q q q用来随机选择要采用的策略, X m ( t ) X_m(t) Xm(t) 为个体平均位置,表达式为:
X m ( t ) = ∑ k = 1 M X k ( t ) / M (2) X_m(t)=\sum_{k=1}^MX_k(t)/M \tag{2} Xm(t)=k=1MXk(t)/M(2)
其中, X k ( t ) X_k(t) Xk(t) 为种群中第 k k k个个体的位置, M M M为种群规模。

1.2 搜索与开发的转换

HHO 算法根据猎物的逃逸能量在搜索和不同的开发行为之间转换,逃逸能量定义为:
E = 2 E 0 ( 1 − t T ) (3) E =2E_0(1-\frac{t}{T})\tag{3} E=2E0(1Tt)(3)
其中, E 0 E_0 E0是猎物的初始能量,为 [-1,1] 之间的随机数,每次迭代时自动更新,t为迭代次数,T 为最大迭代次数。当 ∣ E ∣ ≥ 1 |E|\geq1 E1 时进入搜索阶段, ∣ E ∣ < 1 |E|<1 E<1当时进入开发阶段。

1.3 开发阶段

定义r为[0,1] 之间的随机数,用于选择不同的开发策略。当 0.5 ≤ ∣ E ∣ < 1 0.5\leq|E|<1 0.5E<1 r ≥ 0.5 r\geq0.5 r0.5时,采取软围攻策略进行位置更新:
X ( t + 1 ) = Δ X ( t ) − E ∣ J X r a b b i t ( t ) − X ( t ) ∣ (4) X(t+1)=\Delta X(t)-E|JX_{rabbit}(t)-X(t)|\tag{4} X(t+1)=ΔX(t)EJXrabbit(t)X(t)(4)
其中, Δ X ( t ) = X r a b b i t ( t ) − X ( t ) \Delta X(t) = X_{rabbit}(t)-X(t) ΔX(t)=Xrabbit(t)X(t) 表示猎物位置与个体当前位置的差值, J J J为 [0, 2] 之间的随机数。

∣ E ∣ < 0.5 |E|<0.5 E<0.5 r ≥ 0.5 r\geq0.5 r0.5时采取硬围攻策略进行位置更新:
X ( t + 1 ) = X r a b b i t ( t ) − E ∣ Δ X ( t ) ∣ (5) X(t+1)=X_{rabbit}(t)-E|\Delta X(t)| \tag{5} X(t+1)=Xrabbit(t)E∣ΔX(t)(5)
0.5 ≤ ∣ E ∣ < 1 0.5\leq|E|<1 0.5E<1 r < 0.5 r<0.5 r<0.5时,采取渐近式快速俯冲的软包围策略进行位置更新:
X ( t + 1 ) = { Y , f ( Y ) < f ( X ( t ) ) Z , f ( Z ) < f ( X ( t ) ) (6) X(t+1) = \begin{cases} Y,f(Y)<f(X(t))\\ Z,f(Z)<f(X(t)) \end{cases}\tag{6} X(t+1)={Y,f(Y)<f(X(t))Z,f(Z)<f(X(t))(6)

Y = X r a b b i t ( t ) − E ∣ J X r a b b i t ( t ) − X ( t ) ∣ (7) Y = X_{rabbit}(t)-E|JX_{rabbit}(t)-X(t)|\tag{7} Y=Xrabbit(t)EJXrabbit(t)X(t)(7)

Z = Y + S ∗ L F ( 2 ) (8) Z=Y+S*LF(2)\tag{8} Z=Y+SLF(2)(8)

其中, f ( ) f( ) f()为适应度函数, S S S为 2 维随机向量,元素为[0,1] 之间的随机数, L F ( ) LF( ) LF() 是莱维飞行的数学表达式。

∣ E ∣ < 0.5 |E|<0.5 E<0.5 r < 0.5 r<0.5 r<0.5时,采取渐近式快速俯冲的硬包围策略进行位置更新:
X ( t + 1 ) = { Y , f ( Y ) < f ( X ( t ) ) Z , f ( Z ) < f ( X ( t ) ) (9) X(t+1) = \begin{cases} Y,f(Y)<f(X(t))\\ Z,f(Z)<f(X(t)) \end{cases}\tag{9} X(t+1)={Y,f(Y)<f(X(t))Z,f(Z)<f(X(t))(9)

Y = X r a b b i t ( t ) − E ∣ J X r a b b i t ( t ) − X m ( t ) ∣ (10) Y = X_{rabbit}(t)-E|JX_{rabbit}(t)-X_m(t)|\tag{10} Y=Xrabbit(t)EJXrabbit(t)Xm(t)(10)

Z = Y + S ∗ L F ( 2 ) (11) Z=Y+S*LF(2)\tag{11} Z=Y+SLF(2)(11)

算法步骤:

步骤 1:种群初始化。根据搜索空间每一维的上界和下界,初始化每个个体。

步骤 2:计算初始适应度。将适应度最优的个体位置设为当前猎物位置。

步骤 3:位置更新。先通过更新猎物逃逸能量,然后根据逃逸能量和生成的随机数执行搜索或开发行为中对应的位置更新策略。

步骤 4:计算适应度。计算位置更新后的个体适应度,并与猎物适应度值进行比较,若位置更新后的个体适应度值优于猎物,则以适应度
值更优的个体位置作为新的猎物位置。

重复步骤 3 和步骤 4,当算法迭代次数达到最大迭代次数时。输出当前猎物位置作为目标的估计位置。

2.算法结果

在这里插入图片描述

3.参考文献

[1] HEIDARI A A, MIRJALILI S, FARIS H, et al. Harris hawks optimization: algorithm and applications[J]. Future Generation Computer Systems, 2019, 97: 849-872.

4.Matlab代码

改进哈里斯鹰算法

名称参考文献
多策略改进哈里斯鹰优化算法(MHHO)[1]郭雨鑫,刘升,高文欣,张磊.多策略改进哈里斯鹰优化算法[J].微电子学与计算机,2021,38(07):18-24.
融合互利共生和透镜成像学习的HHO优化算法(IHHO)[1]陈功,曾国辉,黄勃,刘瑾.融合互利共生和透镜成像学习的HHO优化算法[J/OL].计算机工程与应用:1-14[2021-10-26].http://kns.cnki.net/kcms/detail/11.2127.TP.20210910.1049.010.html.
融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)[1]聂春芳.融合黄金正弦和随机游走的哈里斯鹰优化算法[J].智能计算机与应用,2021,11(07):113-119+123.
集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)[1]张帅,王俊杰,李爱莲,全凌翔,崔桂梅.集成正态云和动态扰动的哈里斯鹰优化算法[J/OL].小型微型计算机系统:1-11[2023-06-06].DOI:10.20009/j.cnki.21-1106/TP.2021-0791.
融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)[1]贾鹤鸣,刘庆鑫,刘宇翔等.融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法[J].智能系统学报,2023,18(01):104-116.
混合策略改进的哈里斯鹰优化算法(IHHO)[1]展广涵,王雨虹,刘昊.混合策略改进的哈里斯鹰优化算法及其应用[J].传感技术学报,2022,35(10):1394-1403.
基于混合策略的改进哈里斯鹰优化算法(HSHHO)[1]张海林,陈泯融.基于混合策略的改进哈里斯鹰优化算法[J].计算机系统应用,2023,32(01):166-178.DOI:10.15888/j.cnki.csa.008911.
组合多策略改进的自适应哈里斯鹰优化算法(LTWHHO)[1]罗俊星.组合多策略改进的自适应哈里斯鹰优化算法[J].漳州职业技术学院学报,2023,25(01):84-90+102.DOI:10.13908/j.cnki.issn1673-1417.2023.01.0013.
混沌精英哈里斯鹰优化算法(CEHHO)[1]汤安迪,韩统,徐登武,谢磊.混沌精英哈里斯鹰优化算法[J/OL].计算机应用:1-10[2021-01-29].http://kns.cnki.net/kcms/detail/51.1307.TP.20210114.0947.032.html.

算法应用:

名称链接
哈里斯鹰优化的BP神经网络(分类)https://blog.csdn.net/u011835903/article/details/127894535
基于哈里斯鹰优化概率神经网络PNN的分类预测https://blog.csdn.net/u011835903/article/details/128032655
基于哈里斯鹰算法的极限学习机(ELM)分类算法https://blog.csdn.net/u011835903/article/details/129601447
基于哈里斯鹰算法优化的核极限学习机(KELM)分类算法https://blog.csdn.net/u011835903/article/details/130630238
基于哈里斯鹰算法优化的核极限学习机(KELM)回归预测https://blog.csdn.net/u011835903/article/details/116849032
基于哈里斯鹰算法优化的SVM回归预测https://blog.csdn.net/u011835903/article/details/110630270
基于哈里斯鹰优化的SVM数据分类https://blog.csdn.net/u011835903/article/details/110523352
哈里斯鹰算法优化脉冲耦合神经网络的图像自动分割[1]贾鹤鸣,康立飞,孙康健,彭晓旭,李瑶,姜子超.哈里斯鹰算法优化脉冲耦合神经网络的图像自动分割[J].应用科技,2019,46(04):16-20+25.
基于哈里斯鹰算法的工程优化案例
基于哈里斯鹰算法的路径规划算法https://blog.csdn.net/u011835903/article/details/130936569

5. Python

改进哈里斯鹰算法

名称参考文献
多策略改进哈里斯鹰优化算法(MHHO)[1]郭雨鑫,刘升,高文欣,张磊.多策略改进哈里斯鹰优化算法[J].微电子学与计算机,2021,38(07):18-24.
融合互利共生和透镜成像学习的HHO优化算法(IHHO)[1]陈功,曾国辉,黄勃,刘瑾.融合互利共生和透镜成像学习的HHO优化算法[J/OL].计算机工程与应用:1-14[2021-10-26].http://kns.cnki.net/kcms/detail/11.2127.TP.20210910.1049.010.html.
融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)[1]聂春芳.融合黄金正弦和随机游走的哈里斯鹰优化算法[J].智能计算机与应用,2021,11(07):113-119+123.
集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)[1]张帅,王俊杰,李爱莲,全凌翔,崔桂梅.集成正态云和动态扰动的哈里斯鹰优化算法[J/OL].小型微型计算机系统:1-11[2023-06-06].DOI:10.20009/j.cnki.21-1106/TP.2021-0791.
融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)[1]贾鹤鸣,刘庆鑫,刘宇翔等.融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法[J].智能系统学报,2023,18(01):104-116.
混合策略改进的哈里斯鹰优化算法(IHHO)[1]展广涵,王雨虹,刘昊.混合策略改进的哈里斯鹰优化算法及其应用[J].传感技术学报,2022,35(10):1394-1403.
基于混合策略的改进哈里斯鹰优化算法(HSHHO)[1]张海林,陈泯融.基于混合策略的改进哈里斯鹰优化算法[J].计算机系统应用,2023,32(01):166-178.DOI:10.15888/j.cnki.csa.008911.
组合多策略改进的自适应哈里斯鹰优化算法(LTWHHO)[1]罗俊星.组合多策略改进的自适应哈里斯鹰优化算法[J].漳州职业技术学院学报,2023,25(01):84-90+102.DOI:10.13908/j.cnki.issn1673-1417.2023.01.0013.
混沌精英哈里斯鹰优化算法(CEHHO)[1]汤安迪,韩统,徐登武,谢磊.混沌精英哈里斯鹰优化算法[J/OL].计算机应用:1-10[2021-01-29].http://kns.cnki.net/kcms/detail/51.1307.TP.20210114.0947.032.html.

算法应用:

名称链接
基于哈里斯鹰算法的SVM分类(HHO-SVM)
哈里斯优化算法(Harris' Hawk Optimization Algorithm)是一种基于的行为模式的优化算法,用于解决优化问题。它模拟了群中的合作和竞争行为,通过合理的协作和竞争策略来搜索最优解。 以下是哈里斯优化算法的基本步骤: 1. 初始化种群:随机生成一定数量的个体作为初始种群。 2. 评估适应度:根据问题的适应度函数,计算每个个体的适应度值。 3. 选择领导者:根据适应度值选择一个领导者个体。 4. 更新位置:根据领导者个体的位置和其他个体的位置,更新每个个体的位置。 5. 更新适应度:根据新的位置,重新计算每个个体的适应度值。 6. 判断终止条件:如果满足终止条件(例如达到最大迭代次数或找到满意的解),则停止算法;否则返回步骤3。 在Python中实现哈里斯优化算法,可以按照以下步骤进行: 1. 定义问题的适应度函数。 2. 初始化种群,随机生成一定数量的个体。 3. 根据适应度函数计算每个个体的适应度值。 4. 选择领导者个体,可以根据适应度值选择最优个体作为领导者。 5. 更新每个个体的位置,可以根据领导者个体的位置和其他个体的位置进行更新。 6. 根据新的位置重新计算每个个体的适应度值。 7. 判断终止条件,如果满足条件则停止算法,否则返回步骤4。 这是一个简单的介绍,如果你需要更详细的实现代码或者其他相关信息,请告诉我。以下是一些相关问题:
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值