智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)

在这里插入图片描述

获取更多资讯,赶快关注上面的公众号吧!

文章目录

  • 启发
  • 樽海鞘链移动的数学模型
  • 群体仿真
  • 尊海鞘算法SSA

  尊海鞘优化算法(Salp Swarm Algorithm,SSA)是由澳大利亚的Seyedali Mirjalili于2017年提出的一种新型优化算法,该算法模拟了樽海鞘在海洋中航行和觅食时的群集行为,今天将给大家带来尊海鞘算法的原理介绍,扫码关注公众号,回复“尊海鞘”或“SSA”,可获取Matlab源码下载链接。

启发

  樽海鞘属樽海鞘科,体透明,呈桶状,其组织与水母非常相似,如图1(a)所示。

  尊海鞘最有趣的行为之一是它们的群体行为,在深海中,樽海鞘经常形成一个称为樽海鞘链的群体,如图1(b)。

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第1张图片

樽海鞘链移动的数学模型

  为了对樽海鞘进行数学建模,首先将种群分为两个组:领导者和追随者。领导者是链中最前面的樽海鞘,而剩余其他的就都是追随者。

  同其他基于种群的优化技术一样,在 n n n维搜索空间中定义樽海鞘的位置,其中 n n n维给定问题的变量个数。因此所有樽海鞘的位置都存储于二维矩阵 x x x中。同时假设在搜索空间存在食物源 F F F,作为种群的目标。

  通过以下公式来更新领导者的位置:
x j 1 = { F j + c 1 ( ( u b j − l b j ) c 2 + l b j ) c 3 ≥ 0 F j − c 1 ( ( u b j − l b j ) c 2 + l b j ) c 3 < 0 (1) x_{j}^{1}=\left\{\begin{array}{cc} F_{j}+c_{1}\left(\left(u b_{j}-l b_{j}\right) c_{2}+l b_{j}\right) & c_{3} \geq 0 \\ F_{j}-c_{1}\left(\left(u b_{j}-l b_{j}\right) c_{2}+l b_{j}\right) & c_{3}<0 \end{array}\right.\tag{1} xj1={Fj+c1((ubjlbj)c2+lbj)Fjc1((ubjlbj)c2+lbj)c30c3<0(1)

其中 x j 1 x_{j}^{1} xj1表示第一个尊海鞘(领导者)在第 j j j维的位置, F j F_j Fj是食物源在第 j j j维上的位置, u b j u b_{j} ubj l b j l b_{j} lbj分别是第 j j j维上的上界和下界, c 1 , c 2 c_{1},c_{2} c1,c2 c 3 c_{3} c3为随机数。

  式(1)表明领导者仅更新与食物源的相对位置,系数 c 1 c_1 c1式SSA中最重要的参数,因为其用于平衡探索和利用:
c 1 = 2 e − ( 4 l L ) 2 (2) c_{1}=2 e^{-\left(\frac{4 l}{L}\right)^{2}}\tag{2} c1=2e(L4l)2(2)
其中 l l l为当前迭代次数, L L L为最大迭代次数。

利用如下公式对追随者的位置进行更新:
x j i = 1 2 a t 2 + v 0 t (3) x_{j}^{i}=\frac{1}{2} a t^{2}+v_{0} t\tag{3} xji=21at2+v0t(3)

其中 i ≥ 2 i\ge 2 i2, x j i x_{j}^{i} xji表示第 i i i个追随者樽海鞘在第 j j j维上的位置, t t t为时间, v 0 v_0 v0是初始速度, a = v final  v 0 a=\frac{v_{\text {final }}}{v_{0}} a=v0vfinal ,其中 v = x − x 0 t v=\frac{x-x_{0}}{t} v=txx0

  由于在优化中时间就是迭代次数,所以迭代时间之差就是1,考虑到 v 0 = 0 v_{0}=0 v0=0,上式可以表达为:
x j i = 1 2 ( x j i + x j i − 1 ) (4) x_{j}^{i}=\frac{1}{2}\left(x_{j}^{i}+x_{j}^{i-1}\right)\tag{4} xji=21(xji+xji1)(4)

群体仿真

  为了观察上述数学模型的效果,下面进行仿真实验。20只樽海鞘被随机放置于具有固定或移动食物源的搜索空间中,樽海鞘链和每只樽海鞘的历史位置如图2~5所示。

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第2张图片

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第3张图片

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第4张图片

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第5张图片

  图中蓝色点是食物源的位置,黑色实心圆是领导者樽海鞘,追随者则根据与领导者的相对位置,呈现不同灰度。从图2和图4中连续9次的樽海鞘链行为可以看出,仅仅迭代一次之后,使用提出的等式就可以形成种群并移动,同时可以看出,领头的樽海鞘在食物源周围发生位置变化,而跟随的樽海鞘则在不断的迭代过程中逐渐跟随领导者。

  图3和图5显示了经过100次迭代后,在二维和三维空间中,在固定和移动的食物源周围的樽海鞘历史位置。在固定的食物源周围搜索到的点表明,樽海鞘能有效地在搜索空间内移动。点的分布是合理的,表明所提出的模型能够对固定食物源周围的空间进行探索和利用。此外,图3和图5表明所提出的数学模型要求樽海鞘链中的樽海鞘追逐移动的食物源。在起始点周围搜索的点的分布高于终点,这是因为控制探索和利用的参数 c 1 c_1 c1,这些都可已证明樽海鞘链运动模型能够探索和利用静止和流动食物源周围的空间。

尊海鞘算法SSA

  为了适用于优化问题,需要对上述模型进行一些小调整。在SSA群模型中,追随者樽海鞘跟随领导者樽海鞘,领导者樽海鞘也向食物来源移动,因此,如果食物源被全局最优食物所取代,樽海鞘链就会自动向其移动。但问题是,优化问题的全局最优解是未知的。在这种情况下,假设到目前为止得到的最优解是全局最优解,并假定其为樽海鞘链所追逐的食物源。

智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)_第6张图片

SSA的伪代码如下:

初始化樽海鞘种群 x i ( i = 1 , 2 , . . . , n ) x_i(i=1,2,...,n) xi(i=1,2,...,n),上界和下界分别为 u b ub ub l b lb lb

while(未满足终止条件)

 计算每个樽海鞘的适应度

F = F= F=最优樽海鞘

 根据式(2)更新 c 1 c_1 c1

for 每个樽海鞘 x i x_i xi

  if ( i = = 1 i==1 i==1)

   根据式(1)更新领导者的位置

  else

   根据式(4)更新追随者的位置

  end

end

 将每个樽海鞘都限制在变量的上、下界范围内

end

return F F F

  注意到,在优化过程中,食物源也会被更新,这是因为樽海鞘链通过探索和利用可能会找到一个更优解。

你可能感兴趣的:(群体智能,进化计算,樽海鞘,智能优化,群体智能)