Bootstrap

[多目标优化算法]1.NSGA-II——非支配排序遗传算法

笔者最近在学习有关多目标优化的内容,并对内容进行一些整理。这篇文章算是笔者的一篇个人学习笔记,也希望能对他人提供一定的帮助,若有不足之处,也欢迎指正和建议。

注:本文中所举例子均为最小化问题。

一.多目标优化的基本概念

 (1)  多目标优化问题(Multiobjective optimization problem,MOP)

           一个多目标优化问题可以用下面的数学形式来表述:

                                

          其中,x为决策向量,所在空间称为决策空间;F(x)为目标向量,所在空间称为目标空间,由m个目标函数组成,在多目标优化中,m一般为2或3,相对应的,单目标优化的m=1.

(2)   支配(Dominance) 

         对于两个解x与y,若对于任意i=1,2,...,m,均有fi(x)<=fi(y),且存在i,使fi(x)<fi(y), 则称x支配y,记为x\prec y

         简单记忆方法:全部小于等于,至少1个小于。

 (3)   Pareto最优

         Pareto最优原为经济学中的一个概念,在多目标优化中,由于对于不同目标的优化通常是互相矛盾的,故引入该概念。在多目标优化中,若对于解x*,当且仅当x*不被任何其他解支配,称x*为Pareto最优解,由所有Pareto最优解构成的集合,称为Pareto集(Pareto Set),记为PS。相对应的,PS中所有解在目标空间中对应的目标函数值的集合称为Pareto前沿(Pareto Front),记为PF。

      (注意,Pareto最优的概念仅是说该解不被其他解支配,并不是说该解可以支配其他所有解。)

二.NSGA-II

(1) NSGA-II简介

        NSGA-II,全称为Non-dominated Sorting Genetic Algorithm-II,即非支配排序遗传算法,是一种基于支配的多目标优化算法。从其全称我们可以看出,NSGA-II本质上是一种遗传算法,其选择、交叉、变异算子均与遗传算法相同。那么,NSGA-II相较于普通的GA,有什么不同呢?笔者认为,NSGA-II主要多了两个部分,其一就是

;