ENS与T-ENS(失败稿)

高效非支配排序 (ENS)

​ 和其他非支配排序相比,理论分析显示,ENS方法的空间复杂度是O(1)。即使在最糟糕的情况下,ENS的复杂度也只是O(MN^2),与快速非支配排序相同。

​ ENS方法是逐个确定每个解决方案所属的前沿,而大多数现有的非支配排序方法则一次性确定所有在同一前沿的解决方案。单独确定每个解决方案所属的前沿的主要优点是,它可以避免重复比较,因为在这种方法中,待分配的解决方案只需要与已经被分配到前沿的解决方案进行比较。

ENS的详细信息

​ 在最小化问题中,该方法首先根据第一个目标值的升序对种群案进行排序,其中N是种群大小。如果两个解决方案的第一个目标值相同,那么它们将根据第二个目标值进行排序。这个过程会一直持续,直到种群中的所有个体都被排序。如果解决方案在所有目标中的值都相同,那么它们的顺序可以随意。对于这个已排序的种群 < n,那么解决方案pm永远不会被解决方案pn支配,因为在pm中至少存在一个目标,其值小于pn中同一目标的值。这意味着这两个解决方案之间只存在两种可能的关系:要么pm支配pn,要么pm和pn无法比较。

  • 行四:通过算法二或者算法三,把P[n] 的值赋给F

当一个解决方案pn被分配到前沿Fi的时候,Fi必须满足的条件

  • 在每个已分配的前沿Fj中,都存在至少一个解决方案支配pn,其中1 ≤ j ≤ i - 1
  • 在任何已分配的前沿Fk中,都不存在一个解决方案支配pn,其中k ≥ i

顺序搜索策略(称为ENS-SS)

​ 对于解决方案pn,算法首先检查是否存在一个已经被分配到第一前沿F1并且支配pn的解决方案。如果这样的解决方案不存在,就将pn分配到前沿F1。如果pn被F1中任何一个解决方案支配,开始将pn与被分配到F2的解决方案进行比较。如果没有在前沿F2中的解决方案支配pn,就将pn分配到前沿F2。如果pn没有被分配到任何现有的前沿,就创建一个新的前沿,并将pn分配到这个新的前沿。

只需一次比较就能判断一个待分配的解是否属于现有的前沿。其原因如下:

​ 在排序过程中,被分配到一个前沿的解按照第一个目标的升序排列,意味着这些解的第二目标是降序的,因为这些解彼此之间是非支配的。这就意味着,如果待分配的解pn被现有前沿中的一个解支配,那么它应该被前沿中的最后一个解支配,因为在前沿中的所有解里,这个最后的解在第二目标上的值是最小的。因此,对于双目标优化问题,这个方法可以仅通过执行待分配解与每个前沿的最后一个解之间的比较,来确定一个解的前沿序号。

二分搜索策略(ENS-BS)

​ 二分搜索策略开始时会检查中间的前沿F⌊L/2⌋,而不是第一个前沿F1,其中L是到目前为止,也就是在解pn被分配之前,已经创建的前沿的数量。如果解pn没有被前沿F⌊L/2⌋中的任何解所支配,那么解pn将会与前沿F⌊L/4⌋中的解进行比较。否则,解pn会与前沿F⌊3L/4⌋中的解进行比较。通过这种方式,二分搜索可以在检查⌈log(L + 1)⌉个前沿后,确定解pn所属的前沿。如果已经检查过最后一个存在的前沿FL,并且解pn并不属于这个前沿,那么就会创建一个新的前沿FL+1,并将解pn分配给这个新的前沿。

posted @ 2023-09-09 16:12  东几月  阅读(128)  评论(0)    收藏  举报