热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FishMigrationOptimizationBasedontheFishyBiology

FishMigrationOptimizationBasedontheFishyBiology基于鱼类生物学的鱼类洄游优化 摘要:在本文中,我们提出了基于鱼类生物学中鱼类游泳验

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

  此外,还考虑了鱼类游泳的能量消耗,这与鱼类的活泼程度和觅食行为直接相关。能耗可以描述如下:

 

 

    其中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:

推荐阅读
  • 解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因
    本文介绍了解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因。其中包括修改包名、解决service name重复、处理jar包冲突和添加maven依赖等解决方案。同时推荐了一个人工智能学习网站,该网站内容通俗易懂,风趣幽默,值得一看。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
author-avatar
lovely尤研君2007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有