1.背景
2022年,A Seyyedabbasi等人受到自然界中沙猫生存行为启发,提出了沙猫群优化算法(Sand Cat Swarm Optimization, SCSO)。
2.算法原理
2.1算法思想
SCSO模仿自然界中沙猫生存行为,主要分为探索阶段和开发阶段。
2.2算法过程
探索阶段:
假设沙猫的敏感性范围为0~2 kHz。探索阶段主要依靠随机向量 R 寻找猎物,当 |R| > 1时,进行探索阶段。听觉范围 rG 的表达式:
r
G
=
s
M
(
s
M
×
t
t
m
a
x
)
(1)
r_G=s_M\left(\frac{s_M\times t}{t_{max}}\right)\tag{1}
rG=sM(tmaxsM×t)(1)
参数R和r表述为:
R
=
2
×
r
c
×
r
a
n
d
(
0
,
1
)
−
r
c
r
=
r
c
×
rand
(
0
,
1
)
(2)
R=2\times r_{\mathrm{c}}\times\mathrm{rand}(0,1)-r_{\mathrm{c}}\\ r=r_c\times\operatorname{rand}(0,1)\tag{2}
R=2×rc×rand(0,1)−rcr=rc×rand(0,1)(2)
位置更新为:
X
(
t
+
1
)
=
r
×
(
X
b
c
(
t
)
−
r
a
n
d
(
0
,
1
)
×
X
(
t
)
)
(3)
X(t+1)=r\times\left(X_{\mathrm{bc}}(t)-\mathrm{rand}(0,1)\times X(t)\right)\tag{3}
X(t+1)=r×(Xbc(t)−rand(0,1)×X(t))(3)
其中,sM 用来模拟沙猫的听力,其值设为2,rG 表示沙猫的听觉范围。
开发阶段:
当 |R| ≤ 1 时,进行开发阶段。此阶段沙猫发现猎物,开始捕食。主要是通过最优位置与当前位置之间的距离差完成位置更新。随机位置向量Xrnd 的定义式:
X
r
n
d
=
∣
(
r
a
n
d
(
0
,
1
)
×
G
b
e
s
t
−
X
(
t
)
)
∣
(4)
X_{\mathrm{rnd}}=\left|\left(\mathrm{rand}(0,1)\times G_{\mathrm{best}}-X(t)\right)\right|\tag{4}
Xrnd=∣(rand(0,1)×Gbest−X(t))∣(4)
位置更新:
X
(
t
+
1
)
=
(
G
b
e
s
t
−
r
×
X
r
o
d
×
cos
θ
)
(5)
X(t+1)=\begin{pmatrix}G_{\mathrm{best}}-r\times X_{\mathrm{rod}}\times\cos\theta\end{pmatrix}\tag{5}
X(t+1)=(Gbest−r×Xrod×cosθ)(5)
其中,Xrnd 表示随机的位置向量,Gbest 为当前种群中的最佳个体的位置向量,θ 为沙猫灵敏度范围圆上的随机角度。
伪代码:
3.结果展示
4.参考文献
[1] Seyyedabbasi A, Kiani F. Sand Cat swarm optimization: A nature-inspired algorithm to solve global optimization problems[J]. Engineering with Computers, 2023, 39(4): 2627-2651.