个人学习笔记,仅供参考。
0 参考文献
[1]Tian Z, Gai M. Football team training algorithm: A novel sport-inspired meta-heuristic optimization algorithm for global optimization[J]. Expert Systems with Applications, 2024, 245: 123088.
1 算法背景
最早和最受欢迎的优化算法是遗传算法(GA)和粒子群优化(PSO)。遗传算法是一种模拟自然选择的优化算法,它通过模拟自然选择和自然遗传学过程中的繁殖、杂交和突变现象,不断淘汰落后的个体,以维持种群的良好状态,最终获得最优解。PSO是通过模拟鸟群的捕食行为而设计的,所有的鸟儿都想找到食物,在整个搜索过程中,它们不断地将各自位置的信息传递给彼此,让其他鸟儿知道食物来源的位置,最后,鸟群可以聚集在食物源周围,以获得全局最优解。
从2010年到2020年,基于动物行为的优化算法逐渐走进大家的视野,如灰狼优化(GWO) 、鲸鱼优化算法 (WOA) 和蚱蜢优化算法 (GOA)。这些算法在大多数测试函数上的性能都远优于 GA、DE 等,进一步提高了元启发式算法的性能。此外,还有一类优化算法从体育运动中汲取灵感,因为合作通常对于团队的最佳表现至关重要。例如,足球队优化(SGO)模拟了球员的行为,并通过两个操作器实现了强大的信息共享能力。排球超级联赛算法(VPL)灵感来自于一个赛季中排球队的竞争和互动,可以有效解决复杂搜索空间的问题;团队比赛算法 (TGA) 模拟了篮球等所有需要团队合作的运动,并通过博弈论的思想获得了出色的优化结果。
尽管已经开发了大量元启发式算法,但目前的算法仍然存在一些问题。例如,PSO 算法对参数的设置很敏感,如果参数设置不当,很容易导致优化结果的恶化。然而,在实际应用中,很少有人知道如何正确设置参数,导致算法往往无法产生差异。此外,一些算法导致在求解一些复杂函数的过程中效果不佳。例如,GA 在算法的初始阶段效果很好,但在后期较弱,因此很难得到真正的全局最优解。
为了改善上述不足,提出了一种新的元启发式优化算法——足球队训练算法(FTTA),通过模拟足球课,分阶段训练球员,提高球员达到最佳优化效果的能力。该算法具有良好的收敛能力,在几组测试函数(CEC2005、CEC2020)上的性能远优于 GWO 和 WOA 等经典算法。
FTTA(Football team training algorithm)即足球队训练优化算法,是一种基于体育运动启发的新型元启发式优化算法。该成果于2024年1月在线发表、2024年7月正式发表在中科院1区SCI期刊Expert Systems with Applications。其灵感来自足球队的训练过程,将训练分为集体训练、小组训练和个人额外训练三个阶段,通过不断迭代优化,提高算法的收敛能力,最终得到全局最优解。算法旨在通过模拟足球团队的分阶段训练(集体训练→小组训练→个体强化训练),平衡全局搜索与局部开发能力,提高收敛速度和精度。
2 算法原理
2.1 核心步骤
在集体训练阶段,将球员分为追随者、发现者、思考者和波动者四种类型,每种类型的球员有不同的训练方式。集体训练结束后,进入分组训练阶段,教练根据球员的特点将球员分为四类,采用自适应聚类方法将球员分为四个组别,每个球员在组内有最优学习、随机学习和随机交流三种训练状态。此外,引入了一个小概率的随机误差机制。在分组训练结束后,重新计算新适应度值并更新状态,教练选择最佳球员进行额外训练,这里使用高斯-柯西联合变异描述个人额外训练,早期采用柯西分布以提供较大改进范围,后期则更多依赖高斯分布以实现局部搜索。
2.2 集体训练阶段
2.2.1 行为模式
- 追随者:当前最佳球员的热心追随者,他们努力在每个维度上接近最佳球员,但由于能力限制,通常只能随机地向最佳球员移动。
-
发现者:比跟随者更理性,他们不仅看到最好的球员,也看到最差的球员,所以他们不仅努力成为最好的球员,而且尽力避免成为最差的球员。
-
思考者:比前面的人更加警觉,他们直接看到最优秀球员与最差球员之间的差距,并努力在各个维度上达到这个差距。
-
波动者:拒绝向任何人学习,而是自己进行训练,因此状态会发生一定程度的波动。当然,随着训练次数(Iterations)的增加,球员状态的波动会越来越小。
2.2.2 位置更新公式
-
追随者更新公式:
其中,rand为呈正态分布的随机数,当前最佳球员被定义为Fkbest,其中k是迭代次数,Fkbest,j是其在维度j上的值;当前球员定义为Fki,i是其球员数量,Fki,j是其在维度j上的值,Fki,jnew是球员在训练后在维度j的状态。
- 发现者更新公式
其中当前最差的球员被定义为Fkworst,k是迭代次数,其中Fkworst,j是其在维度j中的值。Fki,jnew是球员在训练后在维度j上的状态。
- 思考者更新公式
在维度j中, Fkbest,j - Fkworst,j是当前最佳球员和最差球员之间的差向量,k是迭代次数。
- 波动者更新公式
其中,t(k)是一个具有t分布的随机数,其自由度为当前迭代次数,随着自由度的增加,t分布接近中间值(0)的概率越来越高,两端的分布逐渐减小,将越来越接近正态分布。因此,随着迭代次数的增加,波动程度会越来越小,并逐渐从全局搜索变为局部搜索。
- 示意图
2.3 分组训练阶段
集体训练完成后,足球训练过程进入分组训练阶段,教练员根据球员的特点(每个维度都是一个特征值)将球员分为前锋、中场、后卫和守门员四类。在分组训练中,采用MGEM自适应聚类方法(MixGaussEM),通过聚类的方法模拟教练员的行为,将人群根据自身特点分为四类。如下:(其中Teamnumber⩾2,这是每组中的最小人数。如果组的人数数量小于这个值,则无法实施组训练。一旦发生这种情况,教练将进行第二次分组,采用均匀随机分组的策略,将球员随机均匀地分为四组。)
每个小组中的球员将与小组中的其他球员进行学习或交流。群体训练定义为三种状态:最优学习、随机学习和随机交流。我们将学习概率定义为pstudy,交流概率为pcomm,球员将在每次迭代中随机选择状态。
2.3.1 最优学习
其中是𝐹𝑏𝑒𝑠𝑡𝑘,𝑡𝑒𝑎𝑚𝑙F_best^(k,teaml)组l中最好的球员,k是迭代次数,teaml代表组l, 𝐹𝑏𝑒𝑠𝑡,𝑗𝑘,𝑡𝑒𝑎𝑚𝑙F_(best,j)^(k,teaml)是组l最好球员的第j维, 𝐹𝑖,𝑗𝑘,𝑡𝑒𝑎𝑚𝑙 F_(i,j)^(k,teaml) new是球员在最优学习后在第j维中的状态。
2.3.2 随机学习
其中𝐹Random𝑘,𝑡𝑒𝑎𝑚𝑙F_Random^(k,teaml)是组l中的随机球员,k是迭代次数,teaml表示组l, 𝐹𝑅𝑎𝑛𝑑𝑜𝑚,𝑗𝑘,𝑡𝑒𝑎𝑚𝑙F_(Random,j)^(k,teaml)是组l的随机球员的第j维, 𝐹𝑖,𝑗𝑘,𝑡𝑒𝑎𝑚𝑙 F_(i,j)^(k,teaml) new是随机学习后球员在第j维中的状态。
2.3.3 随机交流
- 当rand≤pcomm时,公式定义如下:
-
当rand>pcomm时,公式定义如下:
其中𝐹Random𝑘,𝑡𝑒𝑎𝑚𝑙F_Random^(k,teaml)是l组中的一个随机球员,k是迭代次数,teaml代表第l组, 𝐹Random,𝑗𝑘,𝑡𝑒𝑎𝑚𝑙 F_(Random,j)^(k,teaml) 是第l组随机球员的第j维,两个球员在第j维中交换了他们的能力。Randn是一个正态分布的随机数,乘以(1+Randn)表示两个球员对他人能力的理解。
2.3.4 随机误差
假设在小组训练过程中,有一定的概率会出现错误,即他们不小心学会了他人其他维度的内容。出现这种情况的可能性很低,但这是真实和客观的。错误概率定义为perror。
2.4 个人训练阶段
在团体训练结束后,需要重新计算新的体能值,用较好的体能值替代较差的体能值,以更新队员的状态。更新后教练会选出最好的队员,让他继续训练,让他变得更好,这样才能更好地带动其他人的训练状态。
柯西(Cauchy)和高斯(Gauss)联合变异用于描述个人额外训练,k是迭代次数。之所以选择高斯-柯西分布,是因为在训练的早期阶段,每个人的水平通常都不高,所以最好的球员获得更大提升的概率更大,此时柯西分布函数占据了很大的比例,可以有效地为球员提供大范围的提升,这有利于全局搜索。随着迭代次数的增加,球员能力的提升变得越来越困难,此时高斯分布占比较大的比例,球员的提升范围逐渐减小,更有利于局部搜索。
2.5 算法流程
2.5.1 流程图
2.5.2 算法流程
1. 初始化阶段
-
种群生成:随机生成初始种群(即 “球员” 个体),每个个体代表优化问题的一个潜在解。
-
适应度计算:对每个个体计算适应度值,评估其在目标问题中的优劣(如优化目标函数值)。
2. 迭代优化阶段(循环直至达到最大迭代次数 MaxGen)
(1)集体训练
-
角色划分:将种群个体分为四类角色 ——追随者(Followers)、波动者(Volatilities)、发现者(Discoverers)、思考者(Thinkers),每类角色执行不同的更新策略:
-
追随者:向当前最优解学习,调整自身位置。
-
波动者:通过随机扰动探索新区域,避免局部收敛。
-
发现者:基于最优解与最差解的差异,扩大搜索范围。
-
思考者:综合最优解与自身位置,平衡探索与开发。
-
-
最优 / 最差定位:迭代中实时记录当前种群的最优解(最佳球员)和最差解。
(2)分组训练
-
聚类分组:通过 MGEM(MixGaussEM)聚类算法 对种群分组,计算每组规模(Size)。
-
若组规模满足预设团队数量(Team number),则保持分组;
-
若不满足,采用随机均匀分组,确保分组合理性。
-
-
组内训练策略:每组个体执行四种训练策略 ——随机误差(Random Error)、随机交流(Random Communication)、随机学习(Random Learning)、最优学习(Optimal Learning),通过信息交互提升组内个体质量。
(3)更新与额外训练
-
适应度重计算:分组训练后重组种群,重新计算所有个体的适应度值。
-
个体更新:根据新适应度更新个体状态,保留更优解。
-
个人额外训练:筛选当前最优个体,对其进行强化训练(如高斯 - 柯西变异),进一步挖掘局部最优潜力。
-
最优解判断:比较新旧最优解,若新解更优则更新全局最优;否则保留原最优解,确保算法稳定性。
3. 输出结果
迭代结束后,输出最终优化结果(即全局最优解),完成算法流程。整个流程通过模拟足球队训练的分工协作,将优化过程拆解为集体探索、分组细化、个体强化,最终实现全局最优解的高效搜索,适用于工程优化、参数调优等复杂问题。
3 测试函数分析
3.1 测试函数_CEC2005
- FTTA 算法的性能通过一组测试函数CEC2005来验证。参与比较的优化算法包括目前广泛使用的GWO和WOA,以及早期的算法PSO,DE。迭代次数为 500,种群数为 50。
-
(1)CEC20005_F1
FTTA 曲线在迭代初期(前 100 次)快速下降,收敛速度远超 PSO、DE 等算法。其他算法(如 PSO)后期收敛停滞,而 FTTA 凭借“追随者”向最优解快速学习的机制,精准抵达全局最优。
(2)CEC20005_F2
FTTA 收敛曲线始终保持陡峭下降趋势,最终函数值趋近于 0(理论最优),且波动极小。对比算法(如 GWO)在后期收敛速度明显放缓,FTTA 通过“思考者”策略平衡搜索方向,确保高精度收敛。
(3)CEC20005_F3
(4)CEC20005_F4
FTTA 曲线随迭代持续下降,对不同权重变量的优化更均衡。例如,在 200 次迭代后,FTTA 的函数值已显著低于其他算法,证明其能有效处理变量权重差异,通过动态角色切换(如“发现者”扩大搜索范围)提升优化效率。
(5)CEC20005_F8
FTTA 前期通过“波动者”的随机扰动跳出局部最优,后期依赖“分组训练”的信息交互,持续优化。在 500 次迭代内,FTTA 函数值仍持续下降,而 WOA 等算法则在第300次迭代后停滞,凸显其全局搜索优势。
(6)CEC20005_F9
FTTA 算法收敛曲线在第50次迭代之后达到全局最优,WOA算法收敛曲线则在第200次迭代之后达到全局最优,说明FTTA算法显著优于其他算法。
(7)CEC20005_F10
FTTA 算法收敛速度很快,曲线波动幅度较小,始终向最优值逼近。即使在噪声干扰下,通过“随机学习”和“最优学习”策略的结合,证明其在复杂环境下的稳定性。
(8)CEC20005_F11
FTTA 曲线在迭代中持续优化,通过“分组训练”的跨组信息交 流,逐步逼近山谷底部的最优解。相比之下,WOA 等算法易在山谷两侧停滞,FTTA 的“动态角色切换”机制更好地平衡了探索与开发。
(9)CEC20005_F14
FTTA 在前期快速下降,后期通过“个人额外训练”对精英个体强化搜索,最终收敛值显著优于其他算法。例如,在 500 次迭代后,FTTA 的函数值接近全局最优,而 WOA 等陷入局部最优,体现其处理复杂函数的高效性。
3.2 小结
- 优势场景:
FTTA 在单峰、多峰及复合函数中均表现突出,尤其擅长处理高维、噪声、旋转等复杂优化问题(如 F10-F14)。
核心机制:
- 角色分工:追随者加速收敛,波动者增强探索,分组训练提升多样性。
- 混合策略:高斯 - 柯西变异强化局部搜索,MGEM 聚类避免早熟收敛。
对比算法短板:
PSO 易早熟、DE 依赖参数、GWO 开发不足,而 FTTA 通过多阶段协同规避了这些问题。
4 工程应用案例
4.1 混合风速预测系统流程图
4.2 系统流程
1. 数据采集与预处理
- 在中国辽宁省大连市及周边的大规模风电站(如庄河)采集风速数据,共 1600 组数据。
- 前 1500 组数据用作训练集,后 100 组数据用作测试集。风速测量频率为每 10 分钟一次。2. 采用 FTTA 算法进行优化
2.FTTA 分角色优化风速预测模型
- Followers(跟随者):基于最优个体进行更新。
- Discoverers(探索者):引入随机扰动增加搜索范围。
- Thinkers(思考者):基于群体信息调整策略。
- Volatilities(波动者):加入动态扰动提高鲁棒性。
3.训练方式
- 集体训练(Collective Training):所有个体参与优化。
- 分组训练(Group Training):划分不同小组进行对比实验,提高整体训练效果。
- 个别额外训练(Individual Extra Training):针对最优个体进行精细调整。
4. 预测模型的构建与评估
- 选择数据:基于 VMD 进行特征分解,以减少数据噪声,提高预测准确性。
- 使用 FTTA-VMD 结合不同模型进行风速预测,包括:FTTA-VMD-ARIMA(自回归移动平均模型)、FTTA-VMD-CNN(卷积神经网络)、FTTA-VMD-GRU(门控循环单元)、FTTA-VMD-BP(BP 神经网络)
- 评估指标(Evaluation Index):使用平均绝对百分比误差(MAPE)、平均绝对误差(MAE)、和平方误差(SSE)、均方误差(MSE)、均方根误差(RMSE)、归一化均方误差(NMSE)等指标来评估模型性能。
5. 运行时间与优化讨论
使用 CEC 测试函数进行进一步评估,并展示了不同处理器(P1 - P3)的 CPU 运行时间对比。
4.3 总结
该风速预测框架利用 FTTA 算法进行优化,并结合 VMD 进行数据分解,有效提高了预测精度。通过多种机器学习模型的对比评估,最终选择最佳方法用于实际风速预测,具有较强的实用价值。
5 思考
算法前期引入的随机参数太多,是否会不可避免地导致迭代次数过多、调参过程复杂。