智能优化算法:天鹰优化算法-附代码
智能优化算法:天鹰优化算法
文章目录
- 智能优化算法:天鹰优化算法
- 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≤32T,则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)=N1i=1∑NXi(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∣β1u×σ(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.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
- 相位 unwrap 与 wrap 算法详解(附代码)
相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...
- 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...
- 二分查找算法详解(附代码)
二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...
- 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客blog.csdn.net 2.智能优化算法 ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
最新文章
- 设计模式:组合模式(Composite Pattern)
- 2021-04-17 深入理解SLAM技术 【3】 数学基础概述
- 前端学习(2016)vue之电商管理系统电商系统vue-quill-editor
- CCIE-LAB-第十四篇-PIM Sparst+IGMP
- webservice3
- Android中ListView复用导致布局错乱的解决方案
- 计算机专业基础 -- 离散数学基础知识
- java的四个元注解 @Retention @Target @Document @Inherited
- RNN神经网络- 吴恩达Andrew Ng 循环神经网络 NLP Transformers Week4 知识总结
- NekoHtml 乱码出现问号的解决
- 华为ENSP 三层交换
- 计算机网络---网络编程套接字(一)
- Elasticsearch blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];
- 【Android -- 开源库】Gson 的基本使用
- 超长攻略,机器学习基石!带你涉足王者之巅
- java 登录界面加验证码_java 做登陆窗口,带有用户名和密码输入框和验证码。求修改...
- 计算机主板有哪些接口,主板硬盘一般有哪些接口
- STM8-STVD+Cosmic编译输出信息参数配置
- 使用opencv打开笔记本摄像头
- forEach结束循环
热门文章
- MetaTrader与cTrader交易软件区别与优势
- TCP-508N使用python modbus_tk库控制总结
- matlab中错误使用saveas,路径无效或丢失
- narwal机器人_Narwal云鲸智能扫拖机器人,加压拖地,清洁彻底
- 怎么修改手游服务器玩家等级上限,如何高效升级 梦幻手游服务器等级限制
- Macbookair上安装Ubuntu 16.04日志
- android双卡发短信SubId和SubscriptionId转换
- 课文果园机器人这篇课文什么的果子_24课果园机器人教学设计
- 《征服:JavaScript高级程序设计与应用实例》(含源码下载地址)
- myeclipse破解文件不成功的解决办法,cracker.jar