NSGA-lll 算法详解
在了解NSGA-lll之前必须先要了解NSGA-ll的算法流程
必须了解快速非支配排序算法
算法步骤
1.初始化种群Pt (规模为N)
2.计算种群Pt适应度值f(x)
3.判断是否达到结束标准
4.对Pt进行常规非支配排序、选择、交叉、变异操作,生成新的种群Rt (规模为N)
5.合并Pt、Rt种群,合并成新的种群St (规模2N)
6.对新种群St进行非支配排序rank1、rank2……ranki…
7.选择新种群Pt+1 (规模N)
①若rank1+rank2+……ranki =K = N,将rank1+rank2+……ranki 中的全部个体作为新种群Pt+1
②若rank1+rank2+……ranki-1 = K < N,且rank1+rank2+……ranki > N,则说明第ranki层个体不能完全取出作为心中群个体。则需要在第ranki层选择出剩余的N-K个个体,放入Pt+1。
算法流程图
如何从第ranki层中选取剩余N - K个个体来满足新种群的个数要求?