文章目录
- 背景
- Squirrel search algorithm(SSA)
-
- SSA
- Random initialization(随机初始化)
- Fitness evaluation(适应值评价)
- Sorting, declaration and random selection(排序、声明和随机选择)
- Generate new locations(生成新位置)
- Aerodynamics of gliding(滑翔空气动力学)
- Seasonal monitoring condition(季节变化条件)
- Random relocation at the end of winter season(冬季末随机搬迁)
- Stopping criterion(算法停止标准)
- 算法步骤
- 引用
背景
优化是在给定情况下为特定问题寻找最佳解决方案的过程。
受自然启发的算法可以大致分为三大类:进化算法(EA),群体智能算法(SI)和基于物理的算法(PB)。
- EAs模仿自然界中生物的进化行为。GA以及差分进化算法可被视为EA的最标准形式。
- 基于群体智能的技术,主要是模仿动物群体的智能社交行为。
- 基于群体智能的算法会随着算法的发展而收集和利用有关搜索空间的全部信息。
- PSO、ACO和ABC是SIs的代表性算法。

按照“no free lunch”(NFL)定理,没有一种自然启发式的优化技术可以最优地解决所有优化问题。这就意味着优化算法可以解决某些问题,但对其他类别的问题无效。
飞行松鼠被认为是空气动力学上最复杂的物种,它有一个类似降落伞的膜,可以帮助松鼠改变升力和阻力,在高空中从一棵树滑翔到另一棵树。
飞行松鼠不会飞行,而是采用滑翔方式快速和有效地跨越很长的距离。松鼠之所以要滑翔,是为了躲避捕食者,寻找捕食的最佳地点和以较小的代价进行捕食。

Squirrel search algorithm(SSA)
当飞行松鼠开始觅食时,搜寻过程就开始了。飞行松鼠通过从一棵树滑行到另一棵树了来寻找食物;通过改变位置,搜索不同的森林区域。
季节变化会显著影响飞行松鼠的觅食活动,松鼠在低温条件下会损失大量热量。因为它们的体温高、体型小,导致觅食过程的代价很大,并且由于天敌的存在而具有风险。在SSA算法中,通过检查季节变化条件,防止算法陷入局部最优。
1、森林中有n只飞行松鼠,假设一只松鼠在一棵树上。
2、每只飞行松鼠都通过自己的动态觅食行为来寻找食物。
3、在森林中,只有三种类型的树:普通树、橡树和山核桃树。(normal tree\oak tree and hickory tree)
4、考虑森林区域被认为包含三个橡树和一个山核桃树。
考虑松鼠数量n为50只。
1棵山核桃树和3棵橡树是4个食物资源,其他46棵普通树没有食物资源(Number of Food)。也就是说,松鼠总数的92%生活在普通树上,其余的8%生活在有食物资源的树上。然而,食物资源的数量可以根据不用的约束$1<N_{fs}<n ,N_{fs} \in Z >0 $而变化
SSA
飞行松鼠的位置在SSA算法中由向量表示,每个向量有多个维度。因此,飞行松鼠可以在一维、二维、三维或超维搜索空间中滑行来改变自身的位置。
Random initialization(随机初始化)
森林中有n只飞鼠(FS),第i只飞鼠的位置可以通过一个矢量来确定。
所有飞鼠的位置可以表示为如下矩阵:
F S = [ F S 1.1 F S 1.2 . . . . . . F S 1 , d F S 2.1 F S 2.2 . . . . . . F S 2 , d ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ F S n . 1 F S n . 2 . . . . . . F S n , d ] FS=\begin{bmatrix}FS_{1.1} & FS_{1.2} &... &... & FS_{1,d}\\ FS_{2.1} & FS_{2.2} &... &... & FS_{2,d}\\ \vdots & \vdots & \vdots & \vdots\\ \vdots & \vdots & \vdots & \vdots\\ FS_{n.1} & FS_{n.2} &... &... & FS_{n,d}\\ \end{bmatrix} FS=⎣⎢⎢⎢⎢⎢⎢⎡FS1.1FS2.1⋮⋮FSn.1FS1.2FS2.2⋮⋮FSn.2......⋮⋮.........⋮⋮...FS1,dFS2,dFSn,d⎦⎥⎥⎥⎥⎥⎥⎤
- F S i , j FS_{i,j} FSi,j代表第i只松鼠在第j维上的值
下面等式均匀分布用来分配每个松鼠在森林中的初始位置。
F S i = F S L + U ( 0 , 1 ) × ( F S U − F S L ) FS_{i}=FS_{L}+U(0,1) \times(FS_U - FS_L) FSi=FSL+U(0,1)×(FSU−FSL)
- F S L FS_{L} FSL和 F S U FS_{U} FSU是第j维度上的第i个飞鼠的下界和上界
- U ( 0 , 1 ) U(0,1) U(0,1)是在[0,1]范围内的均匀分布的随机数
Fitness evaluation(适应值评价)
通过将决策变量的值放入用户定义的适应度函数中,可以计算每个飞鼠的位置适应度。并将相应的适应度值存储在以下数组中:
f = [ f 1 ( [ F S 1.1 , F S 1.2 , . . . , F S 1 , d ] ) f 2 ( [ F S 2.1 , F S 2.2 , . . . , F S 2 , d ] ) ⋮ ⋮ f n ( [ F S n . 1 , F S n . 2 , . . . , F S n , d ] ) ] f=\begin{bmatrix} f_1([FS_{1.1},FS_{1.2},...,FS_{1,d}])\\ f_2([FS_{2.1},FS_{2.2},...,FS_{2,d}])\\ \vdots\\ \vdots\\ f_n([FS_{n.1},FS_{n.2},...,FS_{n,d}])\\ \end{bmatrix} f=⎣⎢⎢⎢⎢⎢⎢⎡f1([FS1.1,FS1.2,...,FS1,d])f2([FS2.1,FS2.2,...,FS2,d])⋮⋮fn([FSn.1,FSn.2,...,FS

介绍了一种新颖的自然启发式优化算法——飞行松鼠搜索算法(SSA),该算法模仿飞行松鼠的觅食行为,包括随机初始化、适应值评估、排序与选择、新位置生成、滑翔空气动力学及季节变化条件。SSA通过动态调整搜索策略,避免局部最优,适用于解决复杂优化问题。
最低0.47元/天 解锁文章
1880





