2021年智能优化算法:天鹰优化器AO-附MATLAB代码
天鹰优化器AO及MATLAB代码编程
- 1 算法原理简介
- 1.1 扩大探索阶段
- 1.2 缩小探索阶段
- 1.3 扩大开发阶段
- 1.4 缩小开发阶段
- 2 算法流程
- 3 MATLAB代码结果
1 算法原理简介
天鹰优化器(Aquila Optimizer, AO)是一种新型智能优化算法,由Laith Abualigah等于2021年提出。该算法具有多个探索和开发策略,实验表明,与其他的元启发式算法相比,天鹰优化器算法具有明显的优越性。该算法的灵感源自北美洲Aquila鸟捕食过程中的四个群体行为:1. 通过垂直高翱翔扩大搜寻范围,在飞行中狩猎鸟类;2. 通过短滑翔攻击的轮廓飞行,在靠近地面的低水平空中攻击猎物;3.通过低空飞行和慢下降逐渐攻击猎物;4. 通过俯冲在陆地上行走和抓取猎物。
与其他的动物园优化算法相似,天鹰优化器也是基于群体智能算法,因此在建立数学模型时,需要先随机初始化种群的位置矩阵X:
X=[x1,1⋯x1,jx1,Dim−1x1,Dimx2,1⋯x2,j⋯x2,Dim⋯⋯xi,j⋯⋯⋮⋮⋮⋮⋮xN−1,1⋯xN−1,j⋯xN−1,DimxN,1⋯xN,jxN,Dim−1xN,Dim]X=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & x_{1, \operatorname{Dim}-1} & x_{1, D i m} \\ x_{2,1} & \cdots & x_{2, j} & \cdots & x_{2, D i m} \\ \cdots & \cdots & x_{i, j} & \cdots & \cdots \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{N-1,1} & \cdots & x_{N-1, j} & \cdots & x_{N-1, D i m} \\ x_{N, 1} & \cdots & x_{N, j} & x_{N, D i m-1} & x_{N, D i m} \end{array}\right] X=⎣⎢⎢⎢⎢⎢⎢⎢⎡x1,1x2,1⋯⋮xN−1,1xN,1⋯⋯⋯⋮⋯⋯x1,jx2,jxi,j⋮xN−1,jxN,jx1,Dim−1⋯⋯⋮⋯xN,Dim−1x1,Dimx2,Dim⋯⋮xN−1,DimxN,Dim⎦⎥⎥⎥⎥⎥⎥⎥⎤
Xij=rand×(UBj−LBj)+LBj,i=1,2,…..,Nj=1,2,…,DimX_{i j}=\operatorname{rand} \times\left(U B_{j}-L B_{j}\right)+L B_{j}, \quad i=1,2, \ldots . ., N j=1,2, \ldots, \operatorname{Dim} Xij=rand×(UBj−LBj)+LBj,i=1,2,…..,Nj=1,2,…,Dim
式中,N表示种群规模,Dim表示搜索空间的维度。
1.1 扩大探索阶段
在第一阶段中, Aquila鸟群通过垂直高翱翔扩大搜寻范围,在飞行中狩猎鸟类,该部分的数学公式为:
X1(t+1)=Xbest(t)×(1−tT)+(XM(t)−Xbest(t)∗rand )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) * \text { rand }\right) X1(t+1)=Xbest(t)×(1−Tt)+(XM(t)−Xbest(t)∗ rand )
XM(t)=1N∑i=1NXi(t),∀j=1,2,…,DimX_{M}(t)=\frac{1}{N} \sum_{i=1}^{N} X_{i}(t), \forall j=1,2, \ldots, \operatorname{Dim} XM(t)=N1i=1∑NXi(t),∀j=1,2,…,Dim
式中,X(t)和X(t+1)分别表示AO算法在第t次迭代和第t+1次迭代中的个体位置,Xbest(t)表示到第t次迭代为止算法获得的最佳个体为止,Xm(t)表示第t次迭代时的种群平均位置,T表示算法最大的迭代次数。
1.2 缩小探索阶段
在第二阶段中,当Aquila鸟群在高空中发现猎物时,鸟群会在目标猎物上方螺旋绕圈,准备着陆,然后进行攻击,数学公式为:
X2(t+1)=Xbest(t)×Levy(D)+XR(t)+(y−x)∗rand X_{2}(t+1)=X_{b e s t}(t) \times \operatorname{Lev} y(D)+X_{R}(t)+(y-x) * \text { rand } X2(t+1)=Xbest(t)×Levy(D)+XR(t)+(y−x)∗ rand
式中,Levy(D)Levy(D)Levy(D)表示莱维飞行分布策略,s是常数,取0.01,u和v是0到1之间的随机数,
Levy(D)=s×u×σ∣v∣1β\operatorname{Levy}(D)=s \times \frac{u \times \sigma}{|v|^{\frac{1}{\beta}}} Levy(D)=s×∣v∣β1u×σ
σ=(Γ(1+β)×sine(πβ2)Γ(1+β2)×β×2(β−12))\sigma=\left(\frac{\Gamma(1+\beta) \times \sin e\left(\frac{\pi \beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2^{\left(\frac{\beta-1}{2}\right)}}\right) σ=⎝⎛Γ(21+β)×β×2(2β−1)Γ(1+β)×sine(2πβ)⎠⎞
x,yx, yx,y表示螺旋飞行的形状,
y=r×cos(θ)x=r×sin(θ)r=r1+U×D1θ=−ω×D1+θ1θ1=3×π2\begin{gathered} y=r \times \cos (\theta) \\ x=r \times \sin (\theta) \\ r=r_{1}+U \times D_{1} \\ \theta=-\omega \times D_{1}+\theta_{1} \\ \theta 1=\frac{3 \times \pi}{2} \end{gathered} y=r×cos(θ)x=r×sin(θ)r=r1+U×D1θ=−ω×D1+θ1θ1=23×π
式中,r是搜索步长,取值范围在1到20之间,U取0.00565,ω取0.005
1.3 扩大开发阶段
在第三个阶段中,当Aquila鸟处于猎物区域,准备好着陆和攻击时,将采取垂直下降的方法进行初步攻击,数学公式为:
X3(t+1)=(Xbest (t)−XM(t))×α−rand +((UB−LB)×rand +LB)×δ\begin{gathered} 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 \\ \end{gathered} X3(t+1)=(Xbest (t)−XM(t))×α− rand +((UB−LB)× rand +LB)×δ
式中,α和δ\alpha {和} \deltaα和δ表示开发调整参数,取较小值(0.1)
1.4 缩小开发阶段
在这个阶段中,Aquila鸟接近猎物,以及向猎物发起带有一定随机性的攻击,行走和抓取猎物的数学公式为:
X4(t+1)=QF×Xbest (t)−(G1×X(t)×rand )−G2×Levy (D)+rand ×G1\begin{gathered} X_{4}(t+1)=Q F \times X_{\text {best }}(t)-\left(G_{1} \times X(t) \times \text { rand }\right)-G_{2} \times \text { Levy }(D)+\\ \text { rand } \times G_{1} \end{gathered} X4(t+1)=QF×Xbest (t)−(G1×X(t)× rand )−G2× Levy (D)+ rand ×G1
式中,QF(t)QF(t)QF(t)表示用于平衡搜索策略的质量函数值G1表示在追踪猎物过程中AO的各种运动,G2表示线性递减的飞行斜率值,范围是[0, 2],相关参数的计算公式如下,
QF(t)=t2×rand ()−1(1−T)2G1=2×rand()−1G2=2×(1−tT)\begin{gathered} Q F(t)=t^{\frac{2 \times \text { rand }()-1}{(1-T)^{2}}} \\ G_{1}=2 \times \operatorname{rand}()-1 \\ G_{2}=2 \times\left(1-\frac{t}{T}\right) \end{gathered} QF(t)=t(1−T)22× rand ()−1G1=2×rand()−1G2=2×(1−Tt)
2 算法流程
初始化算法参数,包括种群规模,最大迭代次数TTT,探索和开发参数α、δ\alpha、 \deltaα、δ
初始化种群位置X,初始的种群适应度,最佳个体
当t<Tt<Tt<T时,AO开始循环:
扩大探索阶段,计算种群的平均位置,更新种群位置X1(t+1)X_1(t+1)X1(t+1)
缩小探索阶段,更新种群位置X2(t+1)X_2(t+1)X2(t+1)
扩大开发阶段,更新种群位置X3(t+1)X_3(t+1)X3(t+1)
缩小开发阶段,更新种群位置X4(t+1)X_4(t+1)X4(t+1)
计算更新种群的适应度,得到当前最佳个体位置和适应度
比较当前最佳个体与到第ttt代找到的最佳个体适应度,保留较优的个体位置
判断满足算法终止条件,如果不满足,则重复执行步骤4-9
跳出循环,输出最优解和最佳适应度
3 MATLAB代码结果
优化目标(Sphere单峰函数):
f(x)=∑i=1Dxi2f(x)=\sum_{i=1}^{D} x_{i}^{2} f(x)=i=1∑Dxi2
优化结果:
参考资料:Abualigah,L.,Yousri,D.,Elaziz,MA,Ewees,AA,A。Al-qaness,MA,Gandomi, AH,Aquila Optimizer:一种新颖的元启发式优化算法,计算机与工业工程(2021年),doi: https : //doi.org/10.1016/j.cie.2021.107250
源代码可在Researchgate上找到: https : //www.researchgate.net/publication/350411564_Matlab_Code_of_Aquila_Optimizer_A_novel_meta-heuristic_optimization_algorithm
如需获取笔者编写的MATLAB代码,请订阅以下CSDN专栏《最优化方法》的文章:
2021年若干个智能优化算法简介-附MATLAB代码 文章集锦
CSDN《最优化方法》专栏文章地址:https://blog.csdn.net/qq_45955094/category_11224070.html
《最优化方法》专栏内包含天鹰优化器(AO),非洲秃鹫优化算法(AVOA)、蜜獾算法(HBA)、澳洲野狗优化算法(DOA)、材料生成算法(MGA)等2021年优化算法介绍和笔者编写的MATLAB代码,以及粒子群算法(PSO)、哈里斯鹰算法(HHO)、灰狼优化算法(GWO)等经典优化算法介绍与编程
2021年智能优化算法:天鹰优化器AO-附MATLAB代码相关推荐
- MATLAB算法实战应用案例精讲-【智能优化算法】海马优化算法(SHO) (附MATLAB代码实现)
目录 前言 算法原理 算法思想 (1)初始化 2)海马的移动行为
- 【智能优化算法-飞蛾火焰优化算法】基于动态惯性权值策略的飞蛾火焰优化算法求解单目标问题附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- MATLAB算法实战应用案例精讲-【优化算法】多元宇宙优化算法(MVO)多目标多元宇宙优化算法(MOMVO)(附matlab代码实现)
目录 前言 算法原理 算法思想 1. 初始化 2. 选择 3. 移动 算法步骤
- 【黑猩猩算法】基于加权反对技术和贪婪搜索进化黑猩猩优化算法求解多模态工程问题附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于基于粒子群优化算法的微电网调度(Matlab代码实现)
目录 ⛳️1 写在前面 ⛳️2 基于基于粒子群优化算法的微电网调度(Matlab代码实现)
- 智能优化算法-菲克定律算法Fick‘s Law Algorithm(附Matlab代码)
引言 菲克定律算法Fick's Law Algorithm是一种新的基于物理的元启发式算法,称为菲克定律优化(FLA),其中利用了菲克第一扩散规则.于2022年发表在SCI 一区Knowledge-B ...
- 【BP预测】基于头脑风暴算法优化BP神经网络实现数据预测附matlab代码
1 简介 针对基于传统BP神经网络的海水水质评价模型存在易陷入局部极小等问题,提出了一种新的利用头脑风暴优化算法(BSO)优化BP神经网络的海水水质评价模型(BSO-BP).该模型引入具有全局寻优特 ...
- 【ELM预测】基于鲸鱼算法优化极限学习机实现数据回归预测附matlab代码
1 简介 为判断中国是否能够实现2030年碳排放强度下降60%-65%的承诺,以及碳排放总量是否能够在2030年达到峰值,论文构建了一个基于鲸鱼优化算法改进的极限学习机模型,对2019-2040年的碳 ...
- 【智能优化求解】基于粒子群算法实现综合能源系统优化附matlab代码
1 简介 为了解决现有冷热电联供型综合能源系统大多只单一考虑系统机组投资成本或系统环境污染,影响系统整体优化运行的问题,以系统经济性和环保性为目标,对冷热电联供系统进行研究分析.构建含燃气轮机.燃气锅 ...
- 【智能优化算法】基于蚁狮算法求解多目标问题附Matlab代码
1 简介 蚁狮算法( ALO) 通过对随机解的探索,逐渐寻找近似最优解.与粒子群等优化算法不同的是,在 ALO 算法中有两类种群个体,即蚂蚁和蚁狮.ALO 算法的寻优过程模拟蚁狮捕食的六个基本步骤: ...
最新文章
- 星云测试-给你的Android应用做个深度体检
- java简介 ppt 精,TP1java简介.ppt
- 关于存储pose时.dat类型的文件里面的type问题(细节)
- iOS越狱开发----iOS越狱原理详解
- Raft和PBFT算法对比
- java 实现pdf转换成图片
- Mac 用py2app将写好的python代码打包成一个app
- 基于Spring boot的云客服系统实现
- 雪花算法中机器id保证全局唯一
- 行存储和列存储的区别
- 大数据BI可视化基础
- 化模糊为清晰的图片清晰术:动手尝试修复模糊老照片
- 数栈产品分享:干货解读数据中台产品「模块化」设计思路
- butter滤波器是iir吗_学习随笔之IIR滤波器与FIR滤波器
- 变分法求解两点间直线距离最短
- 2005高中数学联赛第15题补充解答
- 【银河麒麟国产服务器安装mysql、nginx和docker遇到的问题】(回忆篇)
- 任正非:管理的本质,就是激发人的欲望
- loadrunner11免费下载地址
- 配置 不使用rsa 密码_了解使用RSA的密码学
热门文章
- Http 401错误重现实验及解决办法
- html+css瞬间黑暗模式
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
- linux .la文件的作用,.la文件 和 libtool
- Joomla安装示范数据,永远安装不完的解决方法
- 计算机网络谢希仁第七版答案
- 【软考备战·希赛网每日一练】2023年4月13日
- windows系统coursera视频播放出错解决方法
- Vue-demo兄弟组件如何传值
- 电商项目day11(商品搜索功能实现排序结果分页)