这是2014年4月在其他博客上写的,转帖到CSDN的博客上。
之前阅读总结各种多目标GA算法特点的论文《Multi-objective optimization using genetic algorithms: A tutorial》(Abdullah Konak等,Reliability Engineering and System Safety,2006)中,提到了一个相对效果比较好的算法NSGA-II,于是找了相关的论文仔细学习了这个算法的过程。
这个算法是由Kalyanmoy Deb等人提出的,有几个特点:
- 不需要用户指定一些类似Fitness sharing方法中niche count(小生境大小)之类的参数:这些参数的轻微不同有可能导致结果很大的差异,所以用户主观指定的参数越少越好;
- 非支配集排序(non-dominated sorting)的时间复杂度相对其他算法较低:已有的排序方法时间复杂度为O(M*N^3)(M:目标函数个数;N:种群个体数目),NSGA-II的排序方法时间复杂度为O(M*N^2);
- 维护了精英个体:维护精英个体能明显地提高多目标GA的效果。