上一节我们介绍了单目标遗传算法,然而在解决实际的问题时,遇到的大部分问题都不止一个目标函数,这样的多目标问题需要用到多目标遗传算法来求解,本节主要介绍的多目标遗传算法是NSGA-II[1](改进的非支配排序算法),该遗传算法相比于其它的多目标遗传算法有如下优点:
- 传统的非支配排序算法的复杂度为
,而NSGA-II的复杂度为,其中M为目标函数的个数,N为种群中的个体数。
- 引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度。
- 采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。(消除了共享参数)
基本概念
在介绍NSGA-II算法之前需要先介绍一些基本概念:
Pareto最优解、Pareto支配关系[2]
以最小化多目标优化问题为例,设有m个目标优化函数
,取任意两个决策变量
:
(1)如对于任意的多目标优化函数(
)都有:
则称
支配