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

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

文章目录

  • 2019智能优化算法:哈里斯鹰算法-附代码
    • 1.算法原理
      • 1.1 搜索阶段
      • 1.2 搜索与开发的转换
      • 1.3 开发阶段
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要: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)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)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.算法结果

智能优化算法:哈里斯鹰算法-附代码_第1张图片

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代码

哈里斯鹰算法
改进算法matlab代码

名称 说明或者参考文献
多策略改进哈里斯鹰优化算法(MHHO) [1]郭雨鑫,刘升,高文欣,张磊.多策略改进哈里斯鹰优化算法[J].微电子学与计算机,2021,38(07):18-24.
混沌精英哈里斯鹰优化算法(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/112149394(原理一样,只是优化算法是哈里斯鹰算法)
基于哈里斯鹰算法的极限学习机(ELM)分类算法 https://blog.csdn.net/u011835903/article/details/111177850(原理一样,只是优化算法是哈里斯鹰算法)
基于哈里斯鹰算法优化的核极限学习机(KELM)分类算法 https://blog.csdn.net/u011835903/article/details/116851164(原理一样,只是优化算法是哈里斯鹰算法)
基于哈里斯鹰算法优化的核极限学习机(KELM)回归预测 https://blog.csdn.net/u011835903/article/details/116849032(原理一样,只是优化算法是哈里斯鹰算法)
基于哈里斯鹰算法优化的SVM回归预测 https://blog.csdn.net/u011835903/article/details/110630270(原理一样,只是优化算法是哈里斯鹰算法)
哈里斯鹰算法优化脉冲耦合神经网络的图像自动分割 [1]贾鹤鸣,康立飞,孙康健,彭晓旭,李瑶,姜子超.哈里斯鹰算法优化脉冲耦合神经网络的图像自动分割[J].应用科技,2019,46(04):16-20+25.
基于哈里斯鹰HHO的路径规划 https://blog.csdn.net/u011835903/article/details/109100220(原理一样,只是优化算法是哈里斯鹰算法)

个人资料介绍

你可能感兴趣的:(智能优化算法,算法,python,人工智能,深度学习)