Matlab群体智能优化算法之大鲹鱼优化算法(GTO)
Giant Trevally Optimizer : A Novel Metaheuristic Algorithm for Global Optimization and Challenging
- 一、灵感来源
- 二、算法的初始化
- 三、GTO的数学模型
- Phase1:广泛搜索
- Phase2:选择区域
- Phase3:攻击
- 四、流程图
- 五、伪代码
- 六、实验分析和结果
Giant Trevally Optimizer (GTO): A Novel Metaheuristic Algorithm for Global Optimization and Challenging
参考文献:H. T. Sadeeq and A. M. Abdulazeez, “Giant Trevally Optimizer (GTO): A Novel Metaheuristic Algorithm for Global Optimization and Challenging Engineering Problems,” in IEEE Access, vol. 10, pp. 121615-121640, 2022, doi: 10.1109/ACCESS.2022.3223388.
注:仅记录学习,如有侵权,联系删除。
一、灵感来源
大鲹鱼是一种大型的海洋鱼类。属于鲹科鱼类。它也被称为巨型王鱼。他们在印度洋和太平洋上很丰富,例如在澳大利亚和新西兰周围地区。他们也在东非和夏威夷群岛周围被发现。
大鲹鱼通常是银色的,有一些黑斑。它可以通过其尖锐的头部、强壮的尾部鳞片和许多其他解剖细节来识别。他们的身高可以达到170cm,体重可达到80公斤。他们的日常食物包括鱼类、头足类、甲壳类和海鸟。
文献研究了随着搜索空间的扩大,巨鲹在其生态系统内和栖息地之间的移动。一些数据表明,成年巨鲹每天和季节性的移动在他们的漫游范围内可达9公里。幼小的能移动到距离它们的家园环礁70公里。
在它的大多数栖息地,巨鲹是一个顶级的捕食者,并且使用只能方式进行捕猎。众所周知,巨鲹会单独和成群捕猎,根据研究,成群捕猎的效率更高。群体中捕捉猎物最有效的成员是领导者或者第一捕食者。
在旱季,超过50万只燕鸥挤在印度洋的一个偏远环礁上。据报道,大概会有50只巨鲹会来捕食。在明确的捕食区域后,巨鲹开始跟踪其猎物,然后跳出水面,攻击猎物。
这些新奇的捕猎策略,如觅食移动的牌子,在食物数量上选择合适的区域,以及跳出水面攻击和捕捉猎物,是设计GTO的主要灵感。
二、算法的初始化
X代表GTO种群矩阵,Xi=(xi,1,xi,2,...,xi,m)X_{i}=(x_{i,1},x_{i,2},...,x_{i,m})Xi=(xi,1,xi,2,...,xi,m)是GTO的第i个成员(候选解)。
F代表适应度函数值。
X=[X1⋮Xi⋮XN]N×m=[x1,1⋯x1,j⋯x1,m⋮⋱⋮⋮xi,1⋯xi,j⋯xi,m⋮⋮⋱⋮xN,1⋯xN,j⋯xN,m]N×mX=\left[\begin{array}{c} X_{1} \\ \vdots \\ X_{i} \\ \vdots \\ X_{N} \end{array}\right]_{N \times m}=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & \cdots & x_{1, m} \\ \vdots & \ddots & \vdots & & \vdots \\ x_{i, 1} & \cdots & x_{i, j} & \cdots & x_{i, m} \\ \vdots & & \vdots & \ddots & \vdots \\ x_{N, 1} & \cdots & x_{N, j} & \cdots & x_{N, m} \end{array}\right]_{N \times m} X=⎣⎢⎢⎢⎢⎢⎢⎡X1⋮Xi⋮XN⎦⎥⎥⎥⎥⎥⎥⎤N×m=⎣⎢⎢⎢⎢⎢⎢⎡x1,1⋮xi,1⋮xN,1⋯⋱⋯⋯x1,j⋮xi,j⋮xN,j⋯⋯⋱⋯x1,m⋮xi,m⋮xN,m⎦⎥⎥⎥⎥⎥⎥⎤N×m
xi,j=lbj+rand ⋅(ubj−lbj),i=1,2,…,N,j=1,2,…,mx_{i, j}=lb_{j}+\text { rand } \cdot\left(ub_{j}-lb_{j}\right), i=1,2, \ldots, N, j=1,2, \ldots, m xi,j=lbj+ rand ⋅(ubj−lbj),i=1,2,…,N,j=1,2,…,m
F=[F1⋮Fi⋮FN]N×1=[F(X1)⋮F(Xi)⋮F(XN)]N×1F=\left[\begin{array}{c} F_{1} \\ \vdots \\ F_{i} \\ \vdots \\ F_{N} \end{array}\right]_{N \times 1}=\left[\begin{array}{c} F\left(X_{1}\right) \\ \vdots \\ F\left(X_{i}\right) \\ \vdots \\ F\left(X_{N}\right) \end{array}\right]_{N \times 1} F=⎣⎢⎢⎢⎢⎢⎢⎡F1⋮Fi⋮FN⎦⎥⎥⎥⎥⎥⎥⎤N×1=⎣⎢⎢⎢⎢⎢⎢⎡F(X1)⋮F(Xi)⋮F(XN)⎦⎥⎥⎥⎥⎥⎥⎤N×1
式中:xi,jx_{i, j}xi,j代表第i个成员的第j个变量的值;N是种群大小;m是维度;rand代表[0,1]之间的随机数;lbjlb_{ j}lbj代表下限;ubjub_{ j}ubj代表上限。
三、GTO的数学模型
所提出的GTO算法模仿了巨鲹猎杀海鸟时的行为。因此,所提出的GTO算法大致分为以下三个步骤:利用莱维飞行进行广泛搜索,选择区域步骤以确定狩猎区域,以及通过跳出水面追逐和攻击猎物。因此,GTO的探索阶段体现在第一个步骤中。第二三步骤代表GTO的开发阶段。巨鲹在大自然界捕食时的情况如下所示。
Phase1:广泛搜索
如果我们考虑到巨鲹的作用,并且如前面所述,巨鲹可以长途跋涉进行日常的饮食。因此,在这一步中,用下面的式子来模拟巨鲹的觅食运动模式。
X(t+1)=Best P×R+((Maximm −Minimum )×R+Minimum )×Levy (Dim )\begin{aligned} X(t+1)= & \text { Best }_{P} \times R+((\text { Maximm }-\text { Minimum }) \\ & \times R+\text { Minimum }) \times \text { Levy }(\text { Dim }) \end{aligned} X(t+1)= Best P×R+(( Maximm − Minimum )×R+ Minimum )× Levy ( Dim )
其中Best P\text{ Best }_{P} Best P 是上一次搜索的最佳位置,R是一个随机数,取值在0到1之间。Levy (Dim )\text { Levy }(\text { Dim }) Levy ( Dim )是Levy飞行,他是一类特殊的非高斯随机过程,其步长由所谓的levy分布决定。该算法进行全局搜索的能力得益于其偶尔的大步幅。此外,使用levy飞行的主要优点是避免了局部优化和提高了收敛率。
在这方面,值得一提的是,许多研究表明,包括海洋捕食者在内的多种动物都表现出levy飞行的行为。levy飞行用下面的式子计算。
Levy(Dim )=step×u×σ11/β\operatorname{Levy}(\text { Dim })=\operatorname{step} \times \frac{u \times \sigma}{1^{1} / \beta} Levy( Dim )=step×11/βu×σ
step是步长,固定为0.01;β\betaβ是levy飞行分布函数的指数,其值取值范围为0到2,本文设定为1.5;u和v是在(0,1)范围内正态分布的随机数。σ\sigmaσ通过下面的式子进行计算。
σ=(Γ(1+β)×sine(πβ2)Γ(1+β2)×β×2(β−12))\operatorname\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πβ)⎠⎞
Phase2:选择区域
在选择区域的步骤中,巨鲹在选定的搜索空间内识别和选择食物数量方面的最佳区域,在那里他们可以猎取事物。下面的式子模拟了这种行为。
X(t+1)=Best P×A×R+Meaninfo−Xi(t)×RX(t+1)=\text { Best }_{P} \times A \times R+\text{Meaninfo}-Xi(t) \times R X(t+1)= Best P×A×R+Meaninfo−Xi(t)×R
A是一个位置变化控制参数,范围为0.3至0.4。Xi(t)Xi(t)Xi(t)是当前巨鲹在当前迭代的位置。同时Meaninfo指的是平均值,表示这些巨鲹已经用完了以前各点的所有可用信息。计算公式如下。
MeanInfo=1N∑i=1NXi(t)\text {MeanInfo}=\frac{1}{N} \sum_{i=1}^{N} X i(t) MeanInfo=N1i=1∑NXi(t)
选择区域的有效性,文献在sphere函数上进行了测试。10个个体,5次迭代。表明,使用最佳点和平均值作为选择区域步骤的基础,提高了所有解决方案的质量。也有图表明,所有的搜索都位于最佳点附近。(我写这篇的时候还未进行验证,可自行参照原文进行验证)
Phase3:攻击
在上一步骤中,在指定了最佳狩猎区域后。在这个步骤中,代表了GTO的开发阶段,鲹鱼开始追逐猎物。在这里,也是最后,当鲹鱼足够接近鸟类时,它通过杂技般地跳出水面并抓住鸟类来攻击。
为了模拟巨鲹在追逐和攻击猎物时的行为,在GTO中假定巨鲹会收到视觉扭曲的影响,这主要是由光的折射引起的。光的折射是指光波在穿越两种介质(如水、玻璃和空气)的界面时,其轨迹发生偏移。如下图所示。
在GTO中,如下图所示,鸟是物体,而大鲹是观察者,图中的虚线表示视觉失真。由于光的折射,鸟总是被看成比它实际高度高。如果我们知道了入射角,就有可能预测折射角是多少,同样,如果知道了折射角,就有可能预判入射角。
η1sinθ1=η2sinθ2\eta_{1} \sin \theta_{1}=\eta_{2} \sin \theta_{2} η1sinθ1=η2sinθ2
其中η1=1.00029\eta_{1}=1.00029η1=1.00029,η2\eta_{2}η2=1.33分别表示空气和水的绝对折射率。而θ1\theta_{1}θ1和θ2\theta_{2}θ2分别表示入射角和折射角。θ2\theta_{2}θ2是区间[0,360]中的一个随机数。
θ1\theta_{1}θ1通过下面的式子来得到。
sinθ1=η2η1sinθ2\sin \theta_{1}=\frac{\eta_{2}}{\eta_{1}} \sin \theta_{2} sinθ1=η1η2sinθ2
V是视觉失真,sin是变量的正弦,单位是度,D是猎物和攻击者之间的距离。式子如下面两个所示。
V=sin(θ1∘)×D\mathcal{V}=\sin \left(\theta_{1}^{\circ}\right) \times \mathcal{D} V=sin(θ1∘)×D
D=∣(Best P−Xi(t))∣\mathcal{D}=\mid\left(\text { Best }_{P}-X i(t)\right) \mid D=∣( Best P−Xi(t))∣
然后用下面的式子对打鲹追赶和跳出水面时的行为进行数学模拟。L表示模拟追赶鸟的发射速度。其中×F−obj(Xi(t))\times F_{-} o b j(X i(t))×F−obj(Xi(t))指的是X在当前迭代的的适应度值。
X(t+1)=L+V+HX(t+1)=\mathcal{L}+\mathcal{V}+\mathcal{H} X(t+1)=L+V+H
L=Xi(t)×sin(θ2∘)×F−obj(Xi(t))\mathcal{L}=X i(t) \times \sin \left(\theta_{2}^{\circ}\right) \times F_{-} o b j(X i(t)) L=Xi(t)×sin(θ2∘)×F−obj(Xi(t))
最后这一项H指定了跳跃斜率函数,是算法能够自适应地进行从探索阶段到开发阶段的适当过度,用下面的式子进行计算。其中t和T分别指当前迭代和最大迭代次数,R是一个随机数,这里指开发步骤中大鲹的不同运动感。值得一提的是,在迭代过程中,H有一个从2到0的递减趋势,而且该算法在开发步骤中尝试开发解的邻域(开发解的领域这个我不大理解,先备注上)。
H=R×(2−t×2T)\mathcal{H}=R \times\left(2-t \times \frac{2}{T}\right) H=R×(2−t×T2)
四、流程图
五、伪代码
六、实验分析和结果
为了适当验证GTO算法的性能,原作者进行了两组实验,对GTO提供的实验结果进行评估,并于其他算法得到的结果进行比较
案例1:第一个实验使用具有各种类型特征的四十个基本测试函数从多个角度评估算法的性能。
案例2:使用五个具有挑战性的工程设计有话问题对GTO算法的有效性进行了评估。
注:原文已经进行大量实验结果分析,感兴趣的请阅读原文,学习学习一篇好的论文是怎么写的。源代码也已公开,我就不点运行和截图了,大家自行下载。
特别提示:不要买什么基本的算法,这些算法都是全网公开的,优秀的东西从来都不保密,不怕任何人抄袭的,各位不要再交智商税了。
收获:
- GTO分三个阶段,其实都是在位置更新上,第一个阶段levy这个没有什么新意
- 第二个阶段就用到了一个平均值,可能是我看的少,觉得由些许创新型
- 第三个阶段,算是这篇文章的亮点,引入了折射率这个想法,加入了视觉误差和自动调整两个。
- 做了大量的对比试验,很完整的分析,优秀的论文不是通篇说自己哪里哪里都好,看清晰的完整的分析。
- 没了。。。
Matlab群体智能优化算法之大鲹鱼优化算法(GTO)相关推荐
- java 性能 优化_Java十大简单性能优化
java 性能 优化 关于" web scale "这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统"规模化". 但是什么是扩 ...
- Miller_Rabbin算法判断大素数,Pollard_rho算法进行质因素分解
Miller-rabin算法是一个用来快速判断一个正整数是否为素数的算法.它利用了费马小定理,即:如果p是质数,且a,p互质,那么a^(p-1) mod p恒等于1.也就是对于所有小于p的正整数a来说 ...
- [数论] Miller_Rabbin算法判断大素数,Pollard_rho算法进行质因素分解
讲解转载于:http://www.cnblogs.com/rainydays/archive/2011/09/01/2162049.html http://blog.sina.com.cn/s/b ...
- 时间段优化oracle,九大Oracle性能优化基本方法详解
51CTO数据库频道向您推荐<Oracle数据库调试与性能优化>专题,以便于您更好的理解本文. Oracle性能优化基本方法包括一下几个步骤,包括: 1)设立合理的Oracle性能优化目标 ...
- Android 性能优化(三)布局优化 秒变大神
Android 性能优化 (一)APK高效瘦身 http://blog.csdn.net/whb20081815/article/details/70140063 Android 性能优化 (二)数据 ...
- 2021-08-18 【O2 优化是什么东西?氧气优化!?】
大家是否在洛谷的提交界面上康到过这么一个东西-- 那么,这个氧气O2优化是什么呢? 其实这个O2呢,并不是你们想的O2-- 而且,不仅如此还有氧原子O,臭氧O3,还有不知道名字的O0-- 重点来了奥 ...
- MATLAB群智能开源第二十三期-魔鬼鱼优化算法
1 写在前面 该系列为基础群智能优化算法,欢迎私信一起交流问题,更多的改进算法可查看往期的推文.有问题或者需要其他建议的话,非常欢迎后台私信交流,共同进步,如若出现违反学术道德的情况与本博客以及作者无 ...
- 生物效应大数据评估聚类算法的并行优化
生物效应大数据评估聚类算法的并行优化 彭绍亮1,2,杨顺云2,孙哲1,程敏霞1,崔英博2,王晓伟2,李非3,伯晓晨3,廖湘科2 1. 湖南大学信息科学与工程学院&国家超级计算长沙中心,湖南 长 ...
- 【布局优化】基于改进粒子群算法实现充电桩选址优化问题附matlab代码
1 简介 当前世界环境污染和能源危机问题凸显,电动汽车以零排放和低耗能的优势得到各国的大力关注和支持.以电动汽车为代表新能源汽车产业,成为国家七大战略性新兴产业之一.电动汽车具有良好的发展前景,市场规 ...
最新文章
- Node搭建多人聊天室
- 查看有多少个linux用户登录,Linux用户查看系统有多少用户在登录
- mailcore(一)
- Orac and LCM #641(div2) c题--求质因数次小指数
- avs 中国音视频标准DRA 中音频标准及应用
- 数据链路层的一些总结
- css列表大全,CSS中li列表样式汇总大全,全实例展示
- git可视化工具—GitKraken
- 编程小工具总结(一) 取色器
- Android 下载Zip文件,并解压到本地
- Ubuntu8.04上用飞信 libfetion
- 【Android】关于ARouter转场动画的问题
- speedoffice(PPT)如何在幻灯片里面插入表格呢
- 台式计算机用什么电源线,台式电脑电源线接法图解(3分钟学会接电脑电源线)...
- Windows系统开机自动运行程序和自动启动服务
- 金职院计算机网络技术中外合作有什么不一样,金华职业技术学院学费多少
- FPGA——状态机专题练习
- 一些程序设计模式的整理
- 《计算机网络》课程小程序的设计与实现 报告+项目源码+部署教程
- 中国32个地区的股权投资税收优惠政策一览