获取更多资讯,赶快关注上面的公众号吧!
文章目录
第十二章 蟑螂算法
12.1 介绍
蟑螂群优化算法(Cockroach Swarm Optimization,CSO)是受蟑螂群体捕食行为的启发而提出的,该算法是通过模仿蟑螂个体寻找整体最优值的追逐行为而建立的。蟑螂是一种昆虫,通常出现在黑暗和潮湿的地方。它们表现出追逐、聚集和分散等觅食行为(Kwiecien & Pasieka, 2017)。
CSO算法是通过模仿蟑螂的生物学行为来实现的:聚集、分散和残忍行为,下面分别对各个过程进行建模。
12.2 聚集行为(Chase-Swarming behavior)
其中yr为蟑螂的位置,a代表步长,为固定值,rand为(0,1)之间的任意值,ρr和ρg分别是个体最优和全局最优蟑螂的位置点,个体最优可以通过下式进行计算:
其中visual为常数,表示蟑螂的视野范围,r=1,2,3,…N,s=1,2,3,…N。全局最优位置可以通过下式确定:
12.3 分散行为(Dispersing behavior)
在一定的时间间隔内,每个个体被随机分散,以保持当前个体的多样性,模型如下:
扫描二维码关注公众号,回复:
9282338 查看本文章
其中rand(1,E)为可以在一定范围内设置的E维(问题空间维度)随机向量。
12.4 残忍行为(Ruthless behavior)
在一定的时间间隔内,当前的最佳个体取代随机选择的个体,即弱肉强食。模型如下:
l为[1,N]之间的任意整数。
12.5 蟑螂算法
Step1:参数设置和种群初始化。设置参数a,N,E,生成蟑螂种群yr(r=1,2,...N);
Step2:使用式(2)和(3)搜索局部和全局最优位置ρr和ρg;
Step3:根据式(1)执行聚集行为,更新全局最优ρg;
Step4:根据式(4)执行分散行为,如果新的位置由于原有的位置,则使用新的位置,否则保留原有位置,同时更新全局最优ρg;
Step5:根据式(5)执行残忍行为;
Step6:重复Step2~5,直到满足终止条件。