基于NSGA-II算法的研究和改进
在大学的时候学习了有关NSGA2算法的相关知识,对这个颇有兴趣,想着把自己学习的内容都记录下来。同时也是自己第一次开始写博客,想开始自己以后的博客之路,为下班后的业余时间找点事情做前言
本节内容主要大致说明改进的NSGA-II算法和传统的NSGA-II算法的对比结果。
后续会基于NSGA-II算法的研究和改进的系列文章主要分为以下内容:
- 多目标的数学模型和概念
- 进化算法
- 传统的NSGA2算法
- 对传统的NSGA2算法的改进
- 实验结果
一、改进的NSGA-II与传统的NSGA-II的结果对比
测试函数为:ZDT1、ZDT2,ZDT3,ZDT4,ZDT6
指标采用:分布性指标(GD)和距离指标(SP)
其他测试参数:(每一个参数的说明后续章节会说明)
下面是测试函数根据 30 次的测试情况,选取两个算法对应的最终距离指标 GD和SP 最小的解, 计算每一代的GD和SP的结果,,画出迭代500次过程中GD和SP的变化,对比两者的收敛速度和收敛结果,以及Pareto前言的分布性。
从上述的 5 组对比图,可以看出改进的 NSGA-II 算法在距离指标上的收敛 速度快于传统的 NSGA-II 算法。在 ZDT1、ZDT2,ZDT3,ZDT6 这三个测试函 数中,改进的 NSGA-II 算法在距离指标上,在进化不到 50 代的时候就已经收敛, 而对于传统的 NSGA-II 算法要想距离指标收敛到一个较理想的程度,所需的进化代数需要在 300 代以上。对于 ZDT4 函数,改进的 NSGA-II 算法收敛到接近 0 的附近也只需 100 代左右,而传统的 NSGA-II 算法则陷入了一个局部最优中。 对于分布性指标的收敛情况,同样在 ZDT1、ZDT2,ZDT3,ZDT6 这三个 测试函数中改进的 NSGA-II 算法可以较快的收敛,传统的 NSGA-II 算法最终收敛的结果与改进的 NSGA-II 算法结果相近,最终都是在一个小范围内波动。