1 灵感来源
COA的灵感来源于小龙虾的觅食、避暑和竞争行为。觅食阶段和竞争阶段是COA的开发阶段,避暑阶段是COC的探索阶段。
2 数学模型
2.1 初始化种群
采用随机初始化种群,相信大家都能看懂,直接原文献截图。
2.2 确定小龙虾的温度和摄入量
温度的变化会影响小龙虾的行为,使其进入不同的阶段。温度定义为等式(3)。当温度高于30°C时,小龙虾会选择凉爽的地方避暑。在适当的温度下,小龙虾会进行觅食行为。小龙虾的进食量受温度的影响。小龙虾的饲养范围在15°C-30°C之间,25°C是最好的。因此,小龙虾的进食量可以接近正态分布,从而使进食量受到温度的影响。因为小龙虾在20到30摄氏度之间有很强的觅食行为。因此,COA定义了20到35℃的温度范围。小龙虾摄入量的数学模型如方程所示(4) 。食物摄入量示意图如图4所示。
其中,temp表示小龙虾所在环境的温度。
图4
其中,µ是指最适合小龙虾的温度,σ和C1用于控制不同温度下小龙虾的摄入量。
2.3 避暑阶段(勘探)
当温度>30时,表示温度过高。这个时候,小龙虾会选择加入洞穴避暑。洞穴的定义如下:
其中表示到目前为止通过迭代次数获得的最佳位置,表示当前种群的最佳位置。
小龙虾争夺洞穴是随机事件。当rand<0.5时,意味着没有其他小龙虾竞争洞穴,小龙虾将直接进入洞穴避暑。如图5A所示。此时,小龙虾将使用公式(6)进入洞穴避暑:
其中t表示当前迭代次数,t+1表示下一代迭代次数,是递减曲线,如等式(7)所示。
其中T表示迭代的最大次数。
在避暑阶段,小龙虾的目标是接近洞穴,这代表了最佳解决方案。此时,小龙虾将接近洞穴。这使个体更接近最优解,增强了COA的利用能力。使算法更快地收敛。
2.4 竞争阶段(开发)
当温度>30且rand≥0.5时,意味着其他小龙虾也对洞穴感兴趣。在这个时候,他们将为得到洞穴而战斗。如图5B所示。小龙虾通过等式(8)争夺洞穴。
其中z表示小龙虾的随机个体,如等式(9)所示:
在比赛阶段,小龙虾相互竞争,小龙虾根据另一只小龙虾的位置调整位置。通过调整位置,扩大了COA的搜索范围,增强了算法的探索能力。
2.5 采食阶段(开采)
当温度≤30时,该温度适合小龙虾饲养。这时,小龙虾就会向食物移动。在找到食物后,小龙虾会判断食物的大小。如果食物太大,小龙虾会用爪子撕裂食物,交替用第二只和第三只脚进食。食物位置定义为:
食物大小Q定义为:
其中是食物因子,表示最大的食物,值为常数3,表示第i只小龙虾的适合度值,表示食物位置的适合度。
小龙虾对食物大小的判断来自于最大食物的大小。当Q>(+1)/2时,表示食物太大。这时,小龙虾会用第一只爪足撕咬食物。如图6A所示。数学方程如下:
当食物切碎变小时,第二只和第三只爪子会交替捡起食物并将其放入嘴里。为了模拟交变过程,采用正弦函数和余弦函数相结合的方法来模拟交变过程。如图6B所示。不仅如此,小龙虾获得的食物也与食物的摄入量有关,因此觅食的方程式如下:
当Q≤(+1)/2时,小龙虾只需要向食物移动并直接进食,方程如下:
在觅食阶段,小龙虾根据食物Q的大小使用不同的喂养方法,食物代表最佳解决方案。当食物Q的大小适合小龙虾食用时,小龙虾就会靠近食物。当Q太大时,表示小龙虾和最佳解决方案之间存在显著差异。因此,Xfood应该减少并更接近食物。并控制小龙虾食物摄入量增强算法的随机性。通过觅食阶段,COA将逼近最优解,增强了算法的利用能力,使其具有良好的收敛能力。
3 算法流程图
4 算法性能评估
F1
F4
F5
F8
F12
算法在F1-F4都取得理论最优值,且收敛速度快。算法在F5、F6、F8、F12、F13等求解难度较高的算法较差。
在CEC2017与CEC2022测试函数运行后同样发现性能较差、竞争力较低(仅自我感觉)。
获取源码请在评论区回复(小龙虾)。