1.背景
2023年,M Abdel-Basset受到蜘蛛黄蜂优化社会行为启发,提出了蜘蛛黄蜂优化算法(Spider Wasp Optimizer, SWO)。
2.算法原理
2.1算法思想
SWO模拟自然中雌性蜘蛛黄蜂的狩猎、筑巢和交配行为。
2.2算法过程
捕猎和筑巢行为
雌性蜘蛛黄蜂开始他们的旅程,寻找猎物喂养他们的幼虫。它们在搜索空间内随机进行搜索,寻找最合适的猎物,这被称为探索阶段。雌性黄蜂以恒定的步长随机探索搜索空间:
S W ‾ i t + 1 = S W ‾ i t + μ 1 ∗ ( S W ‾ a t − S W ‾ b t ) (1) \overline{SW}_i^{t+1}=\overline{SW}_i^t+\mu_1*\left(\overline{SW}_a^t-\overline{SW}_b^t\right)\tag{1} SWit+1=SWit+μ1∗(SWat−SWbt)(1)
其中,a和b是从种群中随机选取的两个指标来确定探索方向。参数表述为:
μ 1 = ∣ r n ∣ ∗ r 1 (2) \mu_1=|rn|*r_1\tag{2} μ1=∣rn∣∗r1(2)
雌黄蜂有时会找不到从球上掉下来的蜘蛛;因此,他们搜索了蜘蛛掉落的确切地点周围的整个区域:
S W ‾ i t + 1 = S W ‾ c t + μ 2 ∗ ( L ⃗ + r 2 ⃗ ∗ ( H ⃗ − L ⃗ ) ) (3) \overline{SW}_{i}^{t+1}=\overline{SW}_{c}^{t}+\mu_{2}*\left(\vec{L}+\vec{r_{2}}*\left(\vec{H}-\vec{L}\right)\right)\tag{3} SWit+1=SWct+μ2∗(L+r2∗(H−L))(3)
各参数:
μ 2 = B ∗ cos ( 2 π l ) B = 1 1 + e l (4) \mu_2=B*\cos(2\pi l)\\ B=\frac{1}{1+e^l}\tag{4} μ2=B∗cos(2πl)B=1+el1(4)
跟随和逃离阶段
找到猎物后,蜘蛛黄蜂试图攻击他们在网络的中心:
S W ‾ i t + 1 = S W ‾ i t + C ∗ ∣ 2 ∗ r 5 ‾ ∗ S W ‾ a t − S W ‾ i t ∣ C = ( 2 − 2 ∗ ( t t m a x ) ) ∗ r 6 (5) \overline{SW}_{i}^{t+1}=\overline{SW}_{i}^{t}+C*\left|2*\overline{r_{5}}*\overline{SW}_{a}^{t}-\overline{SW}_{i}^{t}\right|\\C=\left(2-2*\left(\frac{t}{t_{max}}\right)\right)*r_{6}\tag{5} SWit+1=SWit+C∗ 2∗r5∗SWat−SWit C=(2−2∗(tmaxt))∗r6(5)
当蜘蛛逃离雌黄蜂时,雌黄蜂和蜘蛛之间的距离逐渐增加:
S W ‾ i t + 1 = S W ‾ i t ∗ ν c ‾ (6) \overline{SW}_i^{t+1}=\overline{SW}_i^t*\overline{\nu c}\tag{6} SWit+1=SWit∗νc(6)
其中,vc是根据正态分布在k和- k之间生成的向量。逐渐增大雌蜂与蜘蛛之间的距离:
k = 1 − ( t t m a x ) (7) k=1-\left(\frac{t}{t_{max}}\right)\tag{7} k=1−(tmaxt)(7)
筑巢行为
雌性黄蜂将瘫痪的蜘蛛拉入预先准备好的巢穴:
S W ‾ i t + 1 = S W ‾ ∗ + cos ( 2 π l ) ∗ ( S W ‾ ∗ − S W ‾ i t ) (8) \overline{SW}_{i}^{t+1}=\overline{SW}^{*}+\cos(2\pi l)*\left(\overline{SW}^{*}-\overline{SW}_{i}^{t}\right)\tag{8} SWit+1=SW∗+cos(2πl)∗(SW∗−SWit)(8)
从种群中随机选择的雌性蜘蛛的位置上建造巢穴,使用额外的步长来避免在同一位置上建造两个巢穴:
S W ‾ i t + 1 = S W ‾ a t + r 3 ∗ ∣ γ ∣ ∗ ( S W ‾ a t − S W ‾ i t ) + ( 1 − r 3 ) ∗ U → ∗ ( S W ‾ b t − S W ‾ c t ) (9) \overline{SW}_{i}^{t+1}=\overline{SW}_{a}^{t}+\mathrm{r}_{3}*|\gamma|*\left(\overline{SW}_{a}^{t}-\overline{SW}_{i}^{t}\right)+\left(1-r_{3}\right)*\overrightarrow{U}*\left(\overline{SW}_{b}^{t}-\overline{SW}_{c}^{t}\right)\tag{9} SWit+1=SWat+r3∗∣γ∣∗(SWat−SWit)+(1−r3)∗U∗(SWbt−SWct)(9)
交配行为
蜘蛛黄蜂的一个主要特征是它们能够确定性别,性别是根据卵所在的寄主的大小来决定的:
S W i t + 1 = C r o s s o v e r ( S W i t , S W m t , C R ) (10) SW_i^{t+1}=Crossover\big(SW_i^t,SW_m^t,CR\big)\tag{10} SWit+1=Crossover(SWit,SWmt,CR)(10)
其中Crossover表示均匀交叉算子,生成与雌性不同的雄性蜘蛛黄蜂:
S W ‾ m t + 1 = S W ‾ i t + e l ∗ ∣ β ∣ ∗ ν ‾ 1 + ( 1 − e l ) ∗ ∣ β 1 ∣ ∗ ν ‾ 2 (11) \overline{SW}_{m}^{t+1}=\overline{SW}_{i}^{t}+e^{l}*|\beta|*\overline{\nu}_{1}+\left(1-e^{l}\right)*|\beta_{1}|*\overline{\nu}_{2}\tag{11} SWmt+1=SWit+el∗∣β∣∗ν1+(1−el)∗∣β1∣∗ν2(11)
各参数表述为:
v ⃗ 1 = { x ⃗ a − x ⃗ i f ( x ⃗ a ) < f ( x ⃗ i ) x ⃗ i − x ⃗ a o t h e r w i s e v ⃗ 2 = { x ⃗ b − x ⃗ c f ( x ⃗ b ) < f ( x ⃗ c ) x ⃗ c − x ⃗ b o t h e r w i s e (12) \vec{v}_{1}=\left\{\begin{array}{c}\vec{x}_a-\vec{x}_if\big(\vec{x}_a\big)<f(\vec{x}_i)\\\vec{x}_i-\vec{x}_a otherwise\end{array}\right.\\\\\vec{v}_{2}=\left\{\begin{array}{c}\vec{x}_b-\vec{x}_cf\big(\vec{x}_b\big)<f(\vec{x}_c)\\\vec{x}_c-\vec{x}_b otherwise\end{array}\right.\tag{12} v1={xa−xif(xa)<f(xi)xi−xaotherwisev2={xb−xcf(xb)<f(xc)xc−xbotherwise(12)
伪代码
3.结果展示
4.参考文献
[1] Abdel-Basset M, Mohamed R, Jameel M, et al. Spider wasp optimizer: a novel meta-heuristic optimization algorithm[J]. Artificial Intelligence Review, 2023, 56(10): 11675-11738.
5.代码获取
【资源清单】代码资源清单导航~