1.前言
本文介绍进化计算领域张青富教授提出的基于分解的多目标进化算法(MOEA/D),该论文发表于《IEEE Transactions on evolutionary computation》,引用9k+(高被引论文~)。
2.摘要
分解是传统多目标优化中的一种基本策略,但它尚未广泛应用于多目标进化优化。本文提出了一种基于分解的多目标进化算法(MOEA/D),该算法将一个多目标优化问题分解为多个标量优化子问题,并同时优化这些子问题。每个子问题仅使用来自其几个邻近子问题的信息进行优化,这使得MOEA/D在每一代的计算复杂度比多目标遗传局部搜索算法(MOGLS)和非支配排序遗传算法(NSGA-II)都要低。
3.基于分解的多目标优化算法
MOEA/D利用分治思想,其将一个多目标优化问题转换为多个标量子问题,且每一个子问题由一个均匀分布的权重向量构成,对于每生成一个新解,则基于聚合函数对该子问题附近的解进行替换。
在完成种群初始化后,该算法会为种群中的每个个体分配一个均匀分布的权重向量,而后计算权向量间的欧几里得距离,选择距离最近的 T 个权重向量作为该权重向量对应子问题的邻域, 然后各子问题在其邻域内选取个体交叉产生新解,在新解产生之后,通过聚合函数来实现解的选择,即选择聚合函数值更优的解,并且每个子问题还会利用相邻子问题的信息进行优化。
3.1 权重向量的生成方法
MOEA/D 算法中每个子问题对应一个权重向量,实验表明权重向量的均匀性会对算的求解最优解有一定的影响,更均匀的权重向量求得的解集会更优。MOEA/D 中采用了单纯形格子设计方法来生成权重向量,能够得到相对均匀的权重向量:
λ
1
+
λ
2
+
⋯
+
λ
N
=
1
λ
i
∈
{
0
H
,
1
H
,
.
.
.
,
H
H
}
\begin{array}{l}\lambda_1+\lambda_2+\cdots+\lambda_N=1\\\lambda_i\in\left\{\frac0H,\frac1H,...,\frac HH\right\}\end{array}
λ1+λ2+⋯+λN=1λi∈{H0,H1,...,HH}
其中,H是定义的参数,决定生成的权重向量的个数。权重向量的个数满足:
N
=
C
H
+
m
−
1
m
−
1
N=C_{H+m-1}^{m-1}
N=CH+m−1m−1
其中,m为多目标优化问题中的目标个数。
3.2 模拟二进制交叉算子
MOEA/D 通过进化产生新解过程中使用的是模拟二进制交叉算子,本质是单点交叉:
{
x
1
i
′
=
0.5
∗
[
(
1
+
γ
i
)
x
1
i
+
(
1
−
γ
i
)
x
2
i
]
x
2
i
′
=
0.5
∗
[
(
1
−
γ
i
)
x
1
i
+
(
1
+
γ
i
)
x
2
i
]
\left.\left\{\begin{matrix}{x_{1i}^{\prime}}=0.5*[(1+\gamma_{i})x_{1i}+(1-\gamma_{i})x_{2i}]\\{x_{2i}^{\prime}}=0.5*[(1-\gamma_{i})x_{1i}+(1+\gamma_{i})x_{2i}]\end{matrix}\right.\right.
{x1i′=0.5∗[(1+γi)x1i+(1−γi)x2i]x2i′=0.5∗[(1−γi)x1i+(1+γi)x2i]
参数表示为:
γ
i
=
{
(
2
μ
i
)
1
η
+
1
,
μ
i
≤
0.5
(
1
2
(
1
−
μ
i
)
)
1
η
+
1
,
μ
i
>
0.5
\gamma_i=\begin{cases}(2\mu_i)^{\frac{1}{\eta+1}},\mu_i\leq0.5\\\left(\frac{1}{2(1-\mu_i)}\right)^{\frac{1}{\eta+1}},\mu_i>0.5\end{cases}
γi=⎩
⎨
⎧(2μi)η+11,μi≤0.5(2(1−μi)1)η+11,μi>0.5
3.3 多项式变异算子
MOEA/D 使用多项式变异:
x
k
′
=
x
k
+
δ
∗
(
u
k
−
l
k
)
x'_k=x_k+\delta^*(u_k-l_k)
xk′=xk+δ∗(uk−lk)
其中,参数表述为:
δ
=
{
2
r
1
η
+
1
−
1
,
r
<
0.5
1
−
(
2
∗
(
1
−
r
)
)
1
η
+
1
,
r
≥
0.5
\delta=\begin{cases}2r^{\frac{1}{\eta+1}}-1,r<0.5\\1-(2*(1-r))^{\frac{1}{\eta+1}},r\geq0.5\end{cases}
δ={2rη+11−1,r<0.51−(2∗(1−r))η+11,r≥0.5
3.4 分解方法
MOEA/D 在解的选择是基于分解方法来进行的,对不同的子问题对两个解进行优劣比较,即对将同一个权重向量与两个不同的个体通过分解方法来计算聚合函数值,然后根据聚合函数值来区分哪一个解对于该权重向量是更优的。常用的聚合函数有三种,分别是加权和(Weighted Sum, WS)方法、切比雪夫(TchebyCheff,Tche)方法、基于惩罚的交叉边界方法(Penalty-based Boundary Intersection, PBI)方法。
加权和方法
通过加权的方式将多目标优化问题转换为单目标优化子问题,设
λ
=
(
λ
1
,
λ
2
,
…
,
λ
m
)
T
\lambda=(\lambda_{1},\lambda_{2},\ldots,\lambda_{m})^{\mathrm{T}}
λ=(λ1,λ2,…,λm)T是一个权向量,其中
λ
i
≥
0
,
i
=
1
,
2
,
…
,
m
\lambda_{i}\geq0,i=1,2,\ldots,m
λi≥0,i=1,2,…,m,且
λ
1
+
λ
2
+
.
.
.
+
λ
m
=
1
\lambda_{1}+\lambda_{2}+...+\lambda_{m}=1
λ1+λ2+...+λm=1,则多目标优化问题可转化成为:
Minimize
g
w
s
(
x
∣
λ
)
=
∑
i
=
1
m
λ
i
f
i
(
x
)
\text{Minimize }g^{ws}(x\mid\lambda)=\sum_{i=1}^m\lambda_if_i(x)
Minimize gws(x∣λ)=i=1∑mλifi(x)
加权和方法在 PF 是凸时效果较好,在非凸函数的情况下,这种方法并不能得到所有的Pareto最优解。
切比雪夫方法
该方法大致思想是减少个体与理想点的最大差距从而使个体逼近 PF:
M
i
n
i
m
i
z
e
g
t
e
(
x
∣
λ
,
z
∗
)
=
max
1
≤
i
≤
m
{
λ
i
∣
f
i
(
x
)
−
z
i
∗
∣
}
\mathrm{Minimize~}g^{te}(x\mid\lambda,z^*)=\max_{1\leq i\leq m}\{\lambda_i|f_i(x)-z_i^*|\}
Minimize gte(x∣λ,z∗)=1≤i≤mmax{λi∣fi(x)−zi∗∣}
对于连续 MOP,其聚合函数不是平滑的。
基于惩罚的交叉边界方法
该方法源自边界交叉法,但是该方法有一个等式约束:
{
Minimize
g
b
i
(
x
∣
λ
,
z
∗
)
=
d
s.t.
F
(
x
)
−
z
∗
=
d
λ
\left.\left\{\begin{matrix}\text{Minimize }g^{bi}(x\mid\lambda,\mathbf{z}^*)=d\\\text{s.t.}F(\boldsymbol{x})-\mathbf{z}^*=d\lambda\end{matrix}\right.\right.
{Minimize gbi(x∣λ,z∗)=ds.t.F(x)−z∗=dλ
为了解决这个等式约束,于是采用了基于惩罚的方法替换这个等式约束,产生了基于惩罚的交叉边界法:
Minimize
g
b
i
p
(
x
∣
λ
,
z
∗
)
=
d
1
+
θ
d
2
\text{Minimize }g^{\mathrm{bip}}\left(\pmb{x}\mid\pmb{\lambda},\pmb{z}^{\ast}\right)=d_1+\theta d_2
Minimize gbip(x∣λ,z∗)=d1+θd2
其中,各参数表述为:
d
1
=
∥
(
F
(
x
)
−
z
∗
)
λ
∥
∥
λ
∥
d
2
=
∥
F
(
x
)
−
(
z
∗
+
d
1
λ
)
∥
d_1=\frac{\|(F(x)-z^*)\lambda\|}{\|\lambda\|}\\ d_2=\|F(x)-(z^*+d_1\lambda)\|
d1=∥λ∥∥(F(x)−z∗)λ∥d2=∥F(x)−(z∗+d1λ)∥
伪代码
4.结果展示
5.参考文献
[1] Zhang Q, Li H. MOEA/D: A multiobjective evolutionary algorithm based on decomposition[J]. IEEE Transactions on evolutionary computation, 2007, 11(6): 712-731.