1.背景
2024年,W Zhang受到清道夫自然行为启发,提出了清道夫优化算法(Cleaner Fish Optimization Algorithm, CFO)。
2.算法原理
2.1算法思想
CFO模拟了清道夫在进行“清洁服务”时的移动行为,以及雌鱼变性为雄鱼的行为,并定义了两种位置更新模式。此外,还提出了一种两代循环操作策略来实现优化过程。
2.2算法过程
CFO采用三次混沌映射对算法进行初始化,保持了算法的多样性,提高了算法的全局搜索能力:
r k + 1 , j = 4 r k , j 3 − 3 r k , j , − 1 < r 1 , j < 1 , r k , j ≠ 0 k = 1 , 2 , . . . , N − 1. j = 1 , 2 , . . . , d (1) \begin{aligned}&r_{k+1,j}=4r_{k,j}^3-3r_{k,j},\quad-1<r_{1,j}<1,\quad r_{k,j}\neq0\\&k=1,2,...,N-1.\quad j=1,2,...,d\end{aligned}\tag{1} rk+1,j=4rk,j3−3rk,j,−1<r1,j<1,rk,j=0k=1,2,...,N−1.j=1,2,...,d(1)
种群初始化:
X i , j = l b i , j + ( u b i , j − l b i , j ) ⋅ ( r i , j + 1 2 ) (2) X_{i,j}=lb_{i,j}+(ub_{i,j}-lb_{i,j})\cdot\left(\frac{r_{i,j}+1}2\right)\tag{2} Xi,j=lbi,j+(ubi,j−lbi,j)⋅(2ri,j+1)(2)
CFO 提出了两代循环策略:分别是目标追踪和性别转换。一代采用目标追踪更新模式以实现“清洁服务”。而在下一代中,前三分之二的个体采用目标追踪更新模式,其他个体采用性别转换更新模式。
目标追踪
清道夫目标追踪行为:
X i , j t + 1 = X i , j t + V i , j t (2) X_{i,j}^{t+1}=X_{i,j}^t+V_{i,j}^t\tag{2} Xi,jt+1=Xi,jt+Vi,jt(2)
清道夫速度:
V i , j t + 1 = V i , j t + ( X i , j t − X b e s t , j ) ⋅ f (3) V_{i,j}^{t+1}=V_{i,j}^t+(X_{i,j}^t-X_{best,j})\cdot f\tag{3} Vi,jt+1=Vi,jt+(Xi,jt−Xbest,j)⋅f(3)
f为每个个体对应的频率:
f = f m i n + ( f m a x − f m i n ) ⋅ r 1 (4) f=f_{min}+(f_{max}-f_{min})\cdot r_1\tag{4} f=fmin+(fmax−fmin)⋅r1(4)
其中fmin, fmax分别为最小和最大频率。它们分别被设置为0和10。为了增强算法的探索能力,引入了随机行走策略:
X i , j = { X b e s t , j + 0.1 ⋅ r a n d ⋅ α t , i f r 2 < r X i , j t , o t h e r w i s e (5) X_{i,j}=\begin{cases}X_{best,j}+0.1\cdot rand\cdot\alpha^{t},&if\quad r_{2}<r\\X_{i,j}^{t},&otherwise&&\end{cases}\tag{5} Xi,j={Xbest,j+0.1⋅rand⋅αt,Xi,jt,ifr2<rotherwise(5)
参数表述为:
α t + 1 = 0.97 × α t (6) \alpha^{t+1}=0.97\times\alpha^t\tag{6} αt+1=0.97×αt(6)
α \alpha α表示清道夫的清洁能力,也表示随着迭代次数的增加,清道夫的清洁能力下降。r为自适应参数:
r = 1 − e − γ ⋅ t (7) r=1-e^{-\gamma\cdot t}\tag{7} r=1−e−γ⋅t(7)
性别转换
在鱼类群体中,当雄性死亡时,雌性可能会改变性别,成为新的雄性。基于这种行为,本文提出了性别转换更新模式:
X i , j t + 1 = w ⋅ X i , j t + r 3 ⋅ ( X i , j t − X b e s t , j ) (8) X_{i,j}^{t+1}=w\cdot X_{i,j}^t+r_3\cdot(X_{i,j}^t-X_{best,j})\tag{8} Xi,jt+1=w⋅Xi,jt+r3⋅(Xi,jt−Xbest,j)(8)
w为自适应权值,用于平衡探索和开发:
w = ( w m a x − w m i n ) e t T + w m i n (9) w=(w_{max}-w_{min})^{e^{\frac tT}}+w_{min}\tag{9} w=(wmax−wmin)eTt+wmin(9)
鱼类种群行为
清道夫是群居动物,为了表现这种行为,引入了准反射反向学习策略:
X i , j = r 4 × ( X i , j t − u b i , j + l b i , j 2 ) − u b i , j + l b i , j 2 (10) X_{i,j}=r_{4}\times\left(X_{i,j}^{t}-\frac{ub_{i,j}+lb_{i,j}}{2}\right)-\frac{ub_{i,j}+lb_{i,j}}{2}\tag{10} Xi,j=r4×(Xi,jt−2ubi,j+lbi,j)−2ubi,j+lbi,j(10)
流程图
伪代码
3.结果展示
4.参考文献
[1] Zhang W, Zhao J, Liu H, et al. Cleaner fish optimization algorithm: a new bio-inspired meta-heuristic optimization algorithm[J]. The Journal of Supercomputing, 2024: 1-39.
5.代码获取
资源清单