动态多目标进化算法:基于知识转移和维护功能的动态多目标进化算法(KTM-DMOEA)求解CEC2018(DF1-DF14)

一、KTM-DMOEA介绍

在实际工程和现实生活中,许多优化问题具有动态性和多目标性,即目标函数会随着环境的变化而改变,并且存在多个相互冲突的目标。传统的多目标进化算法在处理这类动态问题时面临着一些挑战,如收敛速度慢、难以跟踪动态变化的 Pareto 前沿等。因此,需要开发新的算法来有效地解决 DMOPs。

基于知识转移和维护功能的动态多目标进化算法(Dynamic Multiobjective Evolutionary Optimization via Knowledge Transfer and Maintenance,KTM - DMOEA)是2024年提出的动态多目标进化算法(DMOEA),通过结合 KTP 和 KMS 策略,KTM - DMOEA 能够在新环境中生成高质量的初始种群,从而缓解负迁移问题,提高算法的整体性能。。

算法核心策略

  • 知识转移预测(KTP):这是一种判别式预测器,旨在减少不同环境之间的特征和分布差异。它能够从新环境中大量随机生成的解中分类出高质量的解,通过挖掘历史环境中的有用知识,为新环境提供有价值的信息,帮助算法更快地找到最优解。
  • 知识维护采样(KMS):这是一种生成式预测器,通过对最后一个环境中精英解的分布进行建模,根据动态变化趋势在新环境中采样出优质解。它可以有效地利用历史最优解的信息,生成更有可能接近最优解的新个体,从而提高算法的收敛速度和求解质量。

参考文献:Q. Lin, Y. Ye, L. Ma, M. Jiang and K. C. Tan, "Dynamic Multiobjective Evolutionary Optimization via Knowledge Transfer and Maintenance," in IEEE Transactions on Systems, Man, and Cybernetics: Systems, vol. 54, no. 2, pp. 936-949, Feb. 2024, doi: 10.1109/TSMC.2023.3322718.

二、动态多目标优化测试集CEC2018介绍

CEC2018 是由 IEEE 计算智能学会(IEEE CIS)主办的进化计算大会(CEC)在 2018 年发布的动态多目标优化测试集,主要用于评估动态多目标优化算法的性能。

  • 测试函数构成:CEC2018 共有 14 个测试函数,分别为 DF1 - DF14。其中,DF1 - DF9 是双目标函数,DF10 - DF14 是三目标函数。这些测试函数涵盖了多种不同的动态特性和复杂情况,能够全面地考察算法在不同类型动态多目标优化问题上的求解能力。
  • 应用场景:现实世界中许多优化问题既具有多目标性,又与时间相关,即随着时间的变化,优化问题本身也会发生改变,这类问题被称为动态多目标优化问题(DMOP)。CEC2018 测试集就是为了模拟这类现实问题而设计的,可用于评估各种进化算法或其他智能优化算法在解决动态多目标优化问题时的性能,帮助研究人员比较和改进算法,以更好地应对实际应用中的类似问题。
  • 评估指标:对于动态多目标优化问题,通常需要评估算法跟踪最优解随时间变化的能力,相关指标包括追踪误差和响应速度等。通过在 CEC2018 测试集上运行算法,并计算这些指标,可以定量地分析算法在动态环境下的性能表现,例如算法能否快速适应问题的变化,以及在跟踪动态 Pareto 前沿时的准确性和稳定性如何。

三、部分MATLAB代码及结果

复制代码
figure
if size(reskt{1,1}.turePOF,2)==2
    for i=1:size(reskt,2)
        AA=reskt{1,i}.POF_iter{1,10};
        AA=AA';
        BB=reskt{1,i}.turePOF;
        h1=plot(AA(:,1),AA(:,2),'r.');
        hold on
        h2=plot(BB(:,1),BB(:,2),'go');
    end
    % ylim([0 1])
    xlabel('f1')
    ylabel('f2')
    legend([h1 h2],'KTM-DMOEA','turePOF')
    title(['KTM-DMOEA求解' functions{testFuncNo}])
else
    for i=1:size(reskt,2)
        AA=reskt{1,i}.POF_iter{1,10};
        AA=AA';
        BB=reskt{1,i}.turePOF;
        h1=plot3(AA(:,1),AA(:,2),AA(:,3),'r.');
        hold on
        h2=plot3(BB(:,1),BB(:,2),BB(:,3),'go');
    end
    xlabel('f1')
    ylabel('f2')
    zlabel('f3')
    legend([h1 h2],'KTM-DMOEA','turePOF')
    title(['KTM-DMOEA求解' functions{testFuncNo}])
end

四、完整MATLAB代码见下方名片

相关推荐
爱代码的小黄人2 小时前
深入解析系统频率响应:通过MATLAB模拟积分器对信号的稳态响应
开发语言·算法·matlab
是僵尸不是姜丝6 小时前
每日算法:洛谷U535992 J-C 小梦的宝石收集(双指针、二分)
c语言·开发语言·算法
寒页_7 小时前
2025年第十六届蓝桥杯省赛真题解析 Java B组(简单经验分享)
java·数据结构·经验分享·算法·蓝桥杯
smile-yan8 小时前
拓扑排序 —— 2. 力扣刷题207. 课程表
数据结构·算法·图论·拓扑排序
空雲.8 小时前
牛客周赛88
数据结构·c++·算法
深度学习算法与自然语言处理8 小时前
单卡4090微调大模型 DeepSeek-R1-32B
深度学习·算法·大模型·微调·transformer·面试题
Y1nhl8 小时前
基础算法:滑动窗口_python版本
开发语言·python·算法·力扣·滑动窗口
烟锁池塘柳09 小时前
【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用
算法·数学建模
地平线开发者9 小时前
【征程 6】工具链 VP 示例中 Cmakelists 解读
算法·自动驾驶
邪神与厨二病9 小时前
2025蓝桥杯python A组题解
数据结构·c++·python·算法·蓝桥杯·单调栈·反悔贪心