: j! l& @1 [- |' C1 ^8 K2 x" n% A7 d9 @& g8 t2 Y
其中,t tt 代表当前迭代数,j = 1 , 2 , 3 , . . . , d j =1, 2, 3, . . . , dj=1,2,3,...,d。i t e m m a x item_{max}item 6 C& x: R/ }8 `4 ~0 O4 Kmax ' c0 |3 F7 X& Q( [ [5 ?7 e * t9 G% y9 ~2 o' W7 e& ~ . J. J9 @! B" o& J是一个常数,表示最大的迭代次数。X i j X_{ij}X & D: ~( C: u, Z- I" M$ M* yij6 ?1 X2 j& O3 E- d- m0 p
: {, [5 [6 V2 h$ k9 S0 A) X 表示第 i ii 个麻雀在第j jj 维中的位置信息。α ∈ ( 0 , 1 ] α∈(0, 1]α∈(0,1]是一个随机数。R 2 ( R 2 ∈ [ 0 , 1 ] ) R_2(R_2∈[0,1])R * w+ [( d, r: E1 [2 A& v20 W4 @$ _) }/ f* d9 {0 n
% s3 F! s% C3 W: p& q7 l& L
(R , a* R# X. s& C% a3 A
20 q5 f. m& |# u# P
' d3 q# `/ Q. c
∈[0,1])和 S T ( S T ∈ [ 0.5 , 1 ] ) ST(ST∈[0.5,1])ST(ST∈[0.5,1])分别表示预警值和安全值。Q QQ 是服从正态分布的随机数。L LL 表示一个 1 × d 1×d1×d 的矩阵,其中该矩阵内每个元素全部为 1。 9 \3 i L0 e" _! M/ z o! ?0 r2 T" }7 r; _/ l/ B
3 y+ w5 g" M8 M1 n, E! G G当 R 2 < S T R2< STR2<ST 时,这意味着此时的觅食环境周围没有捕食者,发现者可以执行广泛的搜索操作。如果 R 2 ≥ S T R2≥ STR2≥ST,这表示种群中的一些麻雀已经发现了捕食者,并向种群中其它麻雀发出了警报,此时所有麻雀都需要迅速飞到其它安全的地方进行觅食。 0 f1 m% y& r7 Z( I9 T+ n% @% A/ ?2 }5 N; A, {+ E2 x
% T% [/ K6 P, F对于加入者,它们需要执行规则(3)和规则(4)。如前面所描述,在觅食过程中,一些加入者会时刻监视着发现者。一旦它们察觉到发现者已经找到了更好的食物,它们会立即离开现在的位置去争夺食物。如果它们赢了,它们可以立即获得该发现者的食物,否则需要继续执行规则(4)。加入者的位置更新描述如下: 3 l0 A: _' C) P' r9 Q$ o& j. w3 p" g
. @% | b0 A% g" X (5) 3 I& I* b7 |2 b, y% q9 H; F4 @8 K/ O. k+ v, \8 v8 o
$ c }1 C& V* A. g) ^* }! n
其中,其中 X b e s t X_{best}X , Z" ^' x, x9 G, D; o0 v0 {# h
best 4 `/ S3 n1 o, m! a2 Z/ X2 }+ Q 9 D8 _0 P& o5 J) c. a( h E 是当前的全局最优位置。β ββ 作为步长控制参数,是服从均值为 0,方差为 1 的正态分布的随机数。K ∈ [ − 1 , 1 ] K∈[-1,1]K∈[−1,1]是一个随机数,fi则是当前麻雀个体的适应度值。f g f_gf 1 O4 S5 p0 T+ P' `2 z4 P
g : B7 ?; O, R/ u0 l9 D" Z 2 J1 A4 `; Z4 h9 U' v( @ 和 f w f_wf 3 i/ W$ P" N: p$ M; c
w 8 k. V- S. Z' m$ R# F5 t ! r5 G# ~; W7 ^% s \& f
分别是当前全局最佳和最差的适应度值。ε \varepsilonε 的常数,以避免分母出现零。9 Y$ E; s O9 @) ^$ ~3 S. l; G. D
, [: @9 T3 _8 V
( e2 Y* w; E8 C; d
为简单起见,当 f i > f g f_i >f_gf ; v& ]3 D' A g# k$ a
i4 s8 r' Y% i" u
; v# G0 u" B, o* u
>f ! O7 ?" v. z, h( H
g' R$ Z7 Q S4 d6 {
# W; D& r& E' i+ b: Q& K0 i 表示此时的麻雀正处于种群的边缘,极其容易受到捕食者的攻击。X b e s t X_{best}X 2 j3 j8 S+ e0 r! ^
best ; G- d: f4 W. I9 c) r2 Z! t # _! D+ O. K3 ?3 I" |# T4 n: h
表示这个位置的麻雀是种群中最好的位置也是十分安全的。f i = f g f_i = f_gf . W* w1 o5 i f7 z& S0 g+ ]
i 9 J, p8 R! y7 `( U 3 W# y6 D" Q( F =f # K% y! |) {$ J) a: s; ng $ h/ T. {5 \ _3 J/ ] 2 s9 n' z. [ q- r& x 时,这表明处于种群中间的麻雀意识到了危险,需要靠近其它的麻雀以此尽量减少它们被捕食的风险。K KK 表示麻雀移动的方向同时也是步长控制参数。 3 g9 z5 h+ s& L! _! P+ x3 d7 ] Y9 d
" X% ~% a% q+ u5 w
算法流程% u& ~7 g) k) |# e/ b
0 h( t4 i% L, X6 f) D
. w. r" m. Z) M g) h& w) xStep1: 初始化种群,迭代次数,初始化捕食者和加入者比列。6 i$ v9 ] G- C
0 V+ \! T0 g) {