笔者最近在学习有关多目标优化的内容,并对内容进行一些整理。这篇文章算是笔者的一篇个人学习笔记,也希望能对他人提供一定的帮助,若有不足之处,也欢迎指正和建议。
注:本文中所举例子均为最小化问题。
一.多目标优化的基本概念
(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,记为。
简单记忆方法:全部小于等于,至少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主要多了两个部分,其一就是