目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.背景
2024年,Y Fu受到自然界中鹭鹰生存行为启发,提出了鹭鹰优化算法(Secretary Bird Optimization Algorithm, SBOA)。
2.算法原理
2.1算法思想
SBOA生存需要不断地寻找猎物和躲避捕食者的追捕,探索阶段模拟鹭鹰捕食蛇,而开发阶段模拟鹭鹰逃离捕食者。在这个阶段,鹭鹰观察环境,选择最合适的方式到达安全的避难所。
2.2算法过程
鹭鹰捕猎策略(探索阶段)
鹭鹰以蛇为食时的捕猎行为通常分为三个阶段:寻找猎物、消耗猎物和攻击猎物。整个捕食过程分为三个相等的时间间隔,分别对应鹭鹰捕食的三个阶段:寻找猎物、消耗猎物和攻击猎物。
寻找猎物阶段的位置更新:
W h i l e t < 1 3 T , x i , j n e w P 1 = x i , j + ( x r a n d o m 1 − x r a n d o m 2 ) × R 1 X i = { X i n e w , P 1 , i f F i n e w , P 1 < F i X i , e l s e (1) While t<\frac{1}{3}T,x_{i,j}^{new P1}=x_{i,j}+\left(x_{random_1}-x_{random_2}\right)\times R_{1}\\ X_i=\left\{\begin{array}{l}X_i^{new,P1},if F_i^{new,P1}<F_i\\X_i, else\end{array}\right.\tag{1} Whilet<31T,xi,jnewP1=xi,j+(xrandom1−xrandom2)×R1Xi={Xinew,P1,ifFinew,P1<FiXi,else(1)
在消耗猎物阶段,引入布朗运动(RB)来模拟鹭鹰的随机运动,捕食阶段的位置更新:
R B = r a n d n ( 1 , D i m ) W h i l e 1 3 T < t < 2 3 T , x i , j n e w P 1 = x b e s t + exp ( ( t / T ) ∧ 4 ) × ( R B − 0.5 ) × ( x b e s t − x i , j ) X i = { X i n e w , P 1 , i f F i n e w , P 1 < F i X i , e l s e (2) RB=randn(1,Dim)\\ While \frac{1}{3}T<t<\frac{2}{3}T, x_{i,j}^{new P1}=x_{best}+\exp\left((t/T)\wedge4\right)\times(RB-0.5)\times\left(x_{best}-x_{i,j}\right)\\ X_{i}=\left\{\begin{array}{l}{{X_{i}^{new,P1},if F_{i}^{new,P1}<F_{i}}}\\{{X_{i}, else}}\end{array}\right.\tag{2} RB=randn(1,Dim)While31T<t<32T,xi,jnewP1=xbest+exp((t/T)∧4)×(RB−0.5)×(xbest−xi,j)Xi={Xinew,P1,ifFinew,P1<FiXi,else(2)
鹭鹰在攻击猎物阶段的位置更新:
W h i l e t > 2 3 T , x i , j n e w P 1 = x b e s t + ( ( 1 − t T ) ∧ ( 2 × t T ) ) × x i , j × R L X i = { X i n e w , P 1 , i f F i n e w , P 1 < F i X i , e l s e (3) While t>\frac{2}{3}T, x_{i,j}^{new P1}=x_{best}+\left(\left(1-\frac{t}{T}\right)\wedge\left(2\times\frac{t}{T}\right)\right)\times x_{i,j}\times RL\\ X_i=\left\{\begin{array}{ll}X_i^{new,P1},if F_i^{new,P1}<F_i\\X_i, else\end{array}\right.\tag{3} Whilet>32T,xi,jnewP1=xbest+((1−Tt)∧(2×Tt))×xi,j×RLXi={Xinew,P1,ifFinew,P1<FiXi,else(3)
为了提高算法的优化精度,作者使用加权Levy飞行:
R L = 0.5 × L e v y ( D i m ) (4) \mathrm{RL}=0.5\times Levy(Dim)\tag{4} RL=0.5×Levy(Dim)(4)
鹭鹰逃生策略(开发阶段)
当遇到这些威胁时,鹭鹰通常采用各种逃避策略来保护自己或它们的食物。这些策略大致可以分为两大类,第一种策略是逃跑或快速奔跑,第二种策略是伪装。
其中C1代表第一种策略,C2代表第二种策略:
x i , j n e w , P 2 = { C 1 : x b e s t + ( 2 × R B − 1 ) × ( 1 − t T ) 2 × x i , j , i f r a n d < r i C 2 : x i , j + R 2 × ( x r a n d o m − K × x i , j ) , e l s e X i = { X i n e w , P 2 , i f F i n e w , P 2 < F i (5) \left.x_{i,j}^{new,P2}=\left\{\begin{array}{l}C_{1}:x_{best}+(2\times RB-1)\times\left(1-\frac{t}{T}\right)^{2}\times x_{i,j},if r and <r_{i}\\C_{2}:x_{i,j}+R_{2}\times\left(x_{random}-K\times x_{i,j}\right),else\end{array}\right.\right.\\X_{i}=\left\{\begin{array}{l}X_{i}^{new,P2},if F_{i}^{new,P2}<F_{i}\end{array}\right.\tag{5} xi,jnew,P2={C1:xbest+(2×RB−1)×(1−Tt)2×xi,j,ifrand<riC2:xi,j+R2×(xrandom−K×xi,j),elseXi={Xinew,P2,ifFinew,P2<Fi(5)
参数K表示整数1或2的随机选择:
K = r o u n d ( 1 + r a n d ( 1 , 1 ) ) (6) K=round(1+rand(1,1))\tag{6} K=round(1+rand(1,1))(6)
伪代码
3.结果展示
4.参考文献
[1] Fu Y, Liu D, Chen J, et al. Secretary bird optimization algorithm: a new metaheuristic for solving global optimization problems[J]. Artificial Intelligence Review, 2024, 57(5): 1-102.
5.代码获取
资源清单