捕鱼优化算法:一种解决聚类问题的新型人类行为算法
捕鱼优化算法:一种解决聚类问题的新型人类行为算法
2024年,H Jia受到人类捕鱼行为启发,提出了捕鱼优化算法(Catch Fish Optimization Algorithm, CFOA)。该算法模拟农村渔民在池塘中捕鱼的过程,通过探索阶段和开发阶段两个主要阶段,实现对聚类问题的优化求解。本文将详细介绍CFOA的算法原理、过程和应用。
1.背景
2024年,H Jia受到人类捕鱼行为启发,提出了捕鱼优化算法(Catch Fish Optimization Algorithm, CFOA)。
2.算法原理
2.1算法思想
CFOA模拟农村渔民在池塘中捕鱼的过程,主要分为两个阶段:探索阶段和开发阶段。在探索阶段,有两个搜索阶段:首先是基于个人经验和直觉的个体捕捉阶段,其次是基于人类使用工具和协作的熟练程度的群体捕捉阶段。从独立搜索转向探索阶段的群体捕捉。开发阶段:所有渔民将围绕鱼群,共同作业以打捞剩余的鱼,这是一种集体捕获策略。
2.2算法过程
探索阶段(EFs/MaxEFs<0.5)
随着时间推移,鱼类减少导致捕捞率下降。渔民开始时独立搜索,后逐渐转为依赖群体包围策略。环境优势从鱼转移到渔民,体现在水浊度增加和鱼类可见度降低。这一转变通过捕捞率参数α模拟:
$$
\alpha=\left(1-\frac{3\times EFs}{2\times MaxEFs}\right)^{\frac{3\times EFs}{2\times MaxEFs}}\tag{1}
$$
独立搜索(p < a)
渔民在寻找鱼群时会扰动水面,造成混浊环境,并依据水面涟漪独立判断鱼群位置。他们根据捕捞情况调整探索策略:若本地捕捞情况良好,则集中本地搜索;若参考区域捕捞情况更佳,则向该方向搜索;个人捕捞良好时,执行反向搜索:
$$
\begin{aligned}
&Exp=\frac{fit_{i}-fit_{p}}{fit_{\mathrm{max}}-fit_{\mathrm{min}}} \
&R=Dis\times\sqrt{|Exp|}\times(1-\frac{EFs}{MaxEFs}) \
&Fisher_{i,j}^{T+1}=Fisher_{i,j}^{T}+\left(Fisher_{pos,j}^{T}-Fisher_{i,j}^{T}\right)\times Exp \
&+r_{\mathrm{s}}\times s\times R
\end{aligned}\tag{2}
$$
群体捕获(p>=a)
渔民利用渔网和协作策略增强捕鱼效率,通过形成小组包围鱼群。他们的移动会根据个人健康和团队互动调整,目标是减少移动偏差,提高探索精度:
$$
\begin{gathered}
Centre_{c}=mean(Fisher_{\mathrm{c}}^{\mathrm{T}}) \
Fisher_{c,i,j}^{T+1}=Fisher_{c,i,j}^{T}+r_{2}\times\left(Centre_{c}-Fisher_{c,j}^{T}\right) \
+\left(1-\frac{2\times EFs}{MaxEFs}\right)^{2}\times r_{3}
\end{gathered}\tag{3}
$$
开发阶段(EFs/MaxEFs>=0.5)
渔民通过统一策略和战略性合作提高捕捞效率,他们将散落和隐藏的鱼驱赶至集中地点进行包围。在捕鱼过程中,渔民分布以鱼群为中心,向外逐渐稀疏。中心渔民负责捕捞鱼群,外围渔民捕捞逃逸鱼:
$$
\begin{aligned}
&\sigma=\sqrt{\left(2\left(1-\frac{EFs}{MaxEFs}\right)/\left(\left(1-\frac{EFs}{MaxEFs}\right)^{2}+1\right)\right)}\
&Fisher_{i}^{T+1}=Gbest\
&+GD\left(0,\frac{r_{4}\times\sigma\times|mean(Fisher)-Gbest|}{3}\right)
\end{aligned}\tag{4}
$$
流程图
伪代码
3.结果展示
4.参考文献
[1] Jia H, Wen Q, Wang Y, et al. Catch fish optimization algorithm: a new human behavior algorithm for solving clustering problems[J]. Cluster Computing, 2024: 1-38.