当前位置: 首页 > 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见下方名片

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

相关文章:

  • 数字图像处理与OpenCV初探
  • 机器学习 [白板推导](五)[支持向量机]
  • uni-app隐藏返回按钮
  • VAS5081电动工具专用3-8节串联电池监控芯片奇力科技
  • 深入理解常用依存关系标签
  • 常见的几种排序算法
  • ​​MPI + OpenMP 环境配置指南(Windows/Linux)​
  • 【C++】继承和派生
  • 【靶场】upload-labs-文件上传漏洞闯关
  • Java面试题020:一文深入了解微服务之负载均衡Feign
  • docker-Dockerfile 配置
  • EMS企业微电网能效管理 + IBMS智能化集成系统:双擎驱动企业绿色低碳转型
  • 快速搭建运行Django第一个应用—投票
  • JAVA_学习(IDEA
  • RT-Thread Studio 配置使用详细教程
  • linux基于内存实现jar文件搜索
  • Java 大数据机器学习模型在电商用户画像构建与精准营销中的应用
  • Modbus TCP转DeviceNet网关配置温控仪配置案例
  • 76. 最小覆盖子串
  • ROS2双目相机标定与测距全流程详解:从原理到实践
  • 聊一聊 Linux 上对函数进行 hook 的两种方式
  • Go 语言:高并发编程的性能突围之路
  • Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络)的区别
  • @RequestBody和@ResponseBody注解的作用是什么
  • MySQL 分区
  • mysql_mcp_server quickstart
  • RDMA技术详解:下一代高性能网络通信的核心
  • QT5中的QGraphics图形视图框架学习笔记(Item、Scene和View)
  • WebDebugX和多工具组合的移动端调试流程构建:一个混合App项目的实践案例
  • TDengine 基础功能——数据写入