樽海鞘群算法
跳转到导航
跳转到搜索
樽海鞘群算法(Template:Lang-en, SSA),又称樽海鞘群优化(Template:Lang-en, SSO),是由Mirjalili et al. 在2017年提出的一种元启发式算法。
该算法受樽海鞘群捕食规律启发。在粒子数量受限的情况下,该算法比其他算法更有效。
算法原理
樽海鞘群分为领导者和追随者,领导者向食物移动,而其追随者成链式运动进行跟随。
算法实现
参数设置:
-为樽海鞘种群数量
-为求解维度
-(upper bound)为求解上边界
- (lower bound) 为求解下边界
-为最大迭代次数
-为当前迭代次数
初始化种群。请注意,因为樽海鞘群成链式运动,所以在上边界和下边界均匀分布的初始化最适合本算法,也有论文[1][2]提出使用混沌序列进行初始化。总之,随机初始化很可能导致结果不理想,条件允许尽量不要采用随机初始化。
在计算机语言中,种群通常用数组表示,这里用表示粒子位置,表示第几个粒子,表示粒子所在维度数。
领导者位置更新公式:
其中,表示领导者位置,表示当前最优解位置(食物位置),为平衡开发与探索的系数,其公式为:,其中e为自然常数,为当前迭代次数,为最大迭代次数,、为0~1的随机数。
追随者位置更新公式:
其中,等式左边的表示第个樽海鞘的更新位置,等式右边的表示第个樽海鞘当前的位置,表示第个樽海鞘的位置。
改进的樽海鞘群算法
与其他元启发式算法一样,樽海鞘群算法也会遇到收敛速度和被限制在局部最优解的情况,以下介绍几种优化的方法。
- 在可以保证不被限制局部最优解的情况下,收敛速度不理想的情况可以通过动态增加领导者数量来解决。在迭代初始,设1个领导者,此时算法能充分探索,在迭代末尾,设个领导者,此时算法能迅速收敛。领导者数量可用常见函数计算,为计算得出的领导者数量,为根据具体情况所得出的函数。
樽海鞘算法的实际应用
在光伏发电,最大功率的追踪算法(Maximum power point tracking,MPPT)[5]。