回答

4

的差异是相当大的。正如你所说,一个是以帕累托为基础的,另一个则不是。在MOO中,这是一件很重要的事情。 VEGA通过将人口划分为不相交集合并迫使不同集合演变为不同的单一目标。这里有一些机制可以帮助将它们组合成帕累托集合的有意义的表示,但它基本上是针对不同目标的解决方案的联合。选择是通过选择相对于其单独设置的目标函数更好的解决方案来完成的。

NSGA和其他基于Pareto的方法是完全不同的。他们的选择不是基于任何特定的目标选择,而是基于解决方案的特性而不是相互之间的选择。每种这样的算法在执行这些比较时都做出略微不同的选择,NSGA-II(绝对应该使用算法的第二版本)通过非支配排序来完成。基本上,你会发现所有非主导的解决方案,并称他们设置#1。然后,如果您删除了#1组中的元素,它们将变为非支配的所有解决方案 - 它们将变为#2组。你继续下去,直到解决所有的解决方案,结果就像剥离洋葱层。然后选择程序是你总是选择较低级别的成员(设置#1,然后#2,等等)。如果你不能把所有的特定层次的要素都拿走,你可以通过选择与其他层次更接近的解决方案来打破关系,这个想法是,如果你不能把它们全部拿走,你至少应该尽量不要选择你从一个小小的群集中获得的那些。

一般来说,你应该看看基于帕累托的方法。他们已经被证明是至少10至15年的选择。特别是,你应该关注elitist基于Pareto的方法,如NSGA-II,SPEA2,epsilon-MOEA,以及一些最近的竞争者。