一、动态多目标优化问题简介
现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization problems,DMOP)。DMOP是一类目标之间相互冲突,目标函数、约束函数和相关参数等可能随着时间的变化而改变的多目标优化问题。不失一般性,以最小化多目标问题为研究对象,一个具有n个决策变量,m个目标函数的DMOP可以描述为:
{
min
x
∈
Ω
(
x
,
t
)
=
(
f
1
(
x
,
t
)
,
f
2
(
x
,
t
)
,
⋯
,
f
m
(
x
,
t
)
)
T
s
⋅
t
⋅
g
i
(
x
,
t
)
⩽
0
(
i
=
1
,
2
,
⋯
,
p
)
h
j
(
x
,
t
)
=
0
(
j
=
1
,
2
,
⋯
,
q
)
\left\{\begin{array}{l} \min _{x \in \Omega}(\boldsymbol{x}, t)=\left(f_{1}(\boldsymbol{x}, t), f_{2}(\boldsymbol{x}, t), \cdots, f_{m}(\boldsymbol{x}, t)\right)^{T} \\ s \cdot t \cdot g_{i}(\boldsymbol{x}, t) \leqslant 0(i=1,2, \cdots, p) \\ h_{j}(\boldsymbol{x}, t)=0(j=1,2, \cdots, q) \end{array}\right.
⎩⎨⎧minx∈Ω(x,t)=(f1(x,t),f2(x,t),⋯,fm(x,t))Ts⋅t⋅gi(x,t)⩽0(i=1,2,⋯,p)hj(x,t)=0(j=1,2,⋯,q)
其
中
,
t
为
时
间
变
量
,
x
=
(
x
1
,
x
1
,
⋯
,
x
n
)
∈
Ω
为
n
维
决
策
变
量
,
F
=
(
f
1
,
f
2
,
⋯
,
,
f
m
)
为
m
维
目
标
向
量
,
g
i
⩽
0
(
i
=
1
,
2
,
⋯
,
p
)
为
p
个
不
等
式
约
束
,
h
j
=
0
(
j
=
0
,
1
,
⋯
,
q
)
为
q
个
等
式
约
束
。
其中, t 为时间变量, \\x=\left(x_{1}, x_{1}, \cdots, x_{n}\right) \in \Omega 为 n 维决策变量, \\\boldsymbol{F}=\left(f_{1}, f_{2}, \cdots,\right. , \left.f_{m}\right) 为 m 维目标向量, \\ g_{i} \leqslant 0(i=1,2, \cdots, p) 为 p 个不等式约束,\\ h_{j}=0(j=0 , 1, \cdots, q) 为 q 个等式约束。
其中,t为时间变量,x=(x1,x1,⋯,xn)∈Ω为n维决策变量,F=(f1,f2,⋯,,fm)为m维目标向量,gi⩽0(i=1,2,⋯,p)为p个不等式约束,hj=0(j=0,1,⋯,q)为q个等式约束。
二、CEC2015测试函数
cec2015共包含12个测试函数,分别是FDA4、FDA5、FDA5_iso、FDA5_dec、DIMP2、dMOP2、dMOP2_iso、dMOP2_dec、dMOP3、 HE2、HE7和HE9。其中前四个测试函数目标数为3,其余目标数为2。
2.1 FDA4
CEC2015动态多目标测试函数之FDA4,不同参数下PF随时间变化动图
2.2 FDA5
CEC2015动态多目标测试函数之FDA5,不同参数下PF随时间变化动图
2.3 FDA5_iso
CEC2015动态多目标测试函数之FDA5_iso,不同参数下PF随时间变化动图
2.4 FDA5_dec
CEC2015动态多目标测试函数之FDA5_dec,不同参数下PF随时间变化动图
2.5 DIMP2
CEC2015动态多目标测试函数之DIMP2,不同参数下PF随时间变化动图
2.6 dMOP2
CEC2015动态多目标测试函数之dMOP2,不同参数下PF随时间变化动图
2.7 dMOP2_iso
CEC2015动态多目标测试函数dMOP2_iso,不同参数下PF随时间变化动图
2.8 dMOP2_dec
CEC2015动态多目标测试函数dMOP2_dec,不同参数下PF随时间变化动图
2.9 dMOP3
CEC2015动态多目标测试函数之dMOP3,不同参数下PF随时间变化动图
2.10 HE2
CEC2015动态多目标测试函数之HE2,不同参数下PF随时间变化动图
2.11 HE7
CEC2015动态多目标测试函数之HE7,不同参数下PF随时间变化动图
2.12 HE9
CEC2015动态多目标测试函数之HE9,不同参数下PF随时间变化动图
参考文献:
[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.
[2] Hernán Peraza-Vázquez, Adrián F. Peña-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
三、动态多目标野狗优化算法
多目标野狗优化算法( Multi-objective Dingo Optimization Algorithm,MODOA)
动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)在MODOA基础上加入环境变化检测及种群重启机制,以应对动态环境下多目标问题的求解。
四、DMODOA求解CEC2015
4.1 8种不同参数设置
CEC2015中每个测试函数的环境变化程度
n
t
n_{t}
nt、环境变化频率
τ
t
{\tau}_{t}
τt 和最大迭代次数
τ
T
{\tau}_{T}
τT考虑如下8种情形:
4.2 评价指标
4.2.1 世代距离(Generational Distance,GD)
GD通过度量算法所获得的Pareto前沿与真实 Pareto前沿之间的距离来评价算法的收敛 性,GD 的表达式如下:
G
D
t
(
P
F
t
,
P
F
t
∗
)
=
∑
v
∈
P
F
t
d
(
v
,
P
F
t
∗
)
∣
P
F
t
∣
G D_{t}\left(P F_{t}, P F_{t}^{*}\right)=\frac{\sum_{v \in P F_{t}} d\left(v, P F_{t}^{*}\right)}{\left|P F_{t}\right|}
GDt(PFt,PFt∗)=∣PFt∣∑v∈PFtd(v,PFt∗)
式中,
P
F
t
∗
P F_{t}^{*}
PFt∗是t时刻的标准Pareto前沿,
P
F
t
P F_{t}
PFt 是t时刻算法所获得的Pareto前沿,d(v,
P
F
t
P F_{t}
PFt )是
P
F
t
P F_{t}
PFt 上的个体v与
P
F
t
∗
P F_{t}^{*}
PFt∗中距离v最近的个体之间欧式距离.可以看出,GD的评价方法是对于算法所获得的Pareto前沿
P
F
t
P F_{t}
PFt 中每个个体,在标准Pareto前沿
P
F
t
∗
P F_{t}^{*}
PFt∗中找到与它距离最近的个体并计算他们之间的欧式距离,之后将所有欧式距离求和相加再取平均值,因此GD值可以评价
P
F
t
P F_{t}
PFt 与
P
F
t
∗
P F_{t}^{*}
PFt∗之间的接近程度,GD值越小说明算法收敛性越好。
4.2.2 反世代距离 (Inverted Generational Distance,IGD)
IGD通过度量真实Pareto前沿与算法所获得的Pareto前沿之间的接近程度来评价算法的收敛性和多样性,IGD指标定义如下:
I
G
D
t
(
P
F
t
∗
,
P
F
t
)
=
∑
v
∈
P
F
t
∗
d
(
v
,
P
F
t
)
∣
P
F
t
∗
∣
I G D_{t}\left(P F_{t}^{*}, P F_{t}\right)=\frac{\sum_{v \in P F_{t}^{*}} d\left(v, P F_{t}\right)}{\left|P F_{t}^{*}\right|}
IGDt(PFt∗,PFt)=∣PFt∗∣∑v∈PFt∗d(v,PFt)
式中,
P
F
t
∗
P F_{t}^{*}
PFt∗是t时刻的标准Pareto前沿,
P
F
t
P F_{t}
PFt 是t时刻算法所获得的Pareto前沿,d(v,
P
F
t
P F_{t}
PFt )是
P
F
t
P F_{t}
PFt 上的个体v与
P
F
t
∗
P F_{t}^{*}
PFt∗中距离v最近的个体之间欧式距离。可以看出,IGD的评价方法是对于标准Pareto前沿
P
F
t
∗
P F_{t}^{*}
PFt∗中每个个体在算法所获得的Pareto前沿
P
F
t
P F_{t}
PFt 中找到与它距离最近的点并计算它们之间的欧式距离,之后将所有欧式距离求和相加再取平均值,因此IGD不仅可以评价
P
F
t
∗
P F_{t}^{*}
PFt∗与
P
F
t
P F_{t}
PFt之间的接近程度,还可以评价PFt中个体的分布性,IGD值越小说明算法所得到的Pareto前沿收敛性越好,分布越均匀。
4.2.3 超体积(Hypervolume,HV)
HV衡量算法所获得的PS在目标空间所覆盖的范围大小,该指标可以同时衡量收敛性和多样性,计算公式如下:
H
V
t
=
volume
(
⋃
i
=
1
∣
P
F
t
∣
v
i
)
H V_{t}=\operatorname{volume}\left(\bigcup_{i=1}^{\left|P F_{t}\right|} v_{i}\right)
HVt=volume⎝⎛i=1⋃∣PFt∣vi⎠⎞
式中,
P
F
t
P F_{t}
PFt 是t时刻算法所获得的Pareto前沿,
v
i
v_{i}
vi是由参考点和个体i形成的超体积。HV越大说明算法所得到的Pareto前沿收敛性越好,分布越均匀。
4.2.4 间距(Spacing,SP)
Schott提出了一种评价指标———间距(SP)来度量算法所获得的Pareto前沿中的个体的是否分布均匀,表达式如下:
S
t
=
1
∣
P
F
t
∣
−
1
∑
i
=
1
∣
P
F
t
∣
(
d
i
−
d
ˉ
)
2
d
i
=
min
k
=
1
,
⋯
,
∣
P
F
t
,
,
k
≠
i
(
∑
j
=
1
m
∣
P
F
t
(
i
,
j
)
−
P
F
t
(
k
,
j
)
∣
)
\begin{array}{c} S_{t}=\sqrt{\frac{1}{\left|P F_{t}\right|-1} \sum_{i=1}^{\left|P F_{t}\right|}\left(d_{i}-\bar{d}\right)^{2}} \\ d_{i}=\min _{k=1, \cdots, \mid P F_{t},, k \neq i}\left(\sum_{j=1}^{m}\left|P F_{t}(i, j)-P F_{t}(k, j)\right|\right) \end{array}
St=∣PFt∣−11∑i=1∣PFt∣(di−dˉ)2di=mink=1,⋯,∣PFt,,k=i(∑j=1m∣PFt(i,j)−PFt(k,j)∣)
式中,
P
F
t
P F_{t}
PFt 是t时刻算法所获得的Pareto前沿,
d
i
d_{i}
di是
P
F
t
P F_{t}
PFt中第i个个体与
P
F
t
P F_{t}
PFt中和个体i最近的个体之间的欧式距离,
d
ˉ
\bar{d}
dˉ 是
d
i
d_{i}
di的平均值.SP可以评价
P
F
t
P F_{t}
PFt中个体的分布性,SP值越小说明算法所得到的Pareto前沿分布越均匀。
参考文献:
[1]刘若辰,李建霞,刘静,焦李成.动态多目标优化研究综述[J].计算机学报,2020,43(07):1246-1278.
[2]刘淳安. 动态多目标优化进化算法及其应用[M]. 科学出版社, 2011.
4.3 部分代码
设置种群大小为300,外部存档大小为500,以dMOP2_iso为例,当取第4组参数设置时,即环境变化程度、环境变化频率 和最大迭代次数分别为10/50/1000,其代码如下:(代码中更改TestProblem以此选择不同测试函数1-12,更改group选择不同参数设置1-8,相对于共有96种情形可供选择)
close all;
clear ;
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300; %Np 种群大小 (可以自己修改)
params.Nr = 500; %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率
params.maxgen=paramiter(3);%maxgen 最大迭代次数
%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);
4.4 部分结果
由于测试函数共有12个,且每个测试函数均有8种参数可供选择,因而共有96种选择方案。由于篇幅限制,下面仅以dMOP2_iso和dMOP3为例,采用DMODOA求解。测试其余函数只需修改代码中TestProblem和group的值。
4.4.1 dMOP2_iso
当dMOP2_iso的参数设置选择为1时,即:环境变化程度
n
t
=
10
n_{t}=10
nt=10、环境变化频率
τ
t
=
5
{\tau}_{t}=5
τt=5 和最大迭代次数
τ
T
=
100
{\tau}_{T}=100
τT=100。
dMOP2_iso问题真实的POF:
close all;
clear ;
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300; %Np 种群大小 (可以自己修改)
params.Nr = 500; %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率
params.maxgen=paramiter(3);%maxgen 最大迭代次数
%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);
DMODOA所求的结果如下:
DMODOA求dMOP2_iso所得的POF:
DMODOA求dMOP2_iso的GD随时间的变化曲线:
DMODOA求dMOP2_iso的IGD随时间的变化曲线:
DMODOA求dMOP2_iso的HV随时间的变化曲线:
DMODOA求dMOP2_iso的SP随时间的变化曲线:
4.4.1 dMOP3
当dMOP3的参数设置选择为4时,即:环境变化程度
n
t
=
10
n_{t}=10
nt=10、环境变化频率
τ
t
=
50
{\tau}_{t}=50
τt=50 和最大迭代次数
τ
T
=
1000
{\tau}_{T}=1000
τT=1000。
dMOP3问题真实的POF:
close all;
clear ;
clc;
warning off
%参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.
%[2]Hernán Peraza-Vázquez, Adrián F. Pe?a-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, vol. 2021, Article ID 9107547, 19 pages, 2021.
%% 动态多目标野狗优化算法(Dynamic Multi-objective Dingo Optimization Algorithm,DMODOA)
TestProblem=9;%选择测试函数1-12(可以自己修改)
group=4;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300; %Np 种群大小 (可以自己修改)
params.Nr = 500; %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率
params.maxgen=paramiter(3);%maxgen 最大迭代次数
%% 动态多目标野狗优化算法求解,结果为Result
Result = DMODOA(params,MultiObj);
DMODOA所求的结果如下:
DMODOA求dMOP3所得的POF:
DMODOA求dMOP3的GD随时间的变化曲线:
DMODOA求dMOP3的IGD随时间的变化曲线:
DMODOA求dMOP3的HV随时间的变化曲线:
DMODOA求dMOP3的SP随时间的变化曲线:
五、参考代码
文件夹内包含DMODOA求解CEC2015共12个测试函数的全部MATLAB代码,并提供每个测试函数真实的Pareto前沿,同时通过四种评价指标(GD、IGD、HV和SP)。代码均能运行,包含使用说明,完整代码添加博客下方博主微信,私聊获取。