Two-layer的参考点生成方法

来源:互联网 发布:java手机游戏免费下载 编辑:程序博客网 时间:2024/06/05 08:56

在many-objective的优化算法中,目前很多都是基于reference point的,而这些reference point大部分都是使用的Das的那个方法,也就是在一个单位截距的超平面内生成这些点,这些点的元素和加起来是1。也就是说,任意一个点的元素都是来自:

{0/H,1/H,,H/H}

其中H是在boundary的分区的数量,产生的点的个数是CHm+H1,其中m是目标的个数。这个算法现在都基本被基于refernce points的技术所采用,但是有一个问题就是,如果H<m的话生成的参考点只有在boundary上,内部没有产生这些点,但是为了保持diversity的特性,内部还是需要一定的参考点。一个直观的方法就是让H>m,但是当m8的时候,生成的参考点又非常多,计算代价大啊。那么在NSGA-III中给出了一种方法就是使用two-layer的方法。

1:第一次就是使用上面说的方法。然后再在内层生成这些点。
2:内层的生成方法是这样的:
2.1:根据设置的H先在外层生成这些点
2.2:分别用这些点和一个中心点连起来,然后求他们连线的中心点即可。这这个中心点的全部元素值都是等于1/m,中心点就是这个点和1/m加起来除以2即可。

1 0
原创粉丝点击