目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.代码展示
- 4.参考文献
1.背景
2021年,Xie等人受到自然界中金枪鱼狩猎行为启发,提出了金枪鱼优化算法(Tuna swarm optimization,TSO)。
2.算法原理
2.1算法思想
TSO模拟了金枪鱼觅食行为,主要分为螺旋式觅食和抛物线觅食两种方式。
2.2算法过程
螺旋式觅食:
当目标难以锁定时,金枪鱼就会以密集的螺旋式阵型进行追捕。在追捕猎物的同时,金枪鱼群之间还会交换信息,实现相邻个体之间的信息共享。位置更新:
X i t + 1 = { c 1 ( X b e s t t + β ∣ X b e s t t − X i t ∣ ) + c 2 X i t , i = 1 c 1 ( X b e s t t + β ∣ X b e s t t − X i t ∣ ) + c 2 X i − 1 t , i = 2 , 3 , ⋯ , N (1) X_i^{t+1}=\begin{cases}\quad c_1\left(X_\mathrm{best}^t+\beta\left|X_\mathrm{best}^t-X_i^t\right|\right)+c_2X_i^t,\quad i=1\\c_1\left(X_\mathrm{best}^t+\beta\left|X_\mathrm{best}^t-X_i^t\right|\right)+c_2X_{i-1}^t,\quad i=2,3,\cdots,N\end{cases}\tag{1} Xit+1={c1(Xbestt+β∣Xbestt−Xit∣)+c2Xit,i=1c1(Xbestt+β∣Xbestt−Xit∣)+c2Xi−1t,i=2,3,⋯,N(1)
c1,c2为权重系数,表述为:
c 1 = a + ( 1 − a ) t t m a x c 2 = ( 1 − a ) − ( 1 − a ) t t m a x β = e b l cos ( 2 π b ) l = e 3 cos ( ( ( t max + 1 / t ) − 1 ) π ) (2) c_{1}=a+(1-a)\frac{t}{t_{\mathrm{max}}}\\ c_{2}=(1-a)-(1-a)\frac{t}{t_{\mathrm{max}}}\\ \beta=\mathrm{e}^{bl}\cos(2\pi b)\\ l=\mathrm{e}^{3\cos(((t_{\max}+1/t)-1)\pi)}\tag{2} c1=a+(1−a)tmaxtc2=(1−a)−(1−a)tmaxtβ=eblcos(2πb)l=e3cos(((tmax+1/t)−1)π)(2)
当最优个体无法找到食物时,在搜索空间中随机生成一个坐标:
X i t + 1 = { c 1 ( X r a n d t + β ∣ X r a n d t − X i t ∣ ) + c 2 X i t , i = 1 c 1 ( X r a n d t + β ∣ X r a n d t − X i t ∣ ) + c 2 X i − 1 t , i = 2 , 3 , ⋯ , N (3) X_i^{t+1}=\begin{cases}c_1\left(X_{\mathrm{rand}}^t+\beta\left|X_{\mathrm{rand}}^t-X_i^t\right|\right)+c_2X_i^t,i=1\\c_1\left(X_{\mathrm{rand}}^t+\beta\left|X_{\mathrm{rand}}^t-X_i^t\right|\right)+c_2X_{i-1}^t,i=2,3,\cdots,N\end{cases}\tag{3} Xit+1={c1(Xrandt+β∣Xrandt−Xit∣)+c2Xit,i=1c1(Xrandt+β∣Xrandt−Xit∣)+c2Xi−1t,i=2,3,⋯,N(3)
抛物线型觅食:
金枪鱼两种觅食方法交替使用,以提高金枪鱼捕获食物的概率假,设这两种方法随机选择概率为50%:
X i t + 1 = { X b e s t t + r a n d ( X b e s t t − X i t ) + T F ⋅ p 2 ( X b e s t t − X i t ) , i f r a n d < 0.5 T F ⋅ p 2 X i t , i f r a n d ⩾ 0.5 , (4) X_i^{t+1}=\begin{cases}X_\mathrm{best}^t+rand\left(X_\mathrm{best}^t-X_i^t\right)+TF\cdot p^2\left(X_\mathrm{best}^t-X_i^t\right),\quad ifrand<0.5\\TF\cdot p^2X_i^t,\quad if rand\geqslant0.5\end{cases},\tag{4} Xit+1={Xbestt+rand(Xbestt−Xit)+TF⋅p2(Xbestt−Xit),ifrand<0.5TF⋅p2Xit,ifrand⩾0.5,(4)
参数p表述为:
p = ( 1 − t t max ) ( t / t max ) (5) p=(1-\frac{t}{t_{\max}})^{(t/t_{\max})}\tag{5} p=(1−tmaxt)(t/tmax)(5)
流程图
伪代码:
3.代码展示
4.参考文献
[1] Xie L, Han T, Zhou H, et al. Tuna swarm optimization: a novel swarm-based metaheuristic algorithm for global optimization[J]. Computational intelligence and Neuroscience, 2021, 2021: 1-22.