Matlab群体智能优化算法之大鲹鱼优化算法(GTO)
[*]一、灵感来源
[*]二、算法的初始化
[*]三、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种群矩阵,X_{i}=(x_{i,1},x_{i,2},...,x_{i,m})是GTO的第i个成员(候选解)。 F代表适应度函数值。
X=\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_{i, j}=lb_{j}+\text { rand } \cdot\left(ub_{j}-lb_{j}\right), i=1,2, \ldots, N, j=1,2, \ldots, m \\F=\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} \\
式中:x_{i, j}代表第i个成员的第j个变量的值;N是种群大小;m是维度;rand代表之间的随机数;lb_{ j}代表下限;ub_{ j}代表上限。
三、GTO的数学模型
所提出的GTO算法仿照了巨鲹猎杀海鸟时的行为。因此,所提出的GTO算法大致分为以下三个法式:操作莱维飞翔进行广泛搜索,选择区域法式以确定打猎区域,以及通过跳出水面追逐和攻击猎物。因此,GTO的探索阶段表此刻第一个法式中。第二三法式代表GTO的开发阶段。巨鲹在大自然界捕食时的情况如下所示。
Phase1:广泛搜索
如果我们考虑到巨鲹的感化,而且如前面所述,巨鲹可以长途跋涉进行日常的饮食。因此,在这一步中,用下面的式子来模拟巨鲹的觅食运动模式。
\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} \\
此中\text{ Best }_{P} 是上一次搜索的最佳位置,R是一个随机数,取值在0到1之间。\text { Levy }(\text { Dim })是Levy飞翔,他是一类特殊的非高斯随机过程,其步长由所谓的levy分布决定。该算法进行全局搜索的能力得益于其偶尔的大步幅。此外,使用levy飞翔的主要长处是避免了局部优化和提高了收敛率。 在这方面,值得一提的是,许多研究表白,包罗海洋捕食者在内的多种动物都表示出levy飞翔的行为。levy飞翔用下面的式子计算。
\operatorname{Levy}(\text { Dim })=\operatorname{step} \times \frac{u \times \sigma}{1^{1} / \beta} \\
step是步长,固定为0.01;\beta是levy飞翔分布函数的指数,其值取值范围为0到2,本文设定为1.5;u和v是在(0,1)范围内正态分布的随机数。\sigma通过下面的式子进行计算。
\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) \\
Phase2:选择区域
在选择区域的法式中,巨鲹在选定的搜索空间内识别和选择食物数量方面的最佳区域,在那里他们可以猎取事物。下面的式子模拟了这种行为。
X(t+1)=\text { Best }_{P} \times A \times R+\text{Meaninfo}-Xi(t) \times R \\
A是一个位置变化控制参数,范围为0.3至0.4。Xi(t)是当前巨鲹在当前迭代的位置。同时Meaninfo指的是平均值,暗示这些巨鲹已经用完了以前各点的所有可用信息。计算公式如下。
\text {MeanInfo}=\frac{1}{N} \sum_{i=1}^{N} X i(t) \\
选择区域的有效性,文献在sphere函数长进行了测试。10个个体,5次迭代。表白,使用最佳点和平均值作为选择区域法式的基础,提高了所有解决方案的质量。也有图表白,所有的搜索都位于最佳点附近。(我写这篇的时候还未进行验证,可自行参照原文进行验证)
Phase3:攻击
在上一法式中,在指定了最佳打猎区域后。在这个法式中,代表了GTO的开发阶段,鲹鱼开始追逐猎物。在这里,也是最后,当鲹鱼足够接近鸟类时,它通过杂技般地跳出水面并抓住鸟类来攻击。 为了模拟巨鲹在追逐和攻击猎物时的行为,在GTO中假定巨鲹会收到视觉扭曲的影响,这主要是由光的折射引起的。光的折射是指光波在穿越两种介质(如水、玻璃和空气)的界面时,其轨迹发生偏移。如下图所示。
在GTO中,如下图所示,鸟是物体,而大鲹是不雅察看者,图中的虚线暗示视觉掉真。由于光的折射,鸟总是被当作比它实际高度高。如果我们知道了入射角,就有可能预测折射角是多少,同样,如果知道了折射角,就有可能预判入射角。
\eta_{1} \sin \theta_{1}=\eta_{2} \sin \theta_{2} \\
此中\eta_{1}=1.00029,\eta_{2}=1.33分袂暗示空气和水的绝对折射率。而\theta_{1}和\theta_{2}分袂暗示入射角和折射角。\theta_{2}是区间中的一个随机数。
\theta_{1}通过下面的式子来得到。
\sin \theta_{1}=\frac{\eta_{2}}{\eta_{1}} \sin \theta_{2} \\
V是视觉掉真,sin是变量的正弦,单元是度,D是猎物和攻击者之间的距离。式子如下面两个所示。
\mathcal{V}=\sin \left(\theta_{1}^{\circ}\right) \times \mathcal{D} \\\mathcal{D}=\mid\left(\text { Best }_{P}-X i(t)\right) \mid \\
然后用下面的式子对打鲹追赶和跳出水面时的行为进行数学模拟。L暗示模拟追赶鸟的发射速度。此中\times F_{-} o b j(X i(t))指的是X在当前迭代的的适应度值。
X(t+1)=\mathcal{L}+\mathcal{V}+\mathcal{H} \\\mathcal{L}=X i(t) \times \sin \left(\theta_{2}^{\circ}\right) \times F_{-} o b j(X i(t)) \\
最后这一项H指定了跳跃斜率函数,是算法能够自适应地进行从探索阶段到开发阶段的适当过度,用下面的式子进行计算。此中t和T分袂指当前迭代和最大迭代次数,R是一个随机数,这里指开发法式中大鲹的分歧运动感。值得一提的是,在迭代过程中,H有一个从2到0的递减趋势,而且该算法在开发法式中测验考试开发解的邻域(开发解的范围这个我不大理解,先备注上)。
\mathcal{H}=R \times\left(2-t \times \frac{2}{T}\right) \\
四、流程图
五、伪代码
六、尝试分析和成果
为了适当验证GTO算法的性能,原作者进行了两组尝试,对GTO提供的尝试成果进行评估,并于其他算法得到的成果进行斗劲 案例1:第一个尝试使用具有各种类型特征的四十个基本测试函数从多个角度评估算法的性能。 案例2:使用五个具有挑战性的工程设计有话问题对GTO算法的有效性进行了评估。
注:原文已经进行大量尝试成果分析,感兴趣的请阅读原文,学习学习一篇好的论文是怎么写的。源代码也已公开,我就不点运行和截图了,大师自行下载。
出格提示:不要买什么基本的算法,这些算法都是全网公开的,优秀的东西从来都不保密,不怕任何人抄袭的,各位不要再交智商税了。
收获:
[*]GTO分三个阶段,其实都是在位置更新上,第一个阶段levy这个没有什么新意
[*]第二个阶段就用到了一个平均值,可能是我看的少,感觉由些许创新型
[*]第三个阶段,算是这篇文章的亮点,引入了折射率这个想法,插手了视觉误差和自动调整两个。
[*]做了大量的对比试验,很完整的分析,优秀的论文不是通篇说本身哪里哪里都好,看清晰的完整的分析。
[*]没了。。。
页:
[1]