2023新型智能优化算法-小龙虾优化算法

1 灵感来源

       COA的灵感来源于小龙虾的觅食、避暑和竞争行为。觅食阶段和竞争阶段是COA的开发阶段,避暑阶段是COC的探索阶段。

76f33c949734475fa2cfa8c54b79c9d4.png

2 数学模型

2.1 初始化种群

采用随机初始化种群,相信大家都能看懂,直接原文献截图。

a536855e423c4d72acad6e90842a8c40.png 2.2 确定小龙虾的温度和摄入量

        温度的变化会影响小龙虾的行为,使其进入不同的阶段。温度定义为等式(3)。当温度高于30°C时,小龙虾会选择凉爽的地方避暑。在适当的温度下,小龙虾会进行觅食行为。小龙虾的进食量受温度的影响。小龙虾的饲养范围在15°C-30°C之间,25°C是最好的。因此,小龙虾的进食量可以接近正态分布,从而使进食量受到温度的影响。因为小龙虾在20到30摄氏度之间有很强的觅食行为。因此,COA定义了20到35℃的温度范围。小龙虾摄入量的数学模型如方程所示(4) 。食物摄入量示意图如图4所示。

59e2315d99354e519099c26b31482f2e.png

         其中,temp表示小龙虾所在环境的温度。

027f74c0bb8247faabb9b1310acc2b2d.png

195fb9dab5884d20a1080b8f8c5f243a.png

图4

 其中,µ是指最适合小龙虾的温度,σ和C1用于控制不同温度下小龙虾的摄入量。

2.3 避暑阶段(勘探)

        当温度>30时,表示温度过高。这个时候,小龙虾会选择加入洞穴避暑。洞穴eq?X_%7Bshade%7D的定义如下:

9015db4e916a4d5782e20ff4aa2b75fb.png

         其中eq?X_%7BG%7D表示到目前为止通过迭代次数获得的最佳位置,eq?X_%7BL%7D表示当前种群的最佳位置。

       小龙虾争夺洞穴是随机事件。当rand<0.5时,意味着没有其他小龙虾竞争洞穴,小龙虾将直接进入洞穴避暑。如图5A所示。此时,小龙虾将使用公式(6)进入洞穴避暑:

b3055387e16c4ca68e98002f01883b55.png

       其中t表示当前迭代次数,t+1表示下一代迭代次数,eq?C_%7B2%7D是递减曲线,如等式(7)所示。 

b33f3c01c4124edc821460f78130d218.png       其中T表示迭代的最大次数。

       在避暑阶段,小龙虾的目标是接近洞穴,这代表了最佳解决方案。此时,小龙虾将接近洞穴。这使个体更接近最优解,增强了COA的利用能力。使算法更快地收敛。

2.4 竞争阶段(开发)

       当温度>30且rand≥0.5时,意味着其他小龙虾也对洞穴感兴趣。在这个时候,他们将为得到洞穴而战斗。如图5B所示。小龙虾通过等式(8)争夺洞穴。

6a1763b2c6024b1bb0614ce85384f18c.png

        其中z表示小龙虾的随机个体,如等式(9)所示: 

10652f7ed00a4c03815edc8c8936e833.png

        在比赛阶段,小龙虾相互竞争,小龙虾eq?X_%7Bi%7D根据另一只小龙虾的位置eq?X_%7BZ%7D调整位置。通过调整位置,扩大了COA的搜索范围,增强了算法的探索能力。 

2.5 采食阶段(开采)

        当温度≤30时,该温度适合小龙虾饲养。这时,小龙虾就会向食物移动。在找到食物后,小龙虾会判断食物的大小。如果食物太大,小龙虾会用爪子撕裂食物,交替用第二只和第三只脚进食。食物位置eq?X_%7Bfood%7D定义为:

6da835c347c14aeeb9c304389f72c0b7.png

       食物大小Q定义为:

e81c8fe94bc04a5f9ac3bdc1677c48dc.png

       其中eq?C_%7B3%7D是食物因子,表示最大的食物,值为常数3,eq?fitness_%7Bi%7D表示第i只小龙虾的适合度值,eq?fitness_%7Bfood%7D表示食物位置的适合度。 

      小龙虾对食物大小的判断来自于最大食物的大小。当Q>(eq?C_%7B3%7D+1)/2时,表示食物太大。这时,小龙虾会用第一只爪足撕咬食物。如图6A所示。数学方程如下:

06e384b77fde4979a07594ee2c49ada8.png

        当食物切碎变小时,第二只和第三只爪子会交替捡起食物并将其放入嘴里。为了模拟交变过程,采用正弦函数和余弦函数相结合的方法来模拟交变过程。如图6B所示。不仅如此,小龙虾获得的食物也与食物的摄入量有关,因此觅食的方程式如下:

cbf366cf1ab8488f934ccde39cc3d2b7.png         当Q≤(eq?C_%7B3%7D+1)/2时,小龙虾只需要向食物移动并直接进食,方程如下:

20d4e162276c447d952868f206bbe368.png        在觅食阶段,小龙虾根据食物Q的大小使用不同的喂养方法,食物eq?X_%7Bfood%7D代表最佳解决方案。当食物Q的大小适合小龙虾食用时,小龙虾就会靠近食物。当Q太大时,表示小龙虾和最佳解决方案之间存在显著差异。因此,Xfood应该减少并更接近食物。并控制小龙虾食物摄入量增强算法的随机性。通过觅食阶段,COA将逼近最优解,增强了算法的利用能力,使其具有良好的收敛能力。

3 算法流程图

a1af0d56d6234384a29d83d7bfd35530.png

4 算法性能评估 

870d6411766c4e6ba2ff476dfa89efa3.png

F1

3b13ead051204f69a7a0c2cbff2e1563.png

F4

1ef9d870467e42daa8653bddd9867a38.png

F5

cb04d9ef22fa4011bfedec957dfd4f09.png

F8

b70f15ea8a064e7bb0337e79a3dc7b2e.png

F12

       算法在F1-F4都取得理论最优值,且收敛速度快。算法在F5、F6、F8、F12、F13等求解难度较高的算法较差。

       在CEC2017与CEC2022测试函数运行后同样发现性能较差、竞争力较低(仅自我感觉)。

获取源码请在评论区回复(小龙虾)。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/229614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用git push太慢怎么办

使用git push太慢怎么办 修改host文件: windows 的路径应该在 C:\Windows\System32\drivers\etc\hosts 在host文件的最后一行加上 151.101.72.249 github.global.ssl.fastly.nethost不允许修改就复制一份,修改好了再替换掉,可能会让你输入…

量子芯片技术:未来的计算革命

量子芯片技术:未来的计算革命 一、引言 随着科技的不断发展,人类正在进入一个全新的技术时代,即量子时代。量子芯片技术作为这个时代的重要代表,正逐渐改变我们对计算和信息处理的理解。本文将深入探讨量子芯片技术的基本原理、…

乔拓云平台:微信小程序开发的全新视角与高效路径

随着微信小程序的日益普及,越来越多的人开始关注如何开发自己的小程序。对于没有开发经验的人来说,借助第三方平台如乔拓云,可以轻松实现小程序的开发。本文将介绍微信小程序开发需要学习的东西,并探讨如何借助乔拓云平台进行无经…

uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)

效果预览 弹出的内容 src\pages\goods\components\ServicePanel.vue <script setup lang"ts"> // 子组件调父组件的方法 const emit defineEmits<{(event: close): void }>() </script><template><view class"service-panel"…

X86汇编语言:从实模式到保护模式(代码+注释)--c6

X86汇编语言&#xff1a;从实模式到保护模式&#xff08;代码注释&#xff09;–c6 标志寄存器FLAGS&#xff1a; 6th&#xff1a;ZF位&#xff08;Zero Flag&#xff09;&#xff1a;零标志&#xff0c;执行算数或者逻辑运算之后&#xff0c;会将该位置位。10th&#xff1a;D…

学会用bash在linux写脚本 (一)

本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 grep的用法是“grep 关键字 file”&#xff0c;意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/messages 中过滤出含有root …

智慧能源:数字孪生压缩空气储能管控平台

压缩空气储能在解决可再生能源不稳定性和提供可靠能源供应方面具有重要的优势。压缩空气储能&#xff0c;是指在电网负荷低谷期将电能用于压缩空气&#xff0c;在电网负荷高峰期释放压缩空气推动汽轮机发电的储能方式。通过提高能量转换效率、增加储能密度、快速启动和调节能力…

因小失大,一个普通的postman多接口顺序执行,让项目瘫痪了一天

Runner的使用 postman不仅可以单独运行某个接口&#xff0c;postman的 Runner模块可以运行多个接口&#xff0c;可以实现真正意义上的自动化接口测试 Runner的主要功能如下 按顺序调用接口&#xff0c;执行用例&#xff1b; 批量发送请求&#xff1b; 对接口数据进行参数化…

Spring Cloud Alibaba实践 --Sentinel

sentinel简介 Sentinel的官方标题是&#xff1a;分布式系统的流量防卫兵。从名字上来看&#xff0c;很容易就能猜到它是用来作服务稳定性保障的。对于服务稳定性保障组件&#xff0c;如果熟悉Spring Cloud的用户&#xff0c;第一反应应该就是Hystrix。但是比较可惜的是Netflix…

一文讲解关于MCU启动原理的几个关键问题

MCU最开始一启动后去哪里读代码&#xff1f; CPU上电启动后被设计为去地址0x00000000位置处读取代码&#xff1b;首先会连续读取两个字&#xff0c;分别是栈指针初始值和复位异常处理函数的地址&#xff1b;然后跳去执行复位异常处理函数。 当然在一些早期的ARM处理器设计中&a…

对数据处理

例子&#xff1a; <Select v-model"type" placeholder"请选择..."> <Option v-for"item in list" :value"item.id__item.name">{{item.name}}</Option> </Select>

一个简单的postman设置断言,为何会难住一个工作5年的测试?

postman设置断言 作为一款接口测试工 具&#xff0c;postman需要对发送请求后返回的结果是否正确做验证&#xff0c;在postman中通过 tests页签做请求的验证&#xff0c;也称为断言。 postman设置断言的流程 1、在tests页签截取要对比的实际响应信息&#xff08;响应头、响应…

船舶机电设备智能故障诊断系统

1 船舶电气设备故障诊断专家系统 体系结构 整个系统的体系结构采用浏览器&#xff0f; 服务器 &#xff08;B&#xff0f; S&#xff09; 三层体系结构 &#xff08; 如图 1 所示 &#xff09;。B&#xff0f;S 模式是一种 以 Web 技术为基础的系统平台模式 。 把传统…

基于SuperMap iObjects Java生成地图瓦片

作者&#xff1a;dongyx 前言 在GIS领域&#xff0c;地图瓦片技术作为GIS领域的关键技术&#xff0c;是提高地图服务性能的关键手段之一。通过预先生成地图的瓦片数据&#xff0c;可以显著提升用户访问地图时的响应速度和体验。SuperMap iObjects for Java作为一款强大的GIS开…

xxl-job详解

目录 1、xxl-job介绍1.1 xxl-job的原理1.1.1 执行器的注册和发现1.1.2 调度中心调用执行器 1.2 quartz和xxl-job对比 2、快速入门2.1 下载并启动2.2 在调度中心新增定时任务2.3 任务运行模式(BEAN、GLUE)2.4 xxl-job的总结 3、后端专属技术群 1、xxl-job介绍 ​ xxl-job是一个…

LeetCode-478. 在圆内随机生成点【几何 数学 拒绝采样 随机化】

LeetCode-478. 在圆内随机生成点【几何 数学 拒绝采样 随机化】 题目描述&#xff1a;解题思路一&#xff1a;一个最简单的方法就是在一个正方形内生成随机采样的点&#xff0c;然后拒绝不在内切圆中的采样点。解题思路二&#xff1a;具体思想是先生成一个0到r的随机数len&…

进制 + 原码,反码,补码

进制转换 整数部分 小数部分 原码 反码 补码 原码转补码&#xff1a; 左边和右边第一个1不变&#xff0c;中间取反。-0 除外。 计算机系统中数值一律用补码来存储的原因 其他 术语 进制表 进制数的表示 详细教程可转 爱编程的大丙

服务器数据恢复—ocfs2文件系统被格式化为其他文件系统如何恢复数据?

服务器故障&#xff1a; 由于工作人员的误操作&#xff0c;将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷上&#xff0c;导致原Ocfs2文件系统被格式化为Ext4文件系统。 由于Ext4文件系统每隔几百兆就会写入文件系统的原始信息&#xff0c;原Ocfs2文件系统数据会遭受一定程度…

Spring基于注解开发

Component的使用 基本Bean注解&#xff0c;主要是使用注解的方式替代原有的xml的<bean>标签及其标签属性的配置&#xff0c;使用Component注解替代<bean>标签中的id以及class属性&#xff0c;而对于是否延迟加载或是Bean的作用域&#xff0c;则是其他注解 xml配置…

系列八、SpringBoot中自定义SpringMVC配置

一、概述 作为Spring家族的明星产品&#xff0c;SpringBoot极大地简化了程序员的日常开发&#xff0c;提高了开发效率。我们很容易得借助于SpringBoot就可以快速开发业务代码。一般情况下&#xff0c;公司的日常开发都是基于web服务的&#xff0c;我们在使用idea等工具初始化一…