论文《An Evolutionary Many-Objective Optimization Algorithm Using Reference-point Based Non-dominated Sorting Approach, Part I: Solving Problems with Box Constraints》阅读笔记
- 1. 高维多目标问题
- 2. NSGA-III 算法
- 2.1 利用非支配水平的种群分类器 (Classification of Population into Non-dominated Levels)
- 2.2 超平面上参考点的确定 (Determination of Reference Points on a Hyper-Plane)
- 2.3 群体成员的自适应归一化 (Adaptive Normalization of Population Members)
- 2.4 关联操作 (Association Operation)
- 2.5 小生境保护操作 (Niche-Preservation Operation)
- 2.6 利用遗传操作创造后代群体 (Genetic Operations to Create Offspring Population)
- 2.7 NSGA-III一代的计算复杂度
- 3 性能指标
\ \ \quad 这是NSGA-III算法的原始论文《An Evolutionary Many-Objective Optimization Algorithm Using Reference-point Based Non-dominated Sorting Approach, Part I: Solving Problems with Box Constraints》的笔记, 该论文于2013年发表于期刊《IEEE Transactions on Evolutionary Computation》上一篇文章. 本文是该算法的阅读笔记.
1. 高维多目标问题
\ \ \quad 粗略地说, 高维多目标问题被定义为具有四个或四个以上目标的问题. 两个和三个目标问题属于不同的类别, 因为在大多数情况下, 所得到的帕累托最优前沿在总体上可以用图形方法综合可视化. 尽管高维多目标优化问题的目标个数的严格上限不是很明确, 但除了少数情况1外, 大多数实践者对最多10到15个目标感兴趣. 在这一部分中, 我们首先讨论现有的EMO (Evolutionary multi-objective optimization) 算法在处理许多目标问题时可能面临的困难, 并调查EMO算法在处理大量目标时是否有用.
\ \ \quad 当前在支配原则下工作的最先进的EMO算法可能面临以下困难:
- 很大一部分种群是非支配的:众所周知, 随着目标数量的增加, 随机产生的种群中越来越多的人成为非支配人口. 由于大多数EMO算法强调群体中的非支配解, 在处理多目标问题时, 在一代人的时间内没有太大的空间来创造新的解. 这减慢了搜索过程, 因此整个EMO算法变得低效.
- 目标的高维性使得计算代价变得沉重. 在多目标优化过程中, 需要对个体之间的拥挤度进行计算, 高纬度下个体对邻近个体的计算变得困难. 如果采用折衷或者近似计算以加快计算速度, 可能无法得到满意的解分布.
- 重组操作可能是低效的. 在一个高维多目标问题中, 如果在一个巨维空间 (Lagre-dimensional space) 中仅找到少量的解, 那么这些解的距离将会很远. 且在生成子代的过程中, 如果父代的两个个体的距离很远, 生成的子代会距离这两个父代个体很远, 此时一些特别的重组算子 (例如交配限制 (mating restriction) 或者其他方法) 会很有效.
- 权衡面 (trade-off surface) 表征是困难的. 直观认识到, 为了表征更高维的权衡面, 需要更多点, 这是指数级的. 因此, 需要一个巨大的种群规模去求解帕累托前沿面 (Pareto front). 这使得决策者很难选择自己需要的解.
- 性能指标 (Performance metrics) 的计算代价很大.
- 可视化 (Visualization) 是困难的.
\ \ \quad 除了以上问题, 实际问题中由于目标解集集中在帕累托前沿面的一个小区域, 因此如何寻找也是算法应用到实际中的一个阻碍. 有研究发现, 在许多实际问题中, 虽然目标维数很高, 但可以退化成低纬度的多目标问题, 通常只有2~3维, 如何识别冗余目标也是一个难题.
\ \ \quad 为了解决上述难题, 该论文提出以下求解思路:
- 使用特殊的支配原则. 要解决第 1 和第 2 个困难, 可以使用自适应离散化帕累托前沿面的方法 (adaptively discretize the Pareto-optimal front); 要解决第 3 个问题, 可以使用特殊的重组方法 (例如 SBX 方法).
- 使用预定义的 (predefined) 多目标搜索. 这种方式主要有两种解决办法: ① 给定一组跨越整个帕累托最优前沿面的预定义搜索方向 (search dierctions); ② 给定一组预定义的参考点 (reference points).
2. NSGA-III 算法
\ \ \quad
NSGA-III 算法的基本架构与 NSGA-II2 相似, 差异在于在种群更新时的选择机制发生了重大变化. NSGA-II 算法采取拥挤度作为种群选取的参考, 选择拥挤度低的个体纳入下一迭代中, 以保证种群成员的多样性. NSGA-III通过提供和自适应地更新一些分布良好的参考点来帮助维持种群成员之间的多样性.
\ \ \quad
这里简要介绍 NSGA-II 第
t
t
t 代种群. 假设这一代的父代群体是
P
t
P_t
Pt, 其大小是
N
N
N, 而由
P
t
P_t
Pt 产生的子代群体是拥有个数为
N
N
N 的种群
Q
t
Q_t
Qt. 第一步是从父代和子代群体组合的
R
t
=
P
t
∪
Q
t
R_t=P_t∪Q_t
Rt=Pt∪Qt (大小为
2
N
2N
2N) 中选择最好的
N
N
N 个组分, 这样就可以保留父代群体中的精英成员. 要实现这一点, 首先, 组合种群
R
t
R_t
Rt 根据不同的非支配级别 (
F
1
F_1
F1、
F
2
F_2
F2 等) 进行排序. 然后, 每次选择一个非支配级别来构建新的种群
S
t
S_t
St, 从
F
1
F_1
F1 开始, 直到
S
t
S_t
St 的大小等于
N
N
N 或第一次超过
N
N
N. 让我们假设包含的最后一个级别是第
l
l
l 个级别. 因此, 从水平
(
l
+
1
)
(l+1)
(l+1) 开始的所有解都从组合总体
R
t
R_t
Rt 中被拒绝. 在大多数情况下, 最后接受的水平 (
l
l
l 级) 只被部分接受. 在这种情况下, 那些将使前
l
l
l 前沿面多样性最大化的解才会被选择 (即让解分布更加均匀的解). 在 NSGA-II 中, 这是通过一种计算效率高但近似的小生境保护算子来实现的, 该算子将最后一级成员的拥挤距离为任意两个相邻解之间客观归一化距离的总和. 此后, 选择具有较大拥挤距离值的解 (拥挤度越大, 则分布越松散).
\ \ \quad
NSGA-III 其中一代的产生通过算法 1 中给出.
为了说明上述算法, 还需要进一步讲解算法 Normalize (算法 2), 算法 Associate (算法 3) 和算法 Niching (算法 4).
2.1 利用非支配水平的种群分类器 (Classification of Population into Non-dominated Levels)
\ \ \quad 在NSGA-III中也使用了上述使用通常的支配原理3来识别非支配前沿的程序. 首先, 所有在第1到第 l l l 级别的非支配前沿面种群成员都被包含在 S t S_t St 中. 如果 ∣ S t ∣ = N |S_t |=N ∣St∣=N, 则不需要进一步的操作, 并且从 P t + 1 = S t P_{t+1}=S_t Pt+1=St开始下一代. 对于 ∣ S t ∣ > N |S_t |>N ∣St∣>N, 已经选择了从 1 到 ( l − 1 ) (l-1) (l−1) 个前沿面的成员, 即 P t + 1 = ⋃ i = 1 l − 1 F i P_{t+1}=⋃_{i=1}^{l-1}F_i Pt+1=⋃i=1l−1Fi, 剩余的 ( K = N − ∣ P t + 1 ∣ ) (K=N-|P_{t+1} |) (K=N−∣Pt+1∣) 种群成员从最后的前沿面 F l F_l Fl 中选择. 我们将在以下小节中描述剩余的选择过程.
2.2 超平面上参考点的确定 (Determination of Reference Points on a Hyper-Plane)
\ \ \quad
如前所述, NSGA-III使用一组预定义的参考点来确保获得的解的多样性. 所选择的参考点可以以结构化方式预先定义, 或者由用户优先提供. 我们将在稍后的结果章节中介绍这两种方法的结果. 在没有任何偏好信息的情况下, 可以采用任何预先定义的参考点的结构化放置. 但在本文中, 我们使用Das and Dennis4的系统方法 (也可以使用在帕累托最优前沿的某些部分有或没有偏差的任何其他结构化分布) , 将点放置在标准化的超平面上, 一个
(
M
−
1
)
(M-1)
(M−1) 维单位单纯形, 该超平面向所有目标轴倾斜, 并且在每个轴上具有一个截距. 如果沿每个目标考虑
p
p
p 个分区, 则
M
M
M 目标问题中的参考点总数 (
H
H
H) 由下式给出:
H
=
(
M
+
p
−
1
p
)
=
(
M
+
p
−
1
)
!
p
!
(
M
−
1
)
!
(1)
H=\left( \begin{array}{c} M+p-1\\ p\\ \end{array} \right) =\frac{\left( M+p-1 \right) !}{p!\left( M-1 \right) !} \tag{1}
H=(M+p−1p)=p!(M−1)!(M+p−1)!(1) 为清楚起见, 这些参考点如图 1 所示. 在建议的 NSGA-III 中, 除了强调非支配解之外, 我们还强调了在某种意义上与每个参考点相关的种群成员. 由于上面创建的参考点广泛分布在整个归一化超平面上, 因此所获得的解也可能广泛分布在 Pareto 最优前沿上或附近. 在用户提供的优选参考点集合的情况下, 理想情况下, 用户可以在归一化超平面上标记
H
H
H 个点或为此指示任意
H
H
H、
M
M
M 维向量. 该算法很可能找到与所提供的参考点相对应的 Pareto 最优解, 因此从决策和多目标优化的结合应用的角度来看, 该方法可以得到更多的应用.
![](https://i-blog.csdnimg.cn/blog_migrate/27d7e0b32232c0f44d11c1b8b9d4ac41.png#pic_center)
2.3 群体成员的自适应归一化 (Adaptive Normalization of Population Members)
\ \ \quad
首先, 通过识别每个在
⋃
τ
=
0
t
S
τ
⋃_{τ=0}^t S_τ
⋃τ=0tSτ 上的目标函数
i
=
1
,
2
,
…
,
M
i=1,2,…,M
i=1,2,…,M 的最小值
(
z
i
m
i
n
)
(z_i^{min} )
(zimin), 和构造理想点
z
ˉ
=
(
z
1
m
i
n
,
…
,
z
M
m
i
n
)
\bar{z} = (z_1^{min},…,z_M^{min} )
zˉ=(z1min,…,zMmin), 来确定种群
S
t
S_t
St 的理想点. 然后通过
z
i
m
i
n
z_i^{min}
zimin 减去目标
f
i
f_i
fi 来平移
S
t
S_t
St 的每个目标值, 这样平移后的
S
t
S_t
St 的理想点就变成了一个零向量. 我们将这个平移后的目标表示为
f
i
′
(
x
)
=
f
i
(
x
)
−
z
i
m
i
n
f_i' (x) =f_i (x)-z_i^{min}
fi′(x)=fi(x)−zimin. 此后, 通过寻找使以下成就标量函数最小且权向量
w
w
w 为轴方向的解
(
x
∈
S
t
)
(x∈S_t)
(x∈St) 来识别每个目标轴上的极值点:
A
S
F
(
x
,
w
)
=
max
M
i
=
1
f
i
′
(
x
)
w
i
,
f
o
r
x
∈
S
t
(2)
ASF\left( x,w \right) =\underset{i=1}{\overset{M}{\max}}\frac{f_{i}^{'}\left( x \right)}{w_i},\ for\ x\in S_t \tag{2}
ASF(x,w)=i=1maxMwifi′(x), for x∈St(2)当
ω
i
=
0
ω_i=0
ωi=0 时, 使用
1
0
−
6
10^{-6}
10−6 来替换它. 对于经过平移的目标方向
f
i
′
f_i'
fi′ , 这将产生一个极值目标向量
z
i
,
m
a
x
z^{i,max}
zi,max . 然后用这
M
M
M 个极值矢量来构成M维线性超平面. 然后可以计算第
i
i
i 个目标轴和线性超平面的截距
a
i
a_i
ai (见图 2) , 目标函数可以归一化如下:
f
i
n
(
x
)
=
f
i
′
(
x
)
a
i
−
z
i
m
i
n
=
f
i
(
x
)
−
z
i
m
i
n
a
i
−
z
i
m
i
n
,
i
=
1
,
2
,
…
,
M
(3)
f_i^n (x)=\frac{f_i' (x)}{a_i-z_i^{min}}=\frac{f_i (x)-z_i^{min}}{a_i-z_i^{min}} , i=1,2,…,M \tag{3}
fin(x)=ai−ziminfi′(x)=ai−ziminfi(x)−zimin,i=1,2,…,M(3) 请注意, 每个归一化目标轴上的截距现在是在
f
i
n
=
1
f_i^n=1
fin=1, 用这些截距点构建的超平面将使得
∑
i
=
1
M
f
i
n
=
1
∑_{i=1}^M f_i^n =1
∑i=1Mfin=1.
![](https://img-blog.csdnimg.cn//aa7aa0cd49264fbc927355f0bb018574.png#pic_center)
\ \ \quad 在结构化参考点的情况下, 使用Das and Dennis4的方法计算的原始参考点已经位于该归一化超平面上. 在用户首选参考点的情况下, 使用公式(3)将参考点简单地映射到上述构造的归一化超平面上. 由于归一化过程和超平面的创建是在每一代使用极限从模拟开始就发现的点, 所提出的 NSGA-III 程序自适应地保持每代 S t S_t St 成员所跨越的空间的多样性. 这使 NSGA-III 能够解决具有帕累托最优前沿的问题, 其目标值可以不同地缩放. 该过程也在算法 2 中描述.
2.4 关联操作 (Association Operation)
\ \ \quad 在根据目标空间中 S t S_t St 成员的大小, 对每个目标进行自适应正则化后, 接下来需要将每个种群成员与参考点相关联. 为此, 我们通过将参考点与原点连接来定义对应于超平面上每个参考点的参考线. 然后, 我们计算每个群体成员与每条参考线的垂直距离. 其参考线最接近归一化目标空间中的群体成员的参考点被认为与该群体成员相关联. 这如图 3 所示. 具体的流程在算法 3 中提供.
2.5 小生境保护操作 (Niche-Preservation Operation)
\ \ \quad
所谓小生境, 就是指种群密度较小的地方. 值得注意的是, 一个参考点可以与一个或多个种群成员与其相关联, 或者不需要任何种群成员与其关联. 我们计算来自
P
t
+
1
=
S
t
/
F
l
P_{t+1}=S_t/F_l
Pt+1=St/Fl 的与每个参考点相关联的群体成员的数量. 让我们将第
j
j
j 个参考点的生态保护数设为
ρ
j
ρ_j
ρj . 我们现在设计了一个新的小生境保护操作, 如下所示. 首先, 我们确定参考点集
J
m
i
n
=
j
:
arg
min
j
ρ
j
J_{min}={j: \arg\min_j ρ_j }
Jmin=j:argjminρj 具有最小
ρ
j
ρ_j
ρj. 如果有多个这样的参考点, 则随机选择一个
(
J
ˉ
∈
J
m
i
n
)
(\bar{J}∈J_{min} )
(Jˉ∈Jmin) .
\ \ \quad
如果
ρ
J
ˉ
=
0
ρ_{\bar{J}}=0
ρJˉ=0 (表示没有关联到参考点
J
ˉ
\bar{J}
Jˉ 的
P
t
+
1
P_{t+1}
Pt+1 成员) , 则在集合
F
l
F_l
Fl 中可以有两个带有
J
ˉ
\bar{J}
Jˉ 的场景. 第一, 在前沿面
F
l
F_l
Fl 中存在一个或多个已经与参考点
J
ˉ
\bar{J}
Jˉ 关联的成员. 在这种情况下, 将与参考线垂直距离最短的成员添加到
P
t
+
1
P_{t+1}
Pt+1. 此时
ρ
J
ˉ
ρ_{\bar{J}}
ρJˉ 加一. 第二, 前沿面
F
l
F_l
Fl 没有任何与参考点
J
ˉ
\bar{J}
Jˉ 相关联的成员. 在这种情况下, 参考点被排除在当前世代的进一步考虑之外.
\ \ \quad
在
ρ
J
ˉ
≥
1
ρ_{\bar{J}}≥1
ρJˉ≥1 的情况下 (即
S
t
/
F
l
S_t/F_l
St/Fl 中已经存在一个与参考点相关联的成员) , 如果存在, 则从前沿面
F
l
F_l
Fl 随机 (也可以使用最接近参考点的点或者使用任何其他分集保持标准) 选择一个与参考点
J
ˉ
{\bar{J}}
Jˉ 相关联的成员添加到
P
t
+
1
P_{t+1}
Pt+1. 然后计数
ρ
J
ˉ
ρ_{\bar{J}}
ρJˉ 加一. 在更新生态保护数后, 该过程总共重复K次以填充
P
t
+
1
P_{t+1}
Pt+1 的所有种群漏洞. 该过程如算法 4 所示.
2.6 利用遗传操作创造后代群体 (Genetic Operations to Create Offspring Population)
\ \ \quad 形成 P t + 1 P_{t+1} Pt+1 后, 通过应用通常的遗传算子, 将其用于创建新的后代种群 Q t + 1 Q_{t+1} Qt+1. 在NSGA-III中, 我们已经对解决方案进行了仔细的精英主义选择, 并试图通过强调最接近每个参考点的参考线的解决方案来保持解决方案之间的多样性. 此外, 正如我们将在第5章节中描述的那样, 对于计算速度快的过程, 我们将 N N N 设置为几乎等于 H H H, 从而对每个种群成员赋予同等的重要性. 由于所有这些原因, 我们没有对NSGA-III使用任何显式选择操作. 种群 Q t + 1 Q_{t+1} Qt+1 是通过从 P t + 1 P_{t+1} Pt+1 中随机挑选父代来应用通常的交叉和变异算子构建的. 然而, 为了创建更接近父代解的后代解 (为了解决第 1 节中提到的第三个困难) , 我们建议在 SBX 算子中使用相对较大的分布指数值.
2.7 NSGA-III一代的计算复杂度
\ \ \quad
在算法 1 中, 具有
M
M
M 维目标向量的大小为
2
N
2N
2N 的群体的非支配排序 (第 4 行) 需要
O
(
N
⋅
l
o
g
M
−
2
N
)
O(N⋅log^{M-2} N)
O(N⋅logM−2N) 次计算5. 在算法 2 的第 2 行中识别理想点需要总共
O
(
M
N
)
O(MN)
O(MN) 次计算. 目标平移 (第 3 行) 需要
O
(
M
N
)
O(MN)
O(MN) 计算. 然而, 极值点的识别 (第 4 行) 需要
O
(
M
2
N
)
O(M^2 N)
O(M2N) 计算. 截距的确定 (第 6 行) 需要一个大小为
M
×
M
M×M
M×M 的矩阵求逆, 需要
O
(
M
3
)
O(M^3)
O(M3) 次运算. 此后, 最多
2
N
2N
2N 个种群成员 (第 7 行) 的正则化需要
O
(
N
)
O(N)
O(N) 次计算.
\ \ \quad
在算法 2 中, 第 8 行需要
O
(
M
H
)
O(MH)
O(MH) 计算.
\ \ \quad
在算法 3 中, 将最多
2
N
2N
2N 个种群成员与H参考点相关联的所有操作都需要
O
(
M
N
H
)
O(MNH)
O(MNH) 计算.
\ \ \quad
在算法 4 的小生境过程中, 第 3 行将需要
O
(
H
)
O(H)
O(H) 次比较. 假设
L
=
∣
F
l
∣
L=|F_l |
L=∣Fl∣ , 第 5 行需要
O
(
L
)
O(L)
O(L) 检查. 最坏情况下的第 8 行需要
O
(
L
)
O(L)
O(L) 计算. 其他操作的复杂度较小. 然而, 上述小生境算法中的计算最多需要执行
L
L
L 次, 从而需要更大的
O
(
L
2
)
O(L^2)
O(L2) 或
O
(
L
H
)
O(LH)
O(LH) 次计算. 在最坏的情况下 (
S
t
=
F
1
S_t=F_1
St=F1, 即第一个非支配前沿超过种群规模) ,
L
≤
2
N
L≤2N
L≤2N. 在我们所有的模拟中, 我们使用了
N
≈
H
N≈H
N≈H 和
N
>
M
N>M
N>M.
\ \ \quad
综合上述考虑和计算, 以较大者为准, 一代 NSGA-III 的计算复杂度以整体最坏情景为准, 为
O
(
N
2
l
o
g
M
−
2
N
)
O(N^2 log^{M-2} N)
O(N2logM−2N) 或
O
(
N
2
M
)
O(N^2 M)
O(N2M).
3 性能指标
\ \ \quad
本文使用 IGD (Inverse generational distance) 6作为性能指标. 假设目标点集为
Z
\mathbf Z
Z, 找到的非支配解集为
A
\mathbf A
A, 则 IGD 定义如下:
IGD
(
A
,
Z
)
=
1
∣
Z
∣
∑
i
=
1
∣
Z
∣
min
∣
A
∣
j
=
1
d
(
z
i
,
a
j
)
(4)
\text{IGD}(\mathbf A, \mathbf Z)=\frac{1}{|\mathbf{Z|}}\sum_{i=1}^{|\mathbf{Z|}}{\underset{j=1}{\overset{|\mathbf{A|}}{\min}}d\left( \mathbf{z}_i,\mathbf{a}_j \right)} \tag{4}
IGD(A,Z)=∣Z∣1i=1∑∣Z∣j=1min∣A∣d(zi,aj)(4) 其中,
d
(
z
i
,
a
j
)
=
∥
z
i
−
a
j
∥
2
d\left( \mathbf{z}_i,\mathbf{a}_j \right) =\lVert \mathbf{z}_i-\mathbf{a}_j \rVert _2
d(zi,aj)=∥zi−aj∥2. IGD 值越小越好, 此指标衡量了收敛性和多样性.
Garza-Fabre M, Pulido G T, Coello C A C. Ranking methods for many-objective optimization[C]//Mexican international conference on artificial intelligence. Springer, Berlin, Heidelberg, 2009: 633-645. ↩︎
Deb K, Pratap A, Agarwal S, et al. A fast and elitist multiobjective genetic algorithm: NSGA-II[J]. IEEE transactions on evolutionary computation, 2002, 6(2): 182-197. ↩︎
Fonseca C M, Paquete L, López-Ibánez M. An improved dimension-sweep algorithm for the hypervolume indicator[C]//2006 IEEE international conference on evolutionary computation. IEEE, 2006: 1157-1163. ↩︎
Das I, Dennis J E. Normal-boundary intersection: A new method for generating the Pareto surface in nonlinear multicriteria optimization problems[J]. SIAM journal on optimization, 1998, 8(3): 631-657. ↩︎ ↩︎
Kung H T, Luccio F, Preparata F P. On finding the maxima of a set of vectors[J]. Journal of the ACM (JACM), 1975, 22(4): 469-476. ↩︎
Schütze O, Esquivel X, Lara A, et al. Measuring the Averaged Hausdorff Distance to the Pareto Front of a Multi-objective Optimization Problem[R]. Technical Report TR-OS-2010-02, CINVESTAV, 2010. ↩︎