一、动态多目标优化简介 一个多目标优化问题如果需要同时优化具有多个依赖时间的、相互冲突的目标,并且需要适应环境的变化,这类问题称为动态多目标优化问题(DynamicMulti-objective Optimization Problems,DMOPs)。动态多目标优化问题与静态多目标优化问题的区别在于其最优解不再是一个固定不变的解,而是一个随时间变化的 Pareto 最优解(Pareto-optimal Solution Set,POS)。受环境变化严重程度和变化频率的影响,DMOPs 的目标函数、约束函数和参数等都会发生变化,这些条件要求优化算法能够快速准确的跟踪收敛到变化的 Pareto 前端(Pareto-optimal Front Set,POF)随着环境的变化,根据PS和PF的变化情况,动态多目标优化问题可分为下面四类:
第一类:PS随时间变化,PF不随时间变化。
第二类:PS不随时间变化,PF随时间变化。
第三类:PS和PF都随时间变化。
第四类:PS和PF都不随时间变化。
(注:POS即PS,POF即PF)
本文选取5个传统典型动态标准测试问题FDA1~FDA5,其详细信息如下:
文章图片
文章图片
参考文献: Farina M , Deb K , Amato P . Dynamic multiobjective optimization problems[J]. IEEE Transactions on Evolutionary Computation, 2004, 8(5):425-442.
二、MOEA/D-FD MOEA/D-FD算法步骤:
文章图片
参考文献:Shi Y , Tan K C , Zhang M , et al. [Lecture Notes in Computer Science] Simulated Evolution and Learning Volume 10593 || A First-Order Difference Model-Based Evolutionary Dynamic Multiobjective Optimization[J]. 2017, 10.1007/978-3-319-68759-9(Chapter 52):644-655.
三、实验结果
3.1参数设置
本次测试中,环境变化程度为10,环境变化率为10,最大环境变化次数为5,种群大小为100,评价指标为SP。
close all
clear
clc;
warning off
%%
globalstep window ;
%测试函数 TestProblem可以选择1-5
%参考文献:Farina, M., Deb, K., & Amato, P. (2004). Dynamic multiobjective optimization problems: test cases, approximations, and applications. Evolutionary Computation, IEEE Transactions on,8(5), 425-442.
TestProblem=1;
%FDA1-FDA5
MultiObj = objective_description_function1(TestProblem);
MultiObj.N=100;
%种群大小
MultiObj.EvroChaNum=5;
%最大环境变化次数
step=10;
% severity of change环境变化程度
window=10;
% frequency of change 环境变化率
result=MOEADFD(MultiObj);
%% 结果说明
%最终求解结果在result中
3.2求解结果
部分求解几个如下:(仅测试了FDA1,其余4个函数可自行测试)
FDA1的POF:
文章图片
FDA1的POS:
文章图片
5种环境下FDA1的SP:
文章图片
四、完整代码 【动态多目标|动态多目标优化算法(MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5(Matlab代码))】文件夹内包含MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5的所有代码,点击main.m即可运行。(MOEA/D-FD完整MATLAB代码链接见评论区或添加博主微信获取)
文章图片
推荐阅读
- #|帝国竞争算法(ICA)(Matlab代码实现)
- #|智能电网中需求响应研究(Matlab代码实现)
- 数学建模|备战数学建模2——MATLAB导入数据,处理缺失值
- #|使用基于非支配排序的鲸鱼优化算法的生产过程中关键质量特征识别的多目标特征选择(Matlab代码实现)
- #|基于蜜蜂算法求解电力系统经济调度(Matlab代码实现)
- #|基于多目标优化算法的电力系统分析(Matlab代码实现)
- 数学建模|数学建模之python(一)
- #|TSA优化算法——模仿航海过程中外套的喷气推进和蜂群行为(Matlab代码实现)
- #|基于分布鲁棒优化的电-气-热综合能源系统日前经经济调度