NSGA-Ⅱ论文全文翻译

学习算法最好的方式就是拜读算法论文原文,但英文让很多人望而却步,即便是有翻译软件辅助,但翻译的结果不理想,对文中的意思依然一知半解,为此,本文提供了NSGA-Ⅱ论文的中文翻译版,希望对你的学习有所帮助,公式纯手敲,创作不易,请多多支持。原文参考文献:
DEB K, PRATAP A, AGARWAL S, et al. A fast and elitist Multi-objective genetic algorithm: NSGA-II[J]. IEEE Transactions on EvolutionaryComputation, 2002, 6 (2): 182-197.

一种带精英策略的快速非支配排序多目标遗传算法:NSGA-Ⅱ

**摘要:**采用非支配排序和共享参数的多目标进化算法被诟病于以下原因:(i) O(MN^3)的计算复杂度(M是目标函数个数,N是种群规模),(ii) 没有采用精英策略,(iii) 需要指定共享参数。在本文中,我们提出了一种非支配排序的多目标进化算法(我们称之为非支配排序GA-Ⅱ或NSGA-Ⅱ),能缓解上述存在的三个问题。具体来说,提出了一种计算复杂度为O(MN^2)的快速非支配排序方法;其次,提出了选择算子,该算子通过结合父代种群和子代种群并选择N个最优解来创建交配池(根据适应度和分布)。对5个较难测试问题的仿真结果表明,与PAES和SPEA这两种注重创建多样化Pareto最优前沿的精英多目标进化算法相比,提出的NSGA-Ⅱ在大多数问题中都能在真正的Pareto最优前沿附近找到更好的解的传播和更好的收敛性。由于NSGA-Ⅱ的低计算需求、精英策略和无参数共享方法,NSGA-Ⅱ应该能在未来几年找到越来越多的应用。

1 介绍

在过去的十年中,人们提出了很多多目标进化算法[8,3,5,11]。其主要原因是它们能在一次运行中找到多个Pareto最优解。由于一个解不可能同时是所有优化目标的最优解,因此在Pareto最优前沿或附近给出大量备选解的算法具有很大的实用价值。

Srinivas和Deb[8]提出的非支配排序遗传算法(Non-dominance Sorting Genetic Algorithm, NSGA)是最早的进化算法之一。多年来,对NSGA方法的主要批评如下:

非支配排序的计算复杂度高:目前使用的非支配排序算法的计算复杂度为O(MN^3),在种群规模较大的情况下,算法的成本非常高,特别是需要对种群的每一代进行排序。

缺乏精英策略:最近的结果[10,7]清楚地表明,精英策略可以显著加快遗传算法的性能,也有助于防止一旦找到好的解就会丢失的情况。
需要指定共享参数σ_share:传统的保证种群多样性从而得到多种等价解的机制严重依赖于共享的概念。共享的主要问题是需要指定共享参数(σ_share)。虽然已经有一些关于共享参数动态大小的研究[4],但一种无参数的多样性保护机制是可行的。

在本文中,我们解决了所有这些问题,并提出了NSGA的一个改进版本,我们称之为NSGA-Ⅱ。通过对一些困难测试问题的仿真结果,我们发现NSGA-II在收敛于Pareto最优前沿附近和保持所得到解的多样性方面种群上优于PAES和SPEA这两种精英多目标进化算法。这些结果鼓励NSGA-II应用于更复杂和现实世界的多目标优化问题。

2 精英多目标进化算法

Zitzler、Deb和Theile[10]的研究清楚地表明,精英主义有助于多目标进化算法(MOEAs)实现更好的收敛性。在现有的精英MOEAs中,Zitzlerh和Thiele[11]的强度Pareto进化算法(SPEA)、Knowles and Corne的Pareto存档进化算法(Pareto-archived Evolution Strateg, PAES)[6]和Rudolph[7]的精英GA最为著名。

Zitzlerh和Thiele[11]在他们的强度Pareto进化算法(SPEA)中提出了一种非支配排序的带精英策略的多标准EA。他们提出在每一代保持一个外部种群,从初始种群开始对迄今为止发现的所有非支配解进行存储,这个外部种群也参与遗传操作。在每一代,首先构建外部种群和当前种群的组合种群,组合种群中的所有非支配解根据它所支配解的数量分配适应度,而被支配解分配的适应度低于任何非支配解的最差适应度。这种适应度的分配确保了搜索指向非支配解,采用确定性聚类技术来保证非支配解之间的多样性。虽然[11]中指出的计算复杂度是O(MN3),但通过适当的排序策略,可以将SPEA的复杂度降低到O(MN2)。

Knowles and Corne[6]提出了一种使用进化策略(ES)的简单MOEA。在他们提出的一个父代和一个子代的Pareto存档进化算法(PAES)中,将子代与父代进行比较。如果子代支配父代,则子代被接受为下一个父代;如果父代支配子代,则子代被丢弃并突变成一个新的解(新子代)。然而,如果子代和父代不存在支配关系,那么在父代和子代中的选择通过与迄今为止找到的最优解的存档进行比较做出。将子代与存档的最优解进行比较,以检查它是否对存档的任何成员具有支配关系,如果是,子代被接受为新的父代,并将存档中的被支配解删除;如果子代没有支配存档中的任何成员,则比较父代和子代与存档最优解的距离。如果子代位于参数空间中存档成员中最不拥挤的区域,则接受它作为父代并将其添加到存档中。作者计算了N次计算PAES最坏情况的复杂度为O(aMN),其中a是存档长度。由于存档大小通常与种群规模N成正比,因此该算法的种群复杂度为O(MN^2)。

Rudolph[7]提出但没有模拟一个简单的精英多目标EA,该算法基于父代和后代种群的个体进行系统的比较。将后代种群的非支配解与父代种群的非支配解进行比较,形成一个整体的非支配解集,成为下一次迭代的父代种群。如果这个集合大小不大于期望的种群大小,则会包括后代种群中的其他个体。通过这种策略,他已经证明了该算法可以收敛到Pareto最优前沿,虽然这本身是一个重要的成就,但该算法缺乏动力来完成第二项任务,即保持Pareto最优解的多样性。

3 带精英策略的非支配排序遗传算法(NSGA-Ⅱ)

如前所述,Srinivas和Deb在1994年提出的非支配排序遗传算法(NSGA)受到了许多批评。在本节中,我们提出了NSGA-Ⅱ,它可以环节所有这些问题。我们首先介绍构成NSGA-Ⅱ部分的一些不同模块。

3.1 快速非支配排序方法

为了根据非支配等级对规模为N的种群进行排序,必须将每个解与种群中的其他解进行比较以确定是否被支配。这需要对每个解进行O(MN)个比较,其中M是目标的个数。当这个过程继续下去,寻找所有种群中的第一个非支配等级的成员时,总复杂度为O(MN2)。在这个阶段,所有处于第一非支配前沿的个体被发现。为了找到下一个前沿的个体,暂时屏蔽第一个非支配前沿的解,并再次执行上述过程,重复该过程可以找到后续的前沿。可以看出,在最坏的情况下(当每个前沿只存在一个解时),该算法在没有任何排序的情况下复杂度为O(MN3)。在下文中,我们阐述了一种快速的非支配排序方法,该方法最多需要O(MN^2)次计算。

这种方法的原理与上述方法类似,只是执行了更好的排序策略,使其成为更快的算法。在这种方法中,来自种群的每个解都要与部分填充种群检查支配关系。首先,种群的第一个解保存在集合P’中,然后将每个解(从第二个解开始)逐一与集合P’中的所有成员进行比较。如果解p支配P’中的任意成员q,则将q从P’中去除。这样不属于非支配解集的成员就从P’中删除了。否则,如果解p被P’中的任意成员q支配,则解p被忽略;如果解p不被P’的任何成员支配,则将其加入P’中,这就是集合P’在非支配解下的增长。当检查种群的所有解时,P’的剩余成员构成非支配集。
fast-nondominated-sort§

P^'={1} P^‘中包含第一个成员
for each p∈P∧p∉P^’ 一次取一个解
P’=P’∪{p} 将p暂时包含在P^'中
for each q∈P^'∧q≠p 将p和P^‘中的其他成员进行比较
if p≺q, then P’=P’ {q} 如果p支配P^‘中的成员就将该成员删除
else if q≺p, then P’=P’ {p} 如果p被P^'中的其他成员支配则将p去除

为了找到其他前沿,P^'中的成员暂时被屏蔽并重复上述过程。

在这里,我们观察到种群的第二个解只与P’的一个解进行比较,第三个解最多于P’中的两个解比较,以此类推,最多需要O(MN2)次支配检查。由于每次支配检查需要M个目标函数都进行比较,因此该方法的最大复杂度也是O(MN2)。

3.2 密度估计

为了估计种群中某一点周围解的密度,我们对每个目标取该点两侧的两个点的平均距离。参数i_distance用来估计包围点i的不包含种群其他任何点的最大长方形大小(我们称之为拥挤距离)。在图1中,第i个解在它前沿(用实心圆标记)的拥挤距离是长方形(用虚线框表示)的平均边长。使用以下算法可以计算集合I中各点的拥挤距离:

crowding-distance-assignment(I)
l=|I| I中解的个数
for each i, set 〖I[i]〗_distance=0 初始化距离
for each objective m
I=sort(I,m) 根据每个目标值排序
〖I[1]〗_distance=〖I[l]〗_distance=∞ 因此边界点始终会被选择
for i=2 to (l-1) 对于其他所有点
〖I[i]〗_distance=〖I[i]〗_distance+(I[i+1].m-I[i-1].m)

这里,I[i].m为集合I中第i个个体第m个目标函数值,该过程的复杂度由排序算法决定,在最坏的情况下(当所有解在一个前沿时),排序需要O(mNlogN)。
拥挤度计算

3.3 拥挤度比较算子

拥挤度比较算子≺_n在算法的各阶段指导选择过程,朝向均匀展开的Pareto最优前沿,假设种群中的每个个体i有两个属性。

  1. 非支配等级(i_rank)
  2. 局部拥挤距离(i_distance)

我们将偏序≺_n定义如下:

i≺_n j if (i_rank<j_rank) or ((i_rank=j_rank) and (i_distance>j_distance))

也就是说,两个非支配等级不同的解,我们更倾向于等级更低的点。否则,如果两个点属于一个前沿,那么我们更倾向于区域内点数量更少的点(包含它的长方形尺寸更大)。

3.4 主循环

最初,创建一个随机的父代种群P_0,并按照非支配等级进行排序。每个解分配一个与其非支配等级相等的适应度(1为最佳水平)。因此,假设适应度最小化,二进制锦标赛选择、交叉和变异算子用于创建规模为N的子代种群。从第一代开始,过程有所不同,对于t≥1和特定代数的精英选择过程如下所示:

R_t=P_t∪Q_t 组合父代种群和子代种群
F=fast-nondominated-sort(R_t) F=(F_1,F_2,…), R_t所有非支配前沿
P_(t+1)=∅
until |P_(t+1) |<N 直到父代种群被填满
crowding-distance-assignment(F_i) 计算F_i中的拥挤距离
P_(t+1)=P_(t+1)∪F_i 保活父代种群中的第i个非支配前沿
Sort(P_(t+1),≺_n) 按照≺_n降序排列
P_(t+1)=P_(t+1) [0:N] 选择P_(t+1)中的前N个成员
Q_(t+1)=make-new-pop(P_(t+1)) 选择、交叉和变异产生新种群Q_(t+1)
t=t+1

首先,形成一个组合种群R_t=P_t∪Q_t,其规模为2N。然后根据非支配关系进行排序,将第一个前沿的解加入到新的父代种群P_(t+1)直到超过N,,然后对最后一个被接受的前沿的解按照≺_n排序,共选出N个解,这就是构建种群P_(t+1)的方式。值得注意的是,这个规模为N的种群现在被用于选择、交叉和突变,以创建一个规模为N的新种群Q_(t+1)。值得注意的是,我们使用的是二进制锦标赛选择算子,但是选择标准现在基于拥挤度比较算子≺_n。

现在让我们看整个算法一次迭代的复杂程度,正在执行的基本操作最坏情况相关的复杂度如下:

  1. 非支配排序为O(MN^2),
  2. 拥挤距离为O(MNlogN),
  3. ≺_n排序为O(2Nlog(2N))。

可以看出,上述算法的总体复杂度为O(MN^2)。

通过使用拥挤距离比较程序引入非支配解之间的多样性,该程序用于锦标赛选择和种群减少阶段。由于解与其拥挤距离(邻域解的密度的度量)竞争,因此这里不需要额外的小生境参数(例如在NSGA种需要σ_share)。虽然拥挤距离是在目标函数空间中计算的,但如果有需要,也可以在参数空间中实现[1]。

4 结果

结果是通过几个复杂问题对比与其他算法的优势,与算法本身无关,故不再进行翻译,详情见论文原文。

结语

翻译的论文在CSDN中会出现乱码,如果对你有所帮助请给个关注支持,翻译的PDF版和word版可无偿提供,部分如下图。如果有需要翻译的英文文献,可以联系。
翻译word版

  • 35
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值