Fish Migration Optimization Based on the Fishy Biology
2022/1/18 23:41:13
本文主要是介绍Fish Migration Optimization Based on the Fishy Biology,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Fish Migration Optimization Based on the Fishy Biology
基于鱼类生物学的鱼类洄游优化
摘要:
在本文中,我们提出了基于鱼类生物学中鱼类游泳验证方程的鱼类洄游优化 (FMO) 方法,用于求解数值优化问题。受鱼类洄游的启发,将洄游和游泳模型整合到优化过程中。使用四个基准函数测试FMO的收敛性、准确性和速度,并将实验结果与PSO进行比较。实验结果表明,所提出的FMO具有更高的精度和收敛速度。
I. INTRODUCTION
人们可以向大自然母亲学习很多东西。从进化论到生物生存的不同行为,提出了许多解决优化问题的算法,并在许多应用中得到了很好的应用。例如,遗传算法 (GA) 已成功用于互联网服务 [7] 和阻抗测量 [8];粒子群优化 (PSO) 技术已成功用于设计天线 [15] 并在神经网络系统 [9] 中构建参数;蚁群优化 (ACO) 技术已成功用于解决旅行商问题 (TSP) [6] 和网络路由问题 [13];人工蜂群(ABC)技术已成功用于解决批量流水车间调度问题[12];猫群优化 (CSO) 技术已成功用于发现信息隐藏的适当位置 [14] 并调整 SVM [10] 的参数。受鱼类洄游行为和运动模型的启发,本文基于鱼类洄游的生物学特性和鱼类生物学中的游泳方程提出了鱼类洄游优化(FMO)。
论文组织如下:第二节介绍了群体智能的相关背景和鱼类的迁徙特征。在第三节课中,我们将详细介绍所提出的鱼类迁徙优化方案。实验结果与第四节中的PSO算法进行了比较。最后,我们在第五节中给出了结论。
II. BACKGROUND OF FISH MIGRATION OPTIMIZATION
在大自然母亲身上,每一个物种都有自己的方式来对抗危险的环境和天敌来生存。有些物种的迁徙是基于目的的,这种行为被称为迁徙。鱼类生物学学者将鱼类迁徙的原因归纳为三个目的:摄食迁徙、繁殖迁徙和越冬迁徙[1,3-5,11]。我们选择的鱼类迁徙优化的物种是一种迁移性鱼类--灰鲸(Grayling)。图1显示了灰鲸的生命周期,其中0+到4+表示五年内灰鲸的不同年龄组,F2到F4表示迁回出生地的个体的繁殖力,S1到S4表示存活的个体的数量。
假设灰鲸的生命周期为四年,其生命周期可分为五个阶段。图例描述如下[5]:
- 阶段0+:这一阶段代表0-1岁的新生和幼鱼。处于这个阶段的灰鲸已经准备好离开它的出生地,并将继续寻找生存的食物来源。
- 阶段1+:幼年灰鲸,年龄1-2岁。这一阶段的灰鲸不断生长,不断寻找丰富的食物来源。
- 阶段2+:灰鲸的年龄在2到3岁之间,被称为亚成体。在整个群体中,只有一小部分个体迁徙回出生地繁殖后代。其余的灰鲸继续寻找食物来源,并不断生长。新生的后代从0+阶段开始他们的生命周期,并跟随着生命周期成长。
- 阶段3+:灰鲸生长到这个阶段称为成体,年龄为3-4岁。在这个阶段,大多数灰鲸迁徙回它们的出生地并繁衍后代。其余的灰鲸继续呆在它们所在的地方,寻找食物来源。
- 阶段4+:这一阶段代表4至5岁的成年灰鲸。这一阶段的所有灰鲸都会迁徙回它们的出生地,以便繁衍后代。
- 符号S1表示从阶段0+到阶段1+的个体的存活率;符号S2表示从阶段1+到阶段2+的个体的存活率,依此类推。
- F2、F3和F4代表个体迁徙回出生地并繁殖后代的繁殖力。
成活率和繁殖率的参数用0到1之间的值表示。另外,根据文献[2]中的观察,由于成活率随年龄的增长而降低,将成活率设置为s1>s2>s3>s4。与存活率相反,我们设置 F2 < F3 < F4,因为生育率随着年龄的增加而增加。 F4 的值设置为 1.0,因为我们假设所有小河鱼在成长到 4+ 阶段时必须返回其出生地以产生新的后代。 F1=0,因为1+阶段的小河鱼不成熟,没有繁殖后代的能力,所以没有放在图1中。
此外,还考虑了鱼类游泳的能量消耗,这与鱼类的活泼程度和觅食行为直接相关。能耗可以描述如下:
其中E表示能量消耗;
t表示消耗能量所花费的时间;
Us表示灰鲸相对于河水的游泳速度;
a、b和指数x都是常数,应该仔细选择以使优化成为可能:
常数a被定义为标准代谢率(SMR);
常数b被定义为标度常数,表示能量消耗随着游泳速度的增加而增加的速率;
常数x被称为描述游泳速度和能量消耗之间关系的速度指数[2]。
根据文献[2]的结果,将常数选择为 a=2.25、b=3.63、x=2.23。在回顾了上述背景知识的基础上,在下一节中实现了具有灰鲸迁移行为的优化算法。
III. ALGORITHM DEVELOP OF THE FISH MIGRATION OPTIMIZATION(鱼类洄游优化算法开发)
在这里,我们定义了人工代理的数据结构,即该算法中的灰鲸,在方程式 2:
其中X表示灰鲸,P表示灰鲸在解空间中的当前坐标,Mp表示该灰鲸找到的最适合的坐标,U表示灰鲸在每个维度上的当前速度,Eng表示累计的消耗能量,g表示灰鲸的生长状态。
为了充分利用鱼类的迁徙行为,设计了游动过程和迁徙过程两个过程来实现优化。具体流程如下:
A. Swim Process of the Fish Migration Optimization(鱼类洄游优化的游泳过程)
游泳过程模拟灰鲸在水中游泳和生长以寻找食物来源。寻找食物来源是这种生物的本能行为。我们假设灰鲸在游泳前脑海中有几个候选点,因此我们定义了一个变量Swim Candidate(SC),这个变量在实验中设定为SC=3,用来表示它在游泳前会观察到多少个点。我们在方程1上做了一点小小的改变来计算游程,以便在FMO中进行优化。速度、距离和时间之间的关系通常可以计算如下:
其中d表示在解空间中从一个点到另一个点行进的距离。因此,我们可以在等式1中替换变量t,从等式3变为等式4:
因此,游泳距离和能量消耗之间的关系可以在方程式5中找到。
我们假设每个灰鲸应该在不同维度上具有不同的能量消耗,以构建游泳过程的偏移距离。维度上的能耗定义如下:
其中,Er定义维度上消耗的能量,rand是 [-1, 1] 范围内的随机数,E是定义维度上的最大能量消耗的常数。偏移距离如下所示:
其中,doffset表示在标注上移动的距离。由此,可以通过方程8将偏移距离与灰度的当前坐标相加等式来计算候选点:
其中 pold 表示游动前灰鲸在解空间中的坐标, pnew 是游动后灰鲸在解空间中的坐标。
在计算出候选点的SC坐标后,利用适应度函数对候选点进行评价,得到它们的适应值。在新的坐标P比MP具有更好的适应值的情况下,为灰鲸选择具有最佳适应值的候选点,由P移动到MP并更新MP。按公式9累加所有维度的消耗能量,然后通过公式10更新灰鲸的生长状态:
其中D是解空间的维度,Emax是预定义的最大能量。最后,按公式11更新当前速度下一次迭代使用:
B. Migration Process of the Fish Migration Optimization (鱼类洄游优化的洄游过程)
迁徙过程表明,灰鲸已经成群成熟,并准备迁徙回出生地繁殖新的后代。迁移过程仅影响在2+和3+阶段中选择的灰鲸,以及4+阶段中的所有灰鲸。相应地,将F2、F3和F4的受精率设置为0.05、0.1和1.0。其结果是,阶段2+的个体占5%,阶段3+的个体占10%,阶段4+的所有个体都被迁移过程处理。迁移过程的步骤描述如下:
步骤1:用公式12、13求出灰鲸所有维度的最大值和最小值:
其中dmax是灰鲸所有维度的最大值,而dmin是灰鲸所有维度的最小值。
步骤2.用公式14更新灰度图的坐标:
步骤3.使用偏移后产生的新坐标评估灰鲸的适合性,并用公式15更新灰鲸的速度:
F(P)是灰鲸的适应度值,F(Pbest)是迄今为止在所有个体中找到的近乎最佳解决方案的适应度值,Us是初始速度。
C. The Fish Migration Optimization(鱼类洄游优化)
基于图1中灰鲸的生命周期,我们提出了鱼类迁徙优化(FMO)。FMO图如图2所示:
IV. EXPERIMENTAL RESULTS
为了评估FMO方法的精度和找到接近围困解的速度,用四个常见的基准函数进行了一系列实验,如下所示:
所有基准测试函数都通过2000次迭代和重复25次运行进行评估。解空间的维数被设置为30。两种方法的种群规模均设为20,最终结果以25次运行的平均适应值表示,并与粒子群算法(PSO)进行了比较。所有实验的目标都是最小化基准函数的结果。PSO和FMO的参数设置如表1所示:
图 3 显示了基准函数的实验结果,其中横轴是迭代次数,纵轴是适应度值。由于所提出的 FMO 方法的收敛速度非常快,我们仅在图 3 中展示了前 20 次迭代。 PSO 方法和 FMO 方法的实验结果对比如表 2 所示:
V. CONCLUSION
本文提出了基于鱼类迁徙观测的鱼类迁徙优化方法(FMO)来求解优化问题。本文用四个基准函数对所提出的FMO方法的精度和收敛速度进行了评估。实验结果表明,与粒子群算法相比,本文提出的FMO方法具有更高的精度和更少的计算时间。
Others:
这篇关于Fish Migration Optimization Based on the Fishy Biology的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南