一个多目标优化问题如果需要同时优化具有多个依赖时间的、相互冲突的目标,并且需要适应环境的变化,这类问题称为动态多目标优化问题(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算法步骤:
参考文献: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.
本次测试中,环境变化程度为10,环境变化率为10,最大环境变化次数为5,种群大小为100,评价指标为SP。
close all
clear
clc;
warning off
%%
global step 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中
部分求解几个如下:(仅测试了FDA1,其余4个函数可自行测试)
FDA1的POF:
FDA1的POS:
5种环境下FDA1的SP:
文件夹内包含MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5的所有代码,点击main.m即可运行。(MOEA/D-FD完整MATLAB代码链接见评论区或添加博主微信获取)