\ \ \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》上一篇文章. 本文是该算法的阅读笔记.
\ \ \quad 粗略地说, 高维多目标问题被定义为具有四个或四个以上目标的问题. 两个和三个目标问题属于不同的类别, 因为在大多数情况下, 所得到的帕累托最优前沿在总体上可以用图形方法综合可视化. 尽管高维多目标优化问题的目标个数的严格上限不是很明确, 但除了少数情况1外, 大多数实践者对最多10到15个目标感兴趣. 在这一部分中, 我们首先讨论现有的EMO (Evolutionary multi-objective optimization) 算法在处理许多目标问题时可能面临的困难, 并调查EMO算法在处理大量目标时是否有用.
\ \ \quad 当前在支配原则下工作的最先进的EMO算法可能面临以下困难:
\ \ \quad 除了以上问题, 实际问题中由于目标解集集中在帕累托前沿面的一个小区域, 因此如何寻找也是算法应用到实际中的一个阻碍. 有研究发现, 在许多实际问题中, 虽然目标维数很高, 但可以退化成低纬度的多目标问题, 通常只有2~3维, 如何识别冗余目标也是一个难题.
\ \ \quad 为了解决上述难题, 该论文提出以下求解思路:
\ \ \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).
\ \ \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 中选择. 我们将在以下小节中描述剩余的选择过程.
\ \ \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 最优解, 因此从决策和多目标优化的结合应用的角度来看, 该方法可以得到更多的应用.
\ \ \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.
\ \ \quad 在结构化参考点的情况下, 使用Das and Dennis4的方法计算的原始参考点已经位于该归一化超平面上. 在用户首选参考点的情况下, 使用公式(3)将参考点简单地映射到上述构造的归一化超平面上. 由于归一化过程和超平面的创建是在每一代使用极限从模拟开始就发现的点, 所提出的 NSGA-III 程序自适应地保持每代 S t S_t St 成员所跨越的空间的多样性. 这使 NSGA-III 能够解决具有帕累托最优前沿的问题, 其目标值可以不同地缩放. 该过程也在算法 2 中描述.
\ \ \quad 在根据目标空间中 S t S_t St 成员的大小, 对每个目标进行自适应正则化后, 接下来需要将每个种群成员与参考点相关联. 为此, 我们通过将参考点与原点连接来定义对应于超平面上每个参考点的参考线. 然后, 我们计算每个群体成员与每条参考线的垂直距离. 其参考线最接近归一化目标空间中的群体成员的参考点被认为与该群体成员相关联. 这如图 3 所示. 具体的流程在算法 3 中提供.
\ \ \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 所示.
\ \ \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 算子中使用相对较大的分布指数值.
\ \ \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).
\ \ \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. ↩︎