NSGAIII中的normalization objectives

来源:互联网 发布:oracle数据库经典书籍 编辑:程序博客网 时间:2024/05/19 03:25

最近为了找一些如何搞reference point,老板让我去看下NSGAIII的paper。老板说上课的时候讲过的,搞得我很惭愧,我当时没好好听。并且看了老板的PPT和论文上说的差别有点大啊。才拿到这个paper,发现第一块就不明白了,我打算每看懂一部分就做个记录,一则加深我的理解,二则在复述的过程中可能会有更多的新发现。

首先NSGAIII面临的算法就是normalization objectives。其实当看懂这部分之后, 它做的工作的确是normalization的工作。这块是我在结合了JMetal对应的代码之后,我才看懂算法的。并且在IEEE上检索的到这篇论文其实不如作者主页提供的那个版本, 在作者提供的版本上有那个ASF的具体的公司,在IEEE提供的版本上面是没有ASF公式的,肯定是看不懂的。

1:首先是计算在每个目标维度i上的最小值,在论文的描述中是用自开始迭代到迭代至今的全部的个体中来找目标i上的最小值的。但是在算法中只是从当次迭代的个体中去找的,仔细想来也对,因为在non-dominate sorting的过程不能让目标值最小的解已经被抛弃掉了(我们默认讨论的就是寻求最小值的优化过程)。在JMetal的实现过程中,更是绝,直接从front1中的个体中来找,其实道理是一样的,最小值只可能出现在front1中的solution中啊。假定在第i个目标上对应的最小值是zi。然后依次让每个目标值都减去对应维度上最小值,得到fi=fizi。这个zi在文中成为idea points。想一下的确是很完美,因为在最小化问题中找最小值的嘛,这个就是最小值。

2:此时可以用一个目标为2的例子来思考下,就是让点靠上坐标轴,因为比如在DTLZ1 3目标的问题中,知道TF在三个坐标轴上的交点的截距是0.5,但是在未达到收敛之前,可能TF的范围都还很小,都还没靠上坐标轴,这样已减去最小值,就可以让靠上坐标轴了。

3:靠上坐标轴之后,就要找到这些靠上坐标轴的点了,也就是文中算法说的extreme points。文中使用了ASF来找,是分别从每个维度上对f来计算的,比如当前固定的是一个维度,然后对于f先从第一个维度上开始计算,此时ASF(x,w)=maxi=1:mfi(x)/wi,也就是说如果当前是判断第一个维度的话w1=1,否则其余的wi=0 for i1。然后这个维度上判断完之后,就找最小的那个值,这样就可以找到这种extreme point了,其实想想也很容易理解,先说固定维度情况下找ASF的情况,它是在固定维度下,判断这个目标的全部维度值哪个最大,如果是extreme point,不在对应为度上的值是0,除以什么数还是0。而对于全部的目标值来说,只有extreme point这种点出来的值才是最小的,因为它的分母比起其它来说要稍微大一点。

4:找到这种extreme point之后,接下来就找对应坐标轴上的截距,其实这个截距就是这个extreme point在对应坐标轴上的坐标值。我们记录为ai

5:接下来就是归一化了,也就是fi/(aizi),注意到fi=fizi的,这下就清楚多了吧,步骤1,2,3,4就是在找ai的。

此时完成了objectives 的normalization了。

2 0
原创粉丝点击