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

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

一、MOEA/D-SVR介绍

基于支持向量回归预测器的MOEA/D(MOEA based on decomposition (MOEA/D) Assisted by a Support Vector Regression Predictor,MOEA/D-SVR)的基本思路是通过支持向量回归(SVR)模型对历史种群进行学习,预测生成新环境下的种群,将其与几种先进动态多目标优化算法进行对比,实验结果表明该算法具有很强的竞争力,但在求解某些特定类型动态多目标优化问题(DMOPs)时存在效果不佳的情况。

MOEA/D-SVR是一种基于支持向量回归(SVR)的动态多目标进化优化算法,主要用于解决动态多目标优化问题(DMOPs)。在动态环境中,目标函数会随时间变化,因此需要快速准确地找到不同时刻的帕累托最优集(POS)。该算法利用过去获得的POS训练SVR模型,然后使用训练好的SVR对动态优化问题下一时刻的解进行预测,从而生成由不同个体组成的初始种群,再将其输入到基于种群的优化算法MOEA/D中,以获得该时刻的POS。

基本原理

  • 支持向量回归(SVR):SVR是一种基于统计学习理论的回归技术,通过寻找一个能够以最小误差预测目标值的超平面。在动态多目标优化中,SVR用于学习历史解与目标值之间的映射关系,从而对新环境下的解进行预测。
    在这里插入图片描述

  • 动态多目标优化问题(DMOPs):这类问题的目标函数会随时间变化,导致帕累托最优集(POS)也会发生变化。因此,需要算法能够快速适应环境变化,准确找到新的POS。
    在这里插入图片描述

算法步骤

在这里插入图片描述

  • 初始化:随机初始化一个种群,并在初始环境进行优化。
  • 环境变化检测:检测环境是否发生变化,通常通过监测目标函数值的变化或其他环境变化指标来实现。
  • SVR模型训练:当检测到环境变化时,使用过去获得的POS训练一个SVR模型。训练数据包括历史解及其对应的目标函数值。
  • 初始种群预测:利用训练好的SVR模型对新环境下的解进行预测,生成初始种群。通过SVR预测目标值,选择高质量的个体作为初始种群,以加速进化过程。
  • 优化:将预测得到的初始种群输入到基于种群的优化算法MOEA/D中,进行进一步的优化,得到当前环境下的POS。
  • 更新:更新种群和SVR模型,准备应对下一次环境变化。

关键点

  • 历史信息利用:通过利用过去获得的POS训练SVR模型,算法能够更好地预测新环境下的解,从而提高优化效率。
  • SVR模型的选择和训练:选择合适的SVR模型参数和训练数据对预测性能至关重要。需要根据具体问题的特点进行调整和优化。
  • 初始种群质量:预测得到的初始种群质量直接影响后续优化的效果。通过SVR的预测能力,可以生成更接近真实POS的初始种群,加快收敛速度。
  • 适应动态环境:算法需要能够快速检测环境变化并做出响应,以保证在动态环境中保持良好的优化性能。

性能评估

  • 实验结果:该算法在多个动态多目标优化测试问题上进行了实验评估,与几种先进的动态多目标优化算法进行对比。结果表明,在大多数测试问题上,该算法能够有效地跟踪POS的变化,具有较好的收敛性和多样性。
  • 优势与不足:其优势在于能够充分利用历史信息,通过SVR模型的预测能力快速生成高质量的初始种群,从而在动态环境中保持较好的优化性能。然而,该算法在某些特定类型的DMOPs上可能效果不佳,例如当环境变化剧烈或目标函数之间的关系复杂时,SVR模型的预测精度可能会受到影响。

参考文献

[1] Cao L , Xu L , Goodman E D ,et al.Evolutionary Dynamic Multiobjective Optimization Assisted by a Support Vector Regression Predictor[J].IEEE Transactions on Evolutionary Computation, 2019, PP(99):1-1.DOI:10.1109/TEVC.2019.2925722.

二、MOEA/D-SVR求解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见下方名片

相关文章:

  • mvc与mvp
  • pysnmp 操作流程和模块交互关系的可视化总结
  • Genio 1200 Evaluation MT8395平台安装ubuntu
  • ​​​​​​​《TCP/IP协议卷1》第9章 IP选路
  • Gemini 2.5 Pro 和Claude 3.7 理综物理真题,考研数学真题实战对比,国内直接使用
  • 腾讯云:6月30日起,自动禁用,及时排查
  • Odoo 基于规则的线索自动分配实践指南
  • SQL进阶之旅 Day 28:跨库操作与ETL技术
  • List ToMap优化优化再优化到极致
  • 报表工具顶尖对决系列 — Echarts 展现与导出
  • window 显示驱动开发-为视频处理创建渲染目标图面
  • chrome138版本及以上el-input的textarea输入问题
  • Mongodb学习(Windows版本)
  • Java 中使用 Redis 注解版缓存——补充
  • 分布式MQTT客户端看门狗机制设计与实现
  • FOC电机三环控制
  • 蓝牙与MATLAB的无线通信实战指南:从基础到创新应用
  • Ubuntu下搭建Black Magic Probe (BMP) 编译环境
  • Flink读取Kafka写入Paimon
  • QT5中的QGraphics图形视图框架学习笔记(Item、Scene和View)
  • 网页设计教育培训哪里好/苏州seo关键词优化外包
  • wordpress复制按钮插件/seo效果分析
  • 企业类网站设计/永久免费无代码开发平台网站
  • 用什么软件做网站图片/营销方式有哪些
  • 网络服务商是啥/网站seo快速
  • 建盏公司最新消息/杭州seo靠谱