迁移行为,也就是探索部分,主要分为三个部分:冲突避免,聚集和更新。
(1)冲突避免:
c s t = S A ∗ P s t ( Z ) (1) c_{st} = S_A*P_{st}(Z) \tag{1} cst=SA∗Pst(Z)(1)
其中, p s t p_{st} pst表示乌燕鸥的当前位置, c s t c_{st} cst表示的是在不与其他乌燕鸥碰撞的情况下应当处于的位置, S A S_A SA代表了一个避免碰撞的变量因素,用来计算避免碰撞后的位置,它的约束条件如公式(2)
S A = C f − ( Z ∗ ( C f / M a x i t e r a t i o n s ) ) (2) S_A=C_f-(Z*(C_f/Max_{iterations}))\tag{2} SA=Cf−(Z∗(Cf/Maxiterations))(2)
其中, C f C_f Cf是用来调整 S A S_A SA的控制变量, Z Z Z表示当前迭代次数,因此 S A S_A SA 从 C f C_f Cf到 0 线性递减。本文中 C f C_f Cf的值设置为 2,因此, S A S_A SA将从 2 到 0 逐渐减小。
(2)聚集
聚集是指在避免冲突的前提下向相邻乌燕鸥中最好的位置靠拢,也就是向最优解的位置靠拢,其数学表达式如下:
m s t = C B ∗ ( p b s t ( Z ) − p s t ( Z ) ) (3) m_{st}=C_{B}*(p_{bst}(Z)-p_{st}(Z))\tag{3} mst=CB∗(pbst(Z)−pst(Z))(3)
其中 m s t m_{st} mst表示在不同位置的 p s t p_{st} pst最优解的位置 p b s t p_{bst} pbst移动的过程,
则 C B C_B CB是一个使探索更加全面的随机变量,按照以下公式变化:
C B = 0.5 ∗ R r a n d (4) C_{B}=0.5*R_{rand}\tag{4} CB=0.5∗Rrand(4)
其中, R r a n d R_{rand} Rrand是 0 到 1 之间的随机数。
(3) 更新
更新是指在朝向最优解的位置更新轨迹,其轨迹 d s t d_{st} dst的数学表达式为:
d s t = c s t + m s t (5) d_{st}=c_{st}+m_{st}\tag{5} dst=cst+mst(5)
在迁移过程中,乌燕鸥可以通过翅膀提高飞行高度也可以调整自身的速度和攻击角度,在攻击猎物的时候,它们在空中的盘旋
行为可定义为以下数学模型:
x ′ = R ∗ s i n ( i ) (6) x'=R*sin(i) \tag{6} x′=R∗sin(i)(6)
y ′ = R ∗ c o s ( i ) (7) y'=R*cos(i)\tag{7} y′=R∗cos(i)(7)
z ′ = R ∗ i (8) z' = R*i\tag{8} z′=R∗i(8)
R = u e k v (9) R = ue^{kv}\tag{9} R=uekv(9)
其中, R R R表示每个螺旋的半径, i i i 表示 [ 0 , 2 π ] [0,2\pi] [0,2π]之间的变量。 u u u 和 v v v 是定义其螺旋形状的常数,在本文中均设定为 1, e 则是自然对数的基底。乌燕鸥的位置将按照下面的公式不断更新:
p s t ( Z ) = ( d s t ∗ ( x ′ + y ′ + z ′ ) ) ∗ p b s t ( Z ) (10) p_{st}(Z)=(d_{st}*(x'+y'+z'))*p_{bst}(Z) \tag{10} pst(Z)=(dst∗(x′+y′+z′))∗pbst(Z)(10)
算法流程:
Step1. 初始化算法参数,迭代次数,种群数量等等。
Step2.计算适应度值。
Step3.乌燕鸥进行迁移操作
Step4.乌燕鸥进行攻击操作
Step5.乌燕鸥更新位置
Step6.计算适应度值,并记录全局最优值
Step7.判断是否达到结束条件,如果没有则重复步骤Step2-Step7,否则输出最终结果。
[1] Dhiman G, Kaur A. STOA: A bio-inspired based optimization algorithm for industrial engineering problems. Engineering Applications of Artificial Intelligence, 2019, 82:148-174.
[1]贾鹤鸣,李瑶,孙康健.基于遗传乌燕鸥算法的同步优化特征选择[J/OL].自动化学报:1-18[2020-12-29].https://doi.org/10.16383/j.aas.c200322.
https://mianbaoduo.com/o/bread/YZWblppy