一、动态多目标优化简介

一个多目标优化问题如果需要同时优化具有多个依赖时间的、相互冲突的目标,并且需要适应环境的变化,这类问题称为动态多目标优化问题(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,其详细信息如下:

python NSGA多目标优化_动态多目标优化


python NSGA多目标优化_python NSGA多目标优化_02

参考文献: 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算法步骤:

python NSGA多目标优化_动态多目标优化算法_03

参考文献: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
%%
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中

3.2求解结果

部分求解几个如下:(仅测试了FDA1,其余4个函数可自行测试)

FDA1的POF:

python NSGA多目标优化_动态多目标优化_04

FDA1的POS:

python NSGA多目标优化_多目标_05

5种环境下FDA1的SP:

python NSGA多目标优化_动态多目标优化_06

四、完整代码

文件夹内包含MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5的所有代码,点击main.m即可运行。

python NSGA多目标优化_动态多目标优化算法_07