论文阅读-仿生算法

本文介绍了樽海鞘群算法(SSA)及其多目标变体(MSSA)在工程软件中的应用。SSA受到樽海鞘群集行为的启发,将种群分为领导者和追随者,通过数学模型进行优化。MSSA解决了SSA在多目标优化问题中的局限,利用食物源库和Pareto优势操作来处理多个解决方案。
摘要由CSDN通过智能技术生成

樽海鞘群算法SSA MSSA 2017(Advances in Engineering Software)

樽海鞘

  樽海鞘属于纽鳃樽科,具有透明桶装的身体,它们的组织与水母非常相似,如下图所示。
樽海鞘

  樽海鞘最有趣的行为之一是他们的群集行为,在深海中,樽海鞘通常形成一个称为樽海鞘链的群体,这个链条如右图所示。这种行为的主要原因还不是很清楚,但一些研究人员认为,这是为了通过快速协调变化和觅食实现更好的运动。

数学模型

  该方法有两个分支,分别对应单目标(SSA)和多目标(MSSA),其主要灵感是樽海鞘在海洋中航行和觅食时的群聚行为。

SSA

  其做法是将种群分为两组:领导者和追随者。领导者引导种群,而追随者互相跟随(前面的均是后面的直接或间接领袖)。

  与其他群智能算法类似,在 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{aligned} F_j + c_1 ( (ub_j - lb_j) c_2 + lb_j ) \ \ \ \ \ c_3 \geq 0 \\ F_j - c_1 ( (ub_j - lb_j) c_2 + lb_j ) \ \ \ \ \ c_3 < 0 \end{aligned} \right. , \tag{1} xj1={Fj+c1((ubjlbj)c2+lbj)     c30Fjc1((ubjlbj)c2+lbj)     c3<0,(1)
其中, x j 1 x_j^1 xj1 为第一个樽海鞘(leader)在第 j j j 维中的位置, F j F_j Fj 为食物源在第 j j j 维中的位置, u b j ub_j ubj 为第 j j j 维的上界, l b j lb_j lbj 为下界, c 2 , c 3 c_2, c_3 c2,c3 为随机数。

  根据上式可以看出,领导者只更新其相对于食物来源的位置,其中系数 c 1 = 2 e − ( 4 l L ) 2 c_1 = 2 e^{- \left(\frac{4 l}{L} \right)^2 } c1=2e(L4l)2 为重要参数,其主要用于平衡探索与开发。其中, l l l 为当前迭代次数, L L L 为最大迭代次数。 c 2 , c 3 c_2, c_3 c2,c3 为 [0 - 1] 之间的均匀随机数,追随者的更新方式为:
x j i = 1 2 a t 2 + v 0 t , (2) x_j^i = \frac{1}{2} a t^2 + v_0 t , \tag{2} xji=21at2+v0t,(2)
其中, i ≥ 2 i \geq 2 i2 表示第 i i i 个追随者在第 j j j 维中的位置, a = v f i n a l v 0 a = \frac{v_{final}}{v_0} a=v0vfinal v = x − x 0 t v = \frac{x - x_0}{t} v=txx0。进一步的,有:
x j i = 1 2 ( x j i + x j i − 1 ) . (3) x_j^i = \frac{1}{2} \left( x_j^i + x_j^{i - 1} \right) . \tag{3} xji=21(xji+xji1).(3)

  其测试过程为:
在这里插入图片描述

SSA的优化

  由于优化问题无法确定最优解位置,所以假设:到目前为止得到的最优解是全局最优解,并假设其为樽海鞘链所追逐的食物来源

伪代码:

  1. Initialize the salp population x i x_i xi, ( i = 1 , 2 , … , n ) (i = 1, 2, \dots, n) (i=1,2,,n) considering u b ub ub and l b lb lb;
  2. while end condition in not satisfied
  3.   Calculate the fitness of each search agent (salp);
  4.    F F F = the best search agent;
  5.    c 1 = 2 e − ( 4 l L ) 2 c_1 = 2 e^{- \left(\frac{4 l}{L} \right)^2 } c1=2e(L4l)2;
  6.    for each salp x i x_i xi
  7.      if i == 1
  8.        Update the position of the leading salp by Eq. (1);
  9.      else
  10.        Update the position of the follower salp by Eq. (3);
  11.      end if
  12.    end for
  13.    Put out-of-bounds salps back into the boundaries;

MSSA

  显然,上述算法无法解决多目标优化问题,原因有二,一是SSA只保存一个解决方案作为最佳解决方案,因此它不能存储多个解决方案作为一个多目标问题的最佳解决方案。另一个则是SSA在每次迭代中都用迄今为止得到的最优解更新食物源,但对于多目标问题没有单一的最优解。

  针对以上问题,提出解决方案:给SSA算法配备一个食物来源库,在优化过程中,每个salp都会使用Pareto dominance operators与库中个体进行比较,决定是否添加。

  特别的,对于食物库满的情况,需要从中删除一个解决方案,但不能随意删除,故选择删除一个非主导方案。为了求这个方案,需要定义领域一定距离有解的个数。
d ⃗ = m a x ⃗ − m i n ⃗ r e p o s i t o r y   s i z e \vec d = \frac{\vec{max} - \vec{min}}{repository \ size} d =repository sizemax min

  故现可解决上述第二个问题,每次选择食物不再是固定选择最佳的那个,而是从食物库中挑选最不拥挤的,扩大探索力度。

在这里插入图片描述

参考文献

[1] Mirjalili, S. , Gandomi, A. H. , Mirjalili, S. Z. , Saremi, S. , Faris, H. , & Mirjalili, S. M. . (2017). Salp swarm algorithm: a bio-inspired optimizer for engineering design problems. Advances in Engineering Software, 114(dec.), 163-191.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值