我想知道在多目标优化选择的背景下,矢量生成遗传算法(VEGA)和非指定排序遗传算法(NSGA)算法之间存在什么差异?
(我知道NSGA是基于帕累托的,而VEGA是非基于帕累托的。)
答案 0 :(得分:4)
差异非常大。如你所说,一个是基于帕累托的,另一个不是。在MOO,这是一件大事。 VEGA的工作原理是将人口划分为不相交的集合,并迫使不同的集合向不同的单一目标发展。那里有一些机制可以帮助它们组合成帕累托集合的有意义的表示,但它基本上只是针对不同目标的解决方案的结合。通过选择相对于其单独设定的目标函数更好的解决方案来完成选择。
NSGA和其他基于帕累托的方法完全不同。他们的选择不是基于任何特定的目标选择,而是基于相互比较的解决方案的属性。每个这样的算法在执行这些比较时的选择略有不同,NSGA-II(你绝对应该使用算法的第二个版本)通过非支配排序来做到这一点。基本上,您可以找到所有非支配解决方案并将其称为#1。然后,如果删除了集合#1的元素,则会找到所有不受支配的解决方案 - 它们将成为#2集。你继续坚持下去,直到考虑到所有的解决方案,结果就像剥去洋葱的层。选择过程是您始终选择较低类的成员(设置#1,然后是#2,依此类推)。如果你不能采取特定级别的所有元素,你可以通过在该级别中选择与其他级别相比的解决方案来打破关系,这个想法是,如果你不能全部采用它们,你至少应该尽量不挑选你从一个小小的集群中拿走的那些。
一般来说,您应该关注基于帕累托的方法。它们已经成为至少10 - 15年的成熟选择。特别是,您应该关注 elitist 基于帕累托的方法,如NSGA-II,SPEA2,epsilon-MOEA以及一些最近的竞争者。