本人能力有限,此阅读笔记仅为个人见解,如有错误,欢迎批评指正
一、 简介
作者指出大多数进化算法存在的三个缺点:1.时间复杂度高。2.没有采用精英保留策略。3.需要指定参数。作者提出的算法改进了上述三个缺点。
二、基于精英策略的多目标进化算法
在本文的第二部分,介绍了基于精英保留策略的多目标进化算法。介绍了三种基于精英保留策略的算法,即:1、Zitzler and Thiele’s SPEA,。2、Knowles and Corne’s Pareto-archived PAES。3、 Rudolph’s elitist GA are well studied。
图1-SPEA
图一为SPEA算法的描述,“All nondominated solutions in the combined population are assigned a fitness based on the number of solutions they dominate and dominated solutions are assigned fitness worse than the worst fitness of any nondominated solution.”这段话的翻译为:“在联合种群中的所有非支配的解集基于他们支配的解的数量赋予一个适应度值并且被支配的解所赋予的适应度值比最差的非支配集的适应度值还要差。”SPEA算法的复杂度较高。
对于PAES算法,采用的是归档集的策略。不使用实数参数,而是使用二进制编码的方式来产生子代。在该算法中,使用单父代单子代的方法,子代分别与父代比较,如果子代支配父代,则将子代设为新的父代并继续该过程(iteration continue)。相反的,如果父代支配子代,则抛弃子代,使用原父代继续进化。然而,如果父代和子代相互之间互不支配,新父代的选择通过将父代和子代分别与归档集(存储最好的解)中的个体比较选择最优的来继续优化。若产生的子代支配归档集中的任何个体,则采用子代从将归档集中被其支配的个体删除。如果子代不支配任何个体,则父代和子代检查他们在归档集中的邻域解,如果子代在一个更小的拥挤区域中,则选择子代,否则选择父代。
对于Rudolph的算法,他并没有通过仿真实现。他的思想是,将父代种群和子代种群中的非支配解放在一起比较,将新产生的非支配解作为新的父代参与迭代过程。如果比较获得的种群大小比预期的小,则从子代中选取其他个体加入种群。
三、精英非支配排序
3.1 快速非支配排序
先讲述一个简单但复杂度高的方法。为了从N个种群中选出第一层非支配解,每个解需要与其他的个体进行比较,若不被任何个体支配,则加入第一层中。每个个体需要MN(M是目标数)次比较,N个个体需要MN2次比较。最坏的情况,第二层以及后面的层同样需要M*N2次比较,总的时间复杂度为MN3。
快速非支配排序算法思想,首先计算两个实体,一个是支配个体p的解的数量,记做np,第二个是个体p支配的解集Sp。计算所有个体的实体需要O(MN2)次比较,在第一层的非支配解集,其np值为0。算法思想如下:首先,对所有np值为0的个体,将其支配的解集(Sp)中的个体的np值减一(目的是为了筛选方便算法循环选择第二层个体),完成这一步之后,如果有个体的np值减1之后变为0,则将该个体放入独立的集合Q中,Q中的个体属于第二层,再对Q中的个体进行上述操作。
对于第二层及更高层的个体来说,计算np值最多需要计算N-1次。对每个解来说,最多经过N-1次比较操作之后其值减为0,而且个体被分配到具体层之后,不用再进行比较,因此,总的比较次数为N2。因此,时间复杂度为O(MN2)。
3.2 多样性保持
开头部分讲了NSGA在保持多样性方面需要用户设置共享参数,有一些关于参数设置技巧的文献。参数设置存在两个困难:1、适应度函数在保持多样性性能方面很大程度上取决于参数的设置。2、由于每个解需要与其他的解进行比较,所以适应度函数的复杂度为O(N2)。在NSGA-II中,使用拥挤距离比较来替代共享参数,使用这种方法能够减轻上述两种困难。
3.2.1 密度评估
想要获得一个个体的密度值,需要计算该点在所在层次与其相邻的两个个体在每个子目标上的距离差之和来求取,即形成一个长方形。
拥挤距离的计算需要对种群个体的目标函数值进行排序,当采用最好的排序算法时,(如快速排序、堆排序),若种群规模为N,目标数为N时,时间复杂度为O(MNlogN)。
算法如上所示:集合中个体数目赋值给l,对集合中每个个体,将其拥挤距离赋值为0,在第二个循环中,循环条件是目标个数m,对每一维按照函数值排序,边界点(即第一个点和最后一个点)的拥挤距离赋值为无穷大,里层循环是计算除边界点外其他个体的拥挤距离。
构造偏序集:根据所有个体的拥挤距离及其所在层次,构造偏序集。层次越低的个体,优先加入偏序集,若个体层次相同,则比较拥挤距离,拥挤距离大的,优先加入偏序集。
3.3 NSGA-II主要思想
初始化时随机生成一个初始群体P0,在此基础上采用二元锦标赛选择、交叉和变异操作产生一个新的群体Q0,将Pt和Qt并入Rt中,对Rt分类排序,然后根据需要计算某个分类排序子集中所有个体的拥挤距离,并建立偏序集,在上图中F1和F2中的个体直接入选(因为层次低),在F3中,选择一部分进入新群体,直到Pt+1中个体数目为N。