对非支配遗传算法三的一些理解

之前在寻找求解高维目标优化问题的有效方法的时候,注意到了NSGA-III算法,大多数多目标进化算法在求解目标维数较低的问题时较为有效,当目标数目大于等于3的时候,也就是面对高维目标优化问题,很多方法由于维数增多选择压力下降,效果变得不理想。
NSGA-III的框架基本和NSGA-II相同,同样利用快速非支配排序将种群个体分类进入不同的非支配前沿,不同的是:对于在临界层中的环境选择,NSGA-II的方法是利用拥挤比较操作来选择从而保持多样性,NSGA-III最大的变化就是利用良好分布的参考点来保持种群的多样性。
下面就在阅读论文学习该算法时遇到的一些问题,进行以下的几项总结:
1、参考点的产生
2、标准化目标空间
3、关联操作
4、环境选择

1、参考点的产生

参考点既可以以结构化的方法预定义也可以由使用者提前提供。Deb大神的论文中使用的是Das and Dennis提出的边界交叉构造权重的方法,将参考点放在一个标准化的超平面上。
在目标空间中,一个维度为(M-1)标准单纯形(如3目标的话,那么该单纯形就是个平面),它对所有的目标轴都有相同的倾斜度。如果考虑沿着每个目标方向分为p份,参考点H的总数就可以计算出来。比如在一个三目标(M=3)的问题中,参考点在一个顶点为(1,0,0),(0,1,0)和(0,0,1)的三角形上产生。如果每个目标轴分为4部分(p=4),那么参考点的个数H=15。计算公式如下:
H = ( p M + p − 1 ) H = (^{M+p-1}_{p}) H=(pM+p1)
其中M为目标数目,p为每个方向上分割的份数。
但是,该方法有一个严重的缺点,就是分割份数p的大小的会影响中间点产生的情况,而如果想产生中间点,在目标维度较大的情况下,参考点数量则会急剧增加,因此为了避免这种情况,Deb提出采用两层参考点产生方法,增加了内层,这样既能保证中间点的产生也不会使得参考点数目过多。
对非支配遗传算法三的一些理解_第1张图片

2、标准化目标空间

也就是种群成员的自适应标准化,在这个过程中较难理解的是极值点是如何得到的,下面简述大体步骤,重点分析极值点的产生。
以最小化为例,首先得到种群St中的所有个体在每一维目标上的最小值,构成当前种群的理想点(z1min,…,zMmin) ,然后将所有个体的目标值,以及理想点以此理想点为参考作转换操作,这时理想点变为原点,个体的目标值为转换后的临时标准化目标值f’i(x)=fi(x)-zimin。然后计算每一维目标轴上的极值点,这M个极值点组成了M-1维的线性超平面,这时可以计算出各个目标方向上的截距。然后利用截距和临时的标准化目标值计算真正的标准化目标值:
在这里插入图片描述
其中ai为各维目标方向上的截距。
对非支配遗传算法三的一些理解_第2张图片

2.1、下面详叙极值点的产生方法:

用大白话来说:计算每维目标方向(目标函数)上的极值点,就是在该维上目标值很大,在其他维度上很小的点所对应的个体所对应的目标值。
Deb等人在论文中利用将权重向量w作为坐标轴方向的achievement scalarizing function得到极值点:为了计算第i维目标轴上的极值点,需要固定一个目标方向,则该方向向量wi=1,其他方向的权重设为10-6(无限接近0),则权重向量w = (1,10-6,…)固定了,然后将下面的ASF函数作为目标函数进行最小化求解,得到的就是该目标方向上的极值点,ASF函数:
在这里插入图片描述
举个3目标的例子,解释该过程:
我们初始化种群后,会得到很多个体,他们的目标值可能是(1,0.4,0.5),(2,4,0.8),(0.3,0.6,5)等等,如果有一些点如果在某个目标上的值很大,在另外两个目标上的值很小,则这类点更靠近该目标轴,它们就是所谓的极值点,目标就是找到在一个方向上值很大,另外两个目标值很小的点,但是我们可能得到很多这样的点,这样就需要选择其中最小的作为极值点,所以是一个最小化问题。三个目标的问题话可以找到三个这样的极值点。在ASF方程中,固定第一个坐标轴,权重向量w =(1,10e-6, 10e-6),那么(1,0.4,0.5)/w,这个时候最大的肯定是0.5这个方向,得到值0.5 x 10e6。另外两个点同样计算得到:(2,4,0.8)在ASF后变为0.8 x 10e6,(0.3,0.6,5)在ASF后变为0.6 x 10e6,然后选取这三个值中最小的对应的点作为极值点,可知:0.5 x 10e6是最小的,对应(1,0.4,0.5)是最合适的极值点。
注解:为什么要用ASF函数写作如此形式呢?我理解的是:因为我们得到的极值点是想更靠近该目标方向的坐标轴。

3、关联操作

参考点设置完成后,要进行关联操作,我们要让种群中的个体分别关联到相应的参考点。为了这个目的,我们定义一个参考线,它是原点与参考点在目标空间的连线。有了参考线后,我们计算种群St的每个个体到参考线的垂直距离。然后个体与和它最近的参考线关联起来。
对非支配遗传算法三的一些理解_第3张图片

4、环境选择操作

这是从临界层FL中选择k个个体加入到下一父代Pt+1的操作。
在上面的关联操作后,可能会出现以下情况:一:参考点关联一个或多个个体;二:没有一个个体与之关联。
NSGA-III记录了参考点在集合Pt+1=St/FL中所关联的个体数目,将这个小生境计数记为ρj,它是第j个参考点关联的个体数目。
个体保留操作:首先我们选择ρj最小的参考点,如果有多个这样的点,那么随机选择一个即可。如果ρj=0,就表示集合Pt+1=St/FL中没有与之关联的点。那么在FL中会出现以下两种情况:(1)在FL中存在一个或多个个体与之关联,则将离它最近的个体与之关联,并将该个体加入到Pt+1中;(2)在FL中不存在个体与他关联,那么在余下的操作中就不考虑该参考点。如果ρj≥1,表示Pt+1=St/FL中已经有一个个体与该参考点关联,如果FL中有个体与之关联,随机选择一个,将该个体加入到Pt+1中。重复以上操作指导Pt+1的大小等于N。

你可能感兴趣的:(多目标进化算法)