8

我正在研究遗传算法。

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

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

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

  • 什么是“外部人口”,应该如何衡量
  • SS 和 SGE 单目标算法有什么区别(部分原因是每个人只有一个适应度值)

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

  • 外部人口:1000
  • k值:10
  • 其他属性与 SS 和 SGE 相同(population-size:100 , crossover: MPX crossover etc..)
4

3 回答 3

25

这是对 NSGA-II 的解释

  1. 首先,它随机初始化种群。
  2. 基于帕累托非支配集对染色体进行排序并放入前沿。在 Pareto 前沿内,染色体根据解或 I-dist(NSGA-II 中使用的术语)之间的欧几里得进行排序。通常,在选择时,距离其他解决方案较远(不拥挤)的解决方案会被给予更高的优先级。这样做是为了生成一个多样化的解决方案 n 集合并避免拥挤的解决方案集合。
  3. 从当前种群中挑选出最好的 N(种群)染色体并放入交配池
  4. 在交配池中,完成比赛选择、交叉和交配。
  5. 结合了交配池和当前种群。结果集被排序,最好的 N 条染色体进入新的种群。
  6. 转到第 2 步,除非已达到最大代数。
  7. 解集是最新群体中排名最高的帕累托非支配集。
于 2012-06-16T15:44:45.540 回答
5

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

  • Deb、Pratab、Agarwal、Meyarivan。一种快速且精英的多目标遗传算法:NSGA-II。IEEE Transactions on Evolutionary Computation 6(2),第 182-197 页,2002 年。
  • 齐茨勒、劳曼斯、蒂勒。SPEA2:改进强度帕累托进化算法。技术报告 (TIK-103),瑞士联邦理工学院 (ETH),2001 年。

我确信您能够在网络上找到这些出版物的 PDF。

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

还有更多的多目标算法,例如AbYSSPAES

于 2012-06-10T11:27:15.753 回答
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
于 2021-01-22T07:55:29.973 回答