当前位置: 首页 > backend >正文

动态多目标进化算法: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<110data=ArchiveResult{1,1}{1,1}(k1:k2,end-1:end);elsedata=ArchiveResult{1,1}{1,1}(k1:k2,end-2:end);endresult(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-1PF(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<3for t=1:Fmplot(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,'ro');hold onplot(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,'g.');endxlabel('f1+t')ylabel('f2+t')
elsefor t=1:Fmplot3(result(t).data(:,1)+PF(t).t,result(t).data(:,2)+PF(t).t,result(t).data(:,3)+PF(t).t,'ro');hold onplot3(PF(t).data(:,1)+PF(t).t,PF(t).data(:,2)+PF(t).t,PF(t).data(:,3)+PF(t).t,'g.');endxlabel('f1+t')ylabel('f2+t')zlabel('f3+t')
end
title(prob.name)

(3)部分结果

环境变量: n t n_t nt =10, τ t τ_t τt =10

DF2:

在这里插入图片描述

DF3:

在这里插入图片描述

DF7:

在这里插入图片描述

三、完整MATLAB见下方名片

http://www.xdnf.cn/news/13788.html

相关文章:

  • SpringBoot集成ActiveMQ
  • 3D 展示崛起:科技赋能的新变革
  • 【力扣 简单 C】83. 删除排序链表中的重复元素
  • 英一真题阅读单词笔记 10年
  • c语言接口设计模式之抽象算法,以冒泡排序为例
  • @Validation 的使用 Spring
  • Matlab图像清晰度评价指标
  • 如何在网页里填写 PDF下拉框
  • STM32 开发 - 中断案例(中断概述、STM32 的中断、NVIC 嵌套向量中断控制器、外部中断配置寄存器组、EXTI 外部中断控制器、实例实操)
  • Spring Boot 项目中Http 请求如何对响应体进行压缩
  • [C++][设计模式] : 单例模式(饿汉和懒汉)
  • php列表头部增加批量操作按钮,多选订单数据批量微信退款(含微信支付SDK)
  • 洛谷-P3375 【模板】KMP
  • 前端导出PDF(适配ios Safari浏览器)
  • 常见的网络协议有哪些
  • 图像匹配算法 笔记2025
  • 【从零学习JVM|第七篇】快速了解直接内存
  • Qt QTcpSocket的write无法发送数据【已解决】
  • 打卡day52
  • UE5制作与云渲染配置不足?3090/4090显卡云端解放创作力
  • 基于sample_aiisp例子,创建3路编码流,记录
  • 奥威BI:用AI重新定义数据分析,中小企业数字化转型的智能引擎
  • 力扣HOT100之技巧:31. 下一个排列
  • CMS软件以及常见分类
  • excel中自定义公式
  • 基于 Nginx 服务器的泛域名 SSL 证书申请与部署
  • 腾讯云:6月30日起,自动禁用,及时排查
  • keil5怎么关闭工程
  • JavaScript中的迭代器模式:优雅遍历数据的“设计之道”
  • React---Hooks深入