动态多目标进化算法:TrRMMEDA求解CEC2018(DF1-DF14),提供完整MATLAB代码

一、TrRMMEDA简介

TrRMMEDA(Transfer Learning-based Regularity Model-based Multiobjective Estimation of Distribution Algorithm)是2017年提出的一种基于迁移学习的动态多目标优化算法。

算法背景

在动态多目标优化问题(DMOPs)中,目标函数、约束或参数会随时间变化,传统动态多目标进化算法(DMOEAs)面临难以快速跟踪最优解等问题。迁移学习可重用历史环境信息加速新环境搜索,但存在负迁移风险,即历史信息可能误导当前优化方向。TrRMMEDA 应运而生,旨在有效利用历史信息的同时避免负迁移。

算法原理

  • 迁移学习与分布估计结合 :将迁移学习引入基于分布估计的多目标优化算法(RM-MEDA)中,形成 TrRMMEDA。先利用迁移学习从历史环境知识中提取有价值信息,将其融入新环境的分布估计模型,使模型更准确捕捉新环境的 Pareto 最优前沿分布,进而生成更优质的初始种群,加速收敛。
  • 负迁移处理 :为避免负迁移,TrRMMEDA 采用信任区域等策略筛选和利用历史信息。只将与当前问题相关性高、可信度强的历史解纳入迁移学习过程,确保历史信息对当前优化有正面引导作用。
    在这里插入图片描述

在这里插入图片描述

算法步骤

  1. 初始化 :在初始时刻,随机生成初始种群,对种群中个体进行评价,计算其目标函数值和约束违反度等。
  2. 建立分布估计模型 :利用初始种群中的非支配解,基于 RM-MEDA 的原理建立分布估计模型,如采用主成分分析等技术对非支配解进行降维和特征提取,构建潜在空间中的概率分布模型。
  3. 种群生成与进化 :根据分布估计模型,在潜在空间中采样生成新个体,并将其映射回原决策空间,形成新种群。对新种群进行进化操作,包括选择、交叉、变异等。
  4. 环境变化检测 :在进化过程中持续监测环境是否发生变化,可通过监测目标函数值的变化率等指标来判断。
  5. 迁移学习触发 :当检测到环境变化时,触发迁移学习机制,将历史环境中的优质解筛选出来,将其与当前种群中的个体相结合,重新构建分布估计模型。
  6. 更新与重复 :利用新的分布估计模型生成新的种群,继续迭代优化过程,直至达到终止条件。

算法优势

  • 快速收敛 :借助迁移学习充分利用历史信息,使算法在环境变化后能快速适应并收敛到新的 Pareto 最优前沿,减少从随机初始种群开始的无效搜索时间。
  • 保持多样性 :注重在迁移学习过程中保持种群多样性,避免因过度依赖历史信息而导致种群早熟收敛,有效探索目标空间,得到具有广泛分布的 Pareto 最优解。
  • 较强的鲁棒性 :通过负迁移处理机制,对历史信息进行筛选和评估,确保迁移的知识对当前优化有积极影响,增强了算法在复杂动态环境下的鲁棒性。

算法局限性及应用场景

  • 局限性 :TrRMMEDA 的性能在一定程度上依赖于历史信息的质量和相关性,若历史信息与当前问题差异较大,可能影响算法效果。且该算法在处理多模态动态多目标优化问题时,可能会面临分布估计模型复杂度增加等挑战。
  • 应用场景 :适用于具有时间变化特性的多目标优化场景,如动态资源分配、动态路径规划、实时调度等领域,能够快速为决策者提供一组优质解,帮助其在动态环境中做出平衡决策。

参考文献

[1] Jiang M , Huang Z , Qiu L ,et al.Transfer Learning based Dynamic Multiobjective Optimization Algorithms[J].IEEE Transactions on Evolutionary Computation, 2017, 22(4):501-514.DOI:10.1109/TEVC.2017.2771451.

二、TrRMMEDA求解DF1-DF14

(1)CEC2018 动态多目标测试函数介绍

CEC2018 竞赛定义了 14 个动态多目标测试函数(DF1-DF14),分为两类:
在这里插入图片描述

  1. 双目标问题(DF1-DF9):这些函数具有两个目标,用于测试算法在动态环境下的性能。
  2. 三目标问题(DF10-DF14):这些函数具有三个目标,增加了优化的复杂性。

这些测试函数设计了不同的动态特性,以评估动态多目标优化算法的性能。动态特性包括:

  • 目标位置变化:Pareto 最优前沿(PF)或 Pareto 最优解集(PS)的位置随时间变化。
  • 约束条件变化:动态约束条件的引入或变化。
  • 目标数量或决策变量数量变化:在某些测试函数中,目标数量或决策变量数量可能随时间变化。
测试函数目标数量动态特性
DF12PF 的位置随时间线性移动
DF22PF 的位置随时间非线性移动
DF32PF 的位置和形状随时间变化
DF42PF 的位置和形状随时间剧烈变化
DF52PF 的凸性随时间变化
DF62PF 的凹性随时间变化,并引入局部最优解
DF72PF 的不同部分以不同方向和速度移动
DF82PF 的不同部分以不同方向和速度移动,且存在多个膝点
DF92PF 断裂成多个部分
DF103PF 的位置随时间移动
DF113PF 的位置和形状随时间变化
DF123PF 的位置和形状随时间剧烈变化
DF133PF 的凸性随时间变化
DF143PF 的凹性随时间变化,并引入局部最优解

参考文献:
[1] Jiang S , Yang S , Yao X ,et al.Benchmark Functions for the CEC’2018 Competition on Dynamic Multiobjective Optimization[J]. 2018.

(2)部分MATLAB代码

%% 计算POF
for i=1:size(ArchiveResult{1,1}{1,1},1)/(10*nt*taut)
    k1=1+(i-1)*(10*nt*taut);
    k2=k1+nt*taut;
    if prob_ids<110
        data=ArchiveResult{1,1}{1,1}(k1:k2,end-1:end);
    else
        data=ArchiveResult{1,1}{1,1}(k1:k2,end-2:end);
    end
    result(i).data=data;
    %     plot(data(:,1)+i,data(:,2)+i,'ro')
    %     hold on
end
%% 计算TurePOF
prob=problem(prob_ids);
k=1;
for t=0:1:100/taut-1
    PF(k).data=generatePF(prob,t);
    PF(k).t=t;
    k=k+1;
end

%% 画图
figure
Fm=size(PF,2);
Tm=size(PF(1).data,2);
if Tm<3
    for t=1:Fm

        plot(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,'ro');
        hold on
        plot(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,'g.');

    end

    xlabel('f1+t')
    ylabel('f2+t')
else
    for t=1:Fm

        plot3(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,result(t).data(:,3)+PF(t).t,'ro');
        hold on
        plot3(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,PF(t).data(:,3)+PF(t).t,'g.');

    end

    xlabel('f1+t')
    ylabel('f2+t')
    zlabel('f3+t')
end
title(prob.name)


(3)部分结果

环境变量:ntn_tnt =10, τtτ_tτt =10

DF2:

在这里插入图片描述

DF3:

在这里插入图片描述

DF7:

在这里插入图片描述

三、完整MATLAB见下方名片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值