NSGA-2多目标遗传算法。有人能给我一个“简单的解释”吗?

时间:2012-06-07 20:00:42

标签: genetic-algorithm

我正在研究遗传算法。

有两个目标,每个目标都有自己的适应值(fv1,fv2)。

我知道世代(SGE)和稳态(SS)遗传算法是如何工作的。

我正在努力了解NSGA-2和SPEA-2(我正在使用Java库JCLEC的实现)如何工作,特别是:

  • 什么是“外部人口”以及如何调整大小
  • SS和SGE单目标算法的区别是什么(每个人只有一个健身值的部分)

如果有人正在使用JCLEC库,这些是我设置的参数:

  • 外部人口:1000
  • k值:10
  • 其他属性与SS和SGE相同(人口规模:100,交叉:MPX交叉等)。

3 个答案:

答案 0 :(得分:22)

以下是NSGA-II的解释

  1. 首先,它随机初始化人口。
  2. 基于Pareto Non dominated集合对染色体进行分类并放入前端。在帕累托前沿,染色体的排序基于溶液之间的欧几里德或I-dist(NSGA-II中使用的术语)。通常,远离(不拥挤)其他解决方案的解决方案在选择时被赋予更高的偏好。这样做是为了设置多样化的解决方案并避免拥挤的解决方案集。
  3. 从当前群体中挑选出最好的N(群体)染色体并将其置于交配池中
  4. 在交配池中,比赛选择,交叉和交配完成。
  5. 交配池和当前人口合并。对得到的集进行排序,最好的N染色体进入新的群体。
  6. 转到第2步,除非已达到最大代数。
  7. 解决方案集是最新人口中排名最高的Pareto非支配集。

答案 1 :(得分:4)

我建议阅读有关这些算法的论文,这些论文很好地解释了这些功能:

  • Deb,Pratab,Agarwal,Meyarivan。一种快速精英的多目标遗传算法:NSGA-II。 IEEE Transactions on Evolutionary Computation 6(2),pp.182-197,2002。
  • Zitzler,Laumanns,Thiele。 SPEA2:改进强度帕累托进化算法。技术报告(TIK-103),瑞士联邦理工学院(ETH),2001年。

我确信您可以在网上找到这些出版物的PDF格式。

关于稳态遗传算法和世代遗传算法之间的区别:在世代替代中,您只使用旧种群中的基因创建一个与旧代相同大小的全新种群,然后将其替换为整体。在稳态替换中,您只需创建一个新个体,然后只替换人口中的一个人。稳态GAs通常会收敛得更快,但它们不太可能找到良好的局部最佳值,因为它们不像使用世代替换那样探索健身状况。它当然取决于问题,有时你可以选择你想要替换多少老一代,这允许你在这两者之间有一些任意比例。

还有其他多目标算法,例如AbYSSPAES

答案 2 :(得分:1)

可以在

找到一个来自几何的简单例子,有很好的解释
 https://www.youtube.com/watch?app=desktop&v=Yb82W2Bolqc&ab_channel=IITKharagpurJuly2018

其他都可以

 https://www.slideshare.net/AhmedGadFCIT/multiobjective-optimization-using-nondominated-sorting-genetic-algorithm-with-numerical-example-stepbystep