智能优化算法:天鹰优化算法

文章目录

  • 智能优化算法:天鹰优化算法
    • 1.算法原理
      • 1.1 初始化
      • 1.2 扩大搜索($X_1$)
      • 1.3 缩小搜索($X_2$)
      • 1.4 扩大开发($X_3$)
      • 1.5扩大开发($X_4$)
    • 2.实验结果
    • 3.参考文献
    • 4.MATLAB代码

摘要:天鹰优化算法(Aquila Optimizer,AO)是于2021年提出的一种新型智能优化算法,该算法主要模拟天鹰在捕捉猎物过程中的自然行为,来达到寻优的目的,具有寻优能力强,收敛速度快等特点。

1.算法原理

1.1 初始化

与其他优化算法一样,种群在搜索范围内随机初始化位置。
Xij=rand⁡×(UBj−LBj)+LBj,i=1,2,⋯,Nj=1,2,⋯,Dim (1)X_{i j}=\operatorname{rand} \times\left(U B_{j}-L B_{j}\right)+L B_{j}, i=1,2, \cdots, N j=1,2, \cdots, \text { Dim } \tag{1} Xij​=rand×(UBj​−LBj​)+LBj​,i=1,2,⋯,Nj=1,2,⋯, Dim (1)
其中,randrandrand是一个随机向量,LBjLB_jLBj​表示给定问题的第jjj个下界,UBjUB_jUBj​表示给定问题的第jjj个上界。

AO算法的优化过程用四种方法表示:通过垂直俯冲的高空飞行选择搜索空间、通过短滑翔攻击的等高线飞行在发散搜索空间内探索、通过慢速下降攻击的低空飞行在收敛搜索空间内开发、通过徒步猛扑并抓住猎物。如果 t≤23Tt\leq\frac{2}{3}Tt≤32​T,则AO算法可使用不同的行为从探索步骤转移到开发步骤;否则,将很好地执行开发步骤。

1.2 扩大搜索(X1X_1X1​)

在第一种方法(X1)(X_1)(X1​)中,天鹰识别猎物区域,并通过垂直弯腰的高飞选择最佳狩猎区域。此时,AO让来自高空的探险者四处飞翔,以确定猎物所在的搜索空间区域。该行为的数学模型如式(2)所示:
X1(t+1)=Xbest(t)×(1−tT)+(XM(t)−Xbest(t)∗rand)(2)X_{1}(t+1)=X_{b e s t}(t) \times\left(1-\frac{t}{T}\right)+\left(X_{M}(t)-X_{b e s t}(t) * r a n d\right)\tag{2} X1​(t+1)=Xbest​(t)×(1−Tt​)+(XM​(t)−Xbest​(t)∗rand)(2)

XM(t)=1N∑i=1NXi(t),∀j=1,2,⋯,Dim (3)X_{M}(t)=\frac{1}{N} \sum_{i=1}^{N} X_{i}(t), \forall j=1,2, \cdots, \text { Dim } \tag{3} XM​(t)=N1​i=1∑N​Xi​(t),∀j=1,2,⋯, Dim (3)

其中,X1(t+1)X_1(t+1)X1​(t+1)是由第一种搜索方法(X1)(X_1)(X1​)生成的第t+1t+1t+1次迭代的解;Xbest(t)X_{best}(t)Xbest​(t)是在第ttt次迭代之前获得的最佳解,这反映了猎物的近似位置;(1−tT)(1-\frac{t}{T})(1−Tt​)用于通过迭代次数控制扩展搜索(探索);XM(t)X_M(t)XM​(t)表示在第ttt次迭代时当前解的平均值,该平均值使用式(3)计算;randrandrand是介于0和1之间的随机值;rrr和TTT分别表示当前迭代和最大迭代次数。DimDimDim是问题的维度大小,NNN是候选解的数量(种群规模)。

1.3 缩小搜索(X2X_2X2​)

在第二种方法(X2X_2X2​)中,当从高空发现猎物区域时,天鹰在目标猎物上方盘旋,准备着陆陆地,然后攻击,这种方法称为短滑翔攻击的等高线飞行。在这里,AO狭窄地探索目标猎物的选定区域,为攻击做准备。该行为的数学模式如式(4)所示:
X2(t+1)=Xbest (t)×Levy⁡(D)+XR(t)+(y−x)∗rand (4)X_{2}(t+1)=X_{\text {best }}(t) \times \operatorname{Levy}(D)+X_{R}(t)+(y-x) * \text { rand } \tag{4} X2​(t+1)=Xbest ​(t)×Levy(D)+XR​(t)+(y−x)∗ rand (4)
其中,X2(t+1)X_{2}(t+1)X2​(t+1)是由第二个搜索方法(X2X_2X2​)生成的第t+1t+1t+1次迭代的解;DDD是维度空间大小;Levy(D)Levy(D)Levy(D)是Levy飞行分布函数,使用式(5)计算;XR(t)X_R(t)XR​(t)是在第ttt次迭代时在[1,N][1,N][1,N]范围内获得的随机解。
Levy⁡(D)=s×u×σ∣v∣1β(5)\operatorname{Levy}(D)=s \times \frac{u \times \sigma}{|v|^{\frac{1}{\beta}}} \tag{5} Levy(D)=s×∣v∣β1​u×σ​(5)
其中,s=0.01s=0.01s=0.01,uuu和vvv分别为服从N(0,σ2)N ( 0 , σ^2 )N(0,σ2) 和N(0,1)N(0,1)N(0,1)的高斯分布随机数,σ\sigmaσ计算如式(6)所示。
σ=(Γ(1+β)×sin⁡(πβ2)Γ(1+β2)×β×2(β−12))1β(6)\sigma=\left(\frac{\Gamma(1+\beta) \times \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2\left(\frac{\beta-1}{2}\right)}\right)^{\frac{1}{\beta}} \tag{6} σ=⎝⎛​Γ(21+β​)×β×2(2β−1​)Γ(1+β)×sin(2πβ​)​⎠⎞​β1​(6)
其中 β=1.5\beta=1.5β=1.5。在式(4)中,yyy和xxx用于表示搜索中的螺旋形状,计算如下:
y=r×cos⁡(θ)(7)y=r \times \cos (\theta) \tag{7} y=r×cos(θ)(7)

x=r×sin⁡(θ)(8)x=r \times \sin (\theta) \tag{8} x=r×sin(θ)(8)

其中:
r=r1+U×D1(9)r=r_{1}+U \times D_{1} \tag{9} r=r1​+U×D1​(9)

θ=−ω×D1+θ1(10)\theta=-\omega \times D_{1}+\theta_{1} \tag{10} θ=−ω×D1​+θ1​(10)

θ1=3×π2(11)\theta_{1}=\frac{3 \times \pi}{2} \tag{11} θ1​=23×π​(11)

r1r_1r1​取1到20之间的值,用于固定搜索周期数;UUU是固定为0.00565的值; D1D_1D1​是从1到搜索空间维数(DimDimDim)的整数;ω\omegaω是固定为0.005的值。

1.4 扩大开发(X3X_3X3​)

在第三种方法(X3X_3X3​)中,当天鹰准确地指定了猎物区域,并且准备好着陆和攻击时,天鹰垂直下降并进行初步攻击,以发现猎物反应。这种方法称为低空慢降攻击。在这里,AO利用目标的选定区域接近猎物并进行攻击。这种行为在数学上如式(12)所示:
X3(t+1)=(Xbest (t)−XM(t))×α−rand +((UB−LB)×rand +LB)×δ(12)X_{3}(t+1)=\left(X_{\text {best }}(t)-X_{M}(t)\right) \times \alpha-\text { rand }+((U B-L B) \times \text { rand }+L B) \times \delta \tag{12} X3​(t+1)=(Xbest ​(t)−XM​(t))×α− rand +((UB−LB)× rand +LB)×δ(12)
其中,X3(t+1)X_3(t+1)X3​(t+1)是由第三种搜索方法(X3X_3X3​)生成的第t+1t+1t+1次迭代的解;Xbest(t)X_{best}(t)Xbest​(t)表示第ttt次迭代前猎物的近似位置(获得的最佳解);XM(t)X_M(t)XM​(t)表示第ttt次迭代时当前解的平均值,该平均值使用式(3)计算;randrandrand是一个介于0和1之间的随机值;α\alphaα和δ\deltaδ是本文中固定为较小值(0.1)的开发调整参数;LBLBLB表示给定问题的下界,UBUBUB表示给定问题的上界。

1.5扩大开发(X4X_4X4​)

在第三种方法(X4X_4X4​)中,当天鹰接近猎物时,它根据其随机运动在陆地上攻击猎物。这种方法称为“行走并抓住猎物”,AO在最后一个位置攻击猎物。该行为的数学模型如式(13)所示:
X4(t+1)=QF(t)×Xbest(t)−(G1×X(t)×rand⁡)−G2×Levy⁡(D)+rand⁡×G1(13)X_{4}(t+1)=Q F(t) \times X_{b e s t}(t)-\left(G_{1} \times X(t) \times \operatorname{rand}\right)-G_{2} \times \operatorname{Levy}(D)+\operatorname{rand} \times G_{1} \tag{13} X4​(t+1)=QF(t)×Xbest​(t)−(G1​×X(t)×rand)−G2​×Levy(D)+rand×G1​(13)
其中,X4(t+1)X_4(t+1)X4​(t+1)是由第四种搜索方法(X4X_4X4​)生成的第t+1t+1t+1次迭代的解;QF(t)QF(t)QF(t)表示在第ttt次迭代时用于平衡搜索策略的质量函数,其使用式(14)计算;G1G_1G1​表示在搜索猎物期间用于跟踪猎物的AO的各种运动,其使用式(15)计算;G2G_2G2​呈现从2到0的递减值,表示AO的飞行速率,AO用于在从第一个位置到最后一个位置的过程中跟踪猎物,使用式(16)产生;X(t)X(t)X(t)是第ttt次迭代的当前解。
QF(t)=t2×rand −1(1−T)2(14)Q F(t)=t^{\frac{2 \times \text { rand }-1}{(1-T)^{2}}} \tag{14} QF(t)=t(1−T)22× rand −1​(14)

G1=2×rand −1(15)G_{1}=2 \times \text { rand }-1 \tag{15} G1​=2× rand −1(15)

G2=2×(1−tT)(16)G_{2}=2 \times\left(1-\frac{t}{T}\right) \tag{16} G2​=2×(1−Tt​)(16)

其中,randrandrand是介于0和1之间的随机值;ttt和TTT分别表示当前迭代和最大迭代次数。

算法伪代码如下:

1: Initialization phase:
2: Initialize the population X of the AO.
3: Initialize the parameters of the AO (i.e.,  α ,δ, etc).
4: WHILE (The end condition is not met) do
5: Calculate the fitness function values.
6: X best (t)= Determine the best obtained solution according to the fitness values.
7: for (i = 1,2…,N) do
8: Update the mean value of the current solution X M (t).
9: Update the x,y,G 1 ,G 2 , Levy(D), etc.
10: if t⩽( 2
3 )∗T then
11:  if rand⩽0.5 then
12:  ▹ Step 1: Expanded exploration (X 1 )
13:  Update the current solution using Eq. (2).
14:  if Fitness(X 1 (t + 1)) < Fitness(X(t)) then
15:  X(t) =(X 1 (t + 1))
16:  if Fitness(X 1 (t + 1)) < Fitness(X best (t)) then
17:  X best (t) =X 1 (t + 1)
18:  end if
19:  end if
20:  else
21:  {▹ Step 2: Narrowed exploration (X 2 )}
22:  Update the current solution using Eq. (4).
23:  if Fitness(X 2 (t + 1)) < Fitness(X(t)) then
24:  X(t) =(X 2 (t + 1))
25:  if Fitness(X 2 (t + 1)) < Fitness(X best (t)) then
26:  X best (t) =X 2 (t + 1)
27:  end if
28:  end if
29:  end if
30:  else
31:  if rand⩽0.5 then
32:  {▹ Step 3: Expanded exploitation (X 3 )}
33:  Update the current solution using Eq. (12).
34:  if Fitness(X 3 (t + 1)) < Fitness(X(t)) then
35:  X(t) =(X 3 (t + 1))
36:  if Fitness(X 3 (t + 1)) < Fitness(X best (t)) then
37:  X best (t) =X 3 (t + 1)
38:  end if
39:  end if
40:  else
41:  ▹ Step 4: Narrowed exploitation (X 4 )
42:  Update the current solution using Eq. (13).
43:  if Fitness(X 4 (t + 1)) < Fitness(X(t)) then
44:  X(t) =(X 4 (t + 1))
45:  ifFitness(X 4 (t + 1)) < Fitness(X best (t)) then
46:  X best (t) =X 4 (t + 1)
47:  end if
48:  end if
49:  end if
50:  end if
51:  end for
52: end while
53: return The best solution (X best ).

2.实验结果

3.参考文献

[1] Abualigah L , Yousri D , Elaziz M A , et al. Matlab Code of Aquila Optimizer: A novel meta-heuristic optimization algorithm[J]. Computers & Industrial Engineering, 2021.

4.MATLAB代码

智能优化算法:天鹰优化算法-附代码相关推荐

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

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

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

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

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

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

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

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

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

最新文章

  1. 设计模式:组合模式(Composite Pattern)
  2. 2021-04-17 深入理解SLAM技术 【3】 数学基础概述
  3. 前端学习(2016)vue之电商管理系统电商系统vue-quill-editor
  4. CCIE-LAB-第十四篇-PIM Sparst+IGMP
  5. webservice3
  6. Android中ListView复用导致布局错乱的解决方案
  7. 计算机专业基础 -- 离散数学基础知识
  8. java的四个元注解 @Retention @Target @Document @Inherited
  9. RNN神经网络- 吴恩达Andrew Ng 循环神经网络 NLP Transformers Week4 知识总结
  10. NekoHtml 乱码出现问号的解决
  11. 华为ENSP 三层交换
  12. 计算机网络---网络编程套接字(一)
  13. Elasticsearch blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];
  14. 【Android -- 开源库】Gson 的基本使用
  15. 超长攻略,机器学习基石!带你涉足王者之巅
  16. java 登录界面加验证码_java 做登陆窗口,带有用户名和密码输入框和验证码。求修改...
  17. 计算机主板有哪些接口,主板硬盘一般有哪些接口
  18. STM8-STVD+Cosmic编译输出信息参数配置
  19. 使用opencv打开笔记本摄像头
  20. forEach结束循环

热门文章

  1. MetaTrader与cTrader交易软件区别与优势
  2. TCP-508N使用python modbus_tk库控制总结
  3. matlab中错误使用saveas,路径无效或丢失
  4. narwal机器人_Narwal云鲸智能扫拖机器人,加压拖地,清洁彻底
  5. 怎么修改手游服务器玩家等级上限,如何高效升级 梦幻手游服务器等级限制
  6. Macbookair上安装Ubuntu 16.04日志
  7. android双卡发短信SubId和SubscriptionId转换
  8. 课文果园机器人这篇课文什么的果子_24课果园机器人教学设计
  9. 《征服:JavaScript高级程序设计与应用实例》(含源码下载地址)
  10. myeclipse破解文件不成功的解决办法,cracker.jar