引言
根据"没有免费的午餐",没有一个单一的群体智能优化算法可以解决所有的优化问题,每一个群体智能优化算法都有局限性和限制。所以很多学者根据自身的专业问题需求,对基础优化算法进行了改进和提升,以期获得更为优秀的性能。那么你在尝试改进算法性能时,经常会遇到:
改进没思路?
难度大?
代码复杂?
效率低?
bug多?
调试难?
本期分享另一个2025年10月最新改进策略--Trend-Aware Mechanism 趋势感知机制(TAM),该成果发表在著名SCI期刊 Applied Soft Computing (JCR1区,中科院2023年1区,2025年2区)。TAM是一个即插即用策略,无论老手还是新手,仅需粘贴复制,一行代码让你轻松改进所有优化算法。代码简单,清晰,集成度高,彻底告别上述改进没思路,难度大,bug多,调试难的各种困境。真效率之王!

数学建模
TAM机制利用历史搜索位置和适合度信息将趋势意识整合到搜索过程中。TAM通过分析先前迭代中种群的搜索轨迹来优化个体位置更新。此外,自适应协方差机制生成了结合随机性和稳定性的高维趋势向量,促进了更智能的更新策略。
这种更新机制依赖于两个历史矩阵:历史搜索位置矩阵search_history和适应度矩阵fitness_history。search_history是一个大小的三维矩阵(𝑁,𝑀𝑎𝑥_𝑖𝑡𝑒𝑟, 𝑑𝑖𝑚),表示𝑁个个体在𝑑𝑖𝑚维问题经过在𝑀𝑎𝑥_𝑖𝑡𝑒𝑟次迭代。fitness_history是一个大小的二维矩阵(𝑁,𝑀𝑎𝑥_𝑖𝑡𝑒𝑟)。更新机制包括以下步骤:
-
迭代约束:该机制仅在迭代次数i >𝑛时激活,确保至少有𝑛代历史数据可用于趋势估计。
-
趋势点计算:通过连接上次迭代的搜索位置(𝚜𝚎𝚊𝚛𝚌𝚑_𝚑𝚒𝚜𝚝𝚘𝚛𝚢)来构造一条直线
(𝑗,𝑖−1,∶),与前面的迭代,𝚜𝚎𝚊𝚛𝚌𝚑_𝚑𝚒𝚜𝚝𝚘𝚛𝚢(𝑗,𝑖−2,∶)。从历史数据中确定离这条线最近的𝐾点,并将选择限制在第一个𝑛最近的搜索中,以尽量减少计算。
-
向量生成:计算指向历史位置的向量𝐕,并使用自适应协方差机制生成随机向量𝐕'。
-
适应度比较与更新:将𝐾最近点的适应度值与当前位置和历史位置的适应度值进行比较,确定算法更新的方向'。
距离计算:
构造直线的参数方程,通过计算直线的距离来确定直线的最近点。让P代表搜索历史中的一个点,并且从P到该线的距离𝑑可以使用以下公式计算

自适应协方差机制
在高维空间中,随机生成的偏移向量会显著影响搜索效率,因为这些空间的复杂性增加了平衡探索和利用的挑战。如果不自适应调整这些偏移量的方向和大小,算法可能会由于过度探索或过早收敛到局部最优而效率低下。为了解决这个问题,提出的机制结合了一种基于协方差的自适应方法,该方法根据当前的分布调整偏移向量𝐕'。
首先,向量𝐕指向历史位置的方向,计算如下:

自适应协方差机制用于生成高维向量𝐕',协方差矩阵𝛴是基于当前位置计算的种群比例

以𝐕作为方向参考,随机矢量𝑍沿着𝐕的方向被引导,得到偏移矢量𝐕'。

其中,时延α和时延β是用来平衡历史趋势和随机探索的权重

为确保𝐕'的大小等于𝐕,将𝐕'归一化如下:

自适应比较与更新
在𝐾最近点中,𝑖th点对应的适应度值为𝑓i,并与𝚜𝚎𝚊𝚛𝚌𝚑_𝚑𝚒𝚜𝚝𝚘𝚛𝚢(𝑗,𝑖−1,∶)和𝚜𝚎𝚊𝚛𝚌𝚑_𝚑𝚒𝚜𝚝𝚘𝚛𝚢(𝑗,𝑖−2,∶)的适应度值进行比较。执行如下

如果∑Fi<0,则表明较高的适应度值很可能位于两点之间。更新策略为:


如果∑Fi>0,则表明两个点之间存在较差的适应度值,则更新策略为

TAM图形化解释:

伪代码:

将TAM与四种著名的元启发式算法(PSO、SHADE、JaDE和CMA-ES)集成,并进行了广泛的参数敏感性分析,以确保鲁棒性。跨五个性能指标的比较评估表明,TAM显著提高了搜索效率,并始终在标准基准函数上获得优越的结果。并通过工程设计、特征选择、光伏模型参数提取等实际问题验证TAM的实用性。

参考文献
Lian, Junbo Jacob, et al. "Trend-Aware Mechanism for Metaheuristic Algorithms." Applied Soft Computing, vol. 182, Oct. 2025, p. 113505, https://doi.org/10.1016/j.asoc.2025.113505.
Matlab代码下载
微信搜索并关注-优化算法侠(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
完整代码


点击链接跳转:
400多种优化算法免费下载-matlab
求解cec测试函数-matlab
cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!
215种群智能优化算法python库
解决12工程设计优化问题-matlab
求解11种cec测试函数-python
解决30种工程设计优化问题-python
《一行破万法》:80余种改进策略仅需一行,可改进所有优化算法(附matlab代码)
【有经典,有最新】24种信号分解方法(附matlab代码)
【分类新范式】28种一维数据转换成二维图像的方法-matlab代码
2025年故障诊断的创新思路在哪里?赶紧来学习这28种创新方法!https://mp.weixin.qq.com/s/EdRYeziIhnZE5zK0ZZhwmg