论文阅读-仿生算法

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

樽海鞘

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

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

数学模型

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

SSA

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

  与其他群智能算法类似,在 nnn 维搜索空间中定义樽海鞘的位置,其中 nnn 是给定问题的变量数。因此,所有樽海鞘的位置都存储在称为 xxx 的二维矩阵中,并且假定:在该搜索空间中有一个称为 FFF 的食物源作为种群的目标。

更新领导者位置
xj1={Fj+c1((ubj−lbj)c2+lbj)     c3≥0Fj−c1((ubj−lbj)c2+lbj)     c3<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)
其中, xj1x_j^1xj1 为第一个樽海鞘(leader)在第 jjj 维中的位置,FjF_jFj 为食物源在第 jjj 维中的位置,ubjub_jubj 为第 jjj 维的上界,lbjlb_jlbj 为下界,c2,c3c_2, c_3c2,c3 为随机数。

  根据上式可以看出,领导者只更新其相对于食物来源的位置,其中系数 c1=2e−(4lL)2c_1 = 2 e^{- \left(\frac{4 l}{L} \right)^2 }c1=2e(L4l)2 为重要参数,其主要用于平衡探索与开发。其中,lll 为当前迭代次数,LLL 为最大迭代次数。c2,c3c_2, c_3c2,c3 为 [0 - 1] 之间的均匀随机数,追随者的更新方式为:
xji=12at2+v0t,(2) x_j^i = \frac{1}{2} a t^2 + v_0 t , \tag{2} xji=21at2+v0t,(2)
其中,i≥2i \geq 2i2 表示第 iii 个追随者在第 jjj 维中的位置,a=vfinalv0a = \frac{v_{final}}{v_0}a=v0vfinalv=x−x0tv = \frac{x - x_0}{t}v=txx0。进一步的,有:
xji=12(xji+xji−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 xix_ixi, (i=1,2,…,n)(i = 1, 2, \dots, n)(i=1,2,,n) considering ububub and lblblb;
  2. while end condition in not satisfied
  3.   Calculate the fitness of each search agent (salp);
  4.   FFF = the best search agent;
  5.    c1=2e−(4lL)2c_1 = 2 e^{- \left(\frac{4 l}{L} \right)^2 }c1=2e(L4l)2;
  6.    for each salp xix_ixi
  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⃗=max⃗−min⃗repository size\vec d = \frac{\vec{max} - \vec{min}}{repository \ size}d=repository sizemaxmin

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

在这里插入图片描述

参考文献

[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、付费专栏及课程。

余额充值