樽海鞘群算法

樽海鞘群算法（， SSA），又称樽海鞘群优化（, SSO)，是由Mirjalili et al. 在2017年提出的一种元启发式算法。

该算法受樽海鞘群捕食规律启发。在粒子数量受限的情况下，该算法比其他算法更有效。

算法原理 
樽海鞘群分为领导者和追随者，领导者向食物移动，而其追随者成链式运动进行跟随。

算法实现 
参数设置: 

-为樽海鞘种群数量

-为求解维度

-（upper bound）为求解上边界

- （lower bound） 为求解下边界

-为最大迭代次数

-为当前迭代次数

初始化种群。请注意，因为樽海鞘群成链式运动，所以在上边界和下边界均匀分布的初始化最适合本算法，也有论文提出使用混沌序列进行初始化。总之，随机初始化很可能导致结果不理想，条件允许尽量不要采用随机初始化。

在计算机语言中，种群通常用数组表示，这里用表示粒子位置，表示第几个粒子，表示粒子所在维度数。

领导者位置更新公式： 

其中，表示领导者位置，表示当前最优解位置（食物位置），为平衡开发与探索的系数，其公式为：，其中e为自然常数，为当前迭代次数，为最大迭代次数，、为0~1的随机数。

追随者位置更新公式： 

其中，等式左边的表示第个樽海鞘的更新位置，等式右边的表示第个樽海鞘当前的位置，表示第个樽海鞘的位置。

改进的樽海鞘群算法 
与其他元启发式算法一样，樽海鞘群算法也会遇到收敛速度和被限制在局部最优解的情况，以下介绍几种优化的方法。

 在可以保证不被限制局部最优解的情况下，收敛速度不理想的情况可以通过动态增加领导者数量来解决。在迭代初始，设1个领导者，此时算法能充分探索，在迭代末尾，设个领导者，此时算法能迅速收敛。领导者数量可用常见函数计算，为计算得出的领导者数量，为根据具体情况所得出的函数。

 被限制在局部最优解时可以通过增加疯狂粒子来增加算法的探索能力
 有论文提出在SSA算法中引入Lévy flight

樽海鞘算法的实际应用 
在光伏发电，最大功率的追踪算法（Maximum power point tracking，MPPT）。

参考文献