求解 MOP 的主要目的是:在给定的决策空间内,尽可能找到一系列满足问题约束条件的最优解集,为解决 MOP 的决策者提供相关数据。以最小化的 MOP 为例,其数学模型为:
m i n F ( x ) = ( f 1 ( x ) , f 2 ( x ) , ⋯ f m ( x ) ) T s . t x ∈ Ω ⊆ R n minF(x)=\left( f_1(x),f_2(x),\cdots f_m(x)\right)^T \\ s.t \,\,\,\,\,\,\,\,\,\,\,\,\,\,x\inΩ \subseteq ℛ^n minF(x)=(f1(x),f2(x),⋯fm(x))Ts.tx∈Ω⊆Rn
其中 x = ( x 1 , x 2 , . . . x n ) T {x=\left(x\mathop{{}}\nolimits_{{1}},x\mathop{{}}\nolimits_{{2}},...x\mathop{{}}\nolimits_{{n}} \left) \mathop{{}}\nolimits^{{T}}\right. \right. } x=(x1,x2,...xn)T是 n n n维决策空间的一个向量, m m m是目标函数的规模, Ω Ω Ω是决策空间( decision space ), f i ( x ) {f\mathop{{}}\nolimits_{{i}} \left( x \right) } fi(x)是多目标优化问题的目标函数。 F ( x ) : Ω → Θ ⊆ R m ( m ≫ 2 ) {F \left( x \left) : \Omega \xrightarrow {} \Theta \subseteq R\mathop{{}}\nolimits^{{m}} \left( m \gg 2 \right) \right. \right. } F(x):ΩΘ⊆Rm(m≫2)是将决策空间 Ω Ω Ω映射到 m m m 维目标空间(objective space ) Θ \Theta Θ 中的映射函数。
简单来说一个目标函数 F ( x ) F(x) F(x)包含多个目标子函数 f i ( x ) f_i(x) fi(x),实际求解目标函数是由求各子目标函数体现的,这正是与单目标优化问题的区别之处。
在存在多个Pareto最优解的情况下,如果没有关于问题的更多的信息,那么很难选择哪个解更可取,因此所有的Pareto最优解都可以被认为是同等重要的。由此可知,对于多目标优化问题,最重要的任务是找到尽可能多的关于该优化问题的Pareto最优解。因而,在多目标优化中主要完成以下两个任务:
第一个要求算法要保证可靠的收敛性,第二个要求算法保证充足的分布性(包括多样性和均匀性)。即要求求得尽可能均匀分布的pareto最优解集,然后根据不同的设计要求和意愿,从中选择最满意的设计结果。多目标优化问题最终获得的解实际是所有有效解中的一个解或确定全部非支配解。
现有的多目标优化算法种类繁多,这里根据核心思想进行以下分类(选取部分):
核心思想 | 算法 |
---|---|
基于Pareto支配关系 | NSGA,NSGAⅡ,GrEA,SDR |
基于维持算法多样性 | DMI,SDE,DIR |
基于聚合函数 | MOEA/D,DBEA-eps,NSGAⅢ |
基于指标(Indicator) | Hypervolume,HypE,R2 |
基于参考集 | TAA,Two-Arch2,TC-SEA |
所谓基于Pareto支配关系,就是对当前获取点的优劣排序,以用于接下来 的淘汰和进化,不同的支配算法对此制定的规则不同,NSGAⅡ 是通过快速非支配排序算子对解集进行排序,然后利用个体拥挤度距离算子和精英策略选择算子进行进化。GrEA 算法基于网格,通过边界支配和边界差异增大算法的选择压力(选择压力影响点的进化方向,即影响最后的Pareto解),SDR是一种增强的支配关系,它在每一个定制的领域中保持一个收敛性最好的个体,平衡了算法的收敛性和多样性。
DMI算法,SDE算法,DIR算法
在研究多目标优化刚开始的时候,主要针对研究种群的收敛性,而很少考虑维持种群多样性(多样性很重要!!),所以产生了一些针对多样性的算法。DMI 机制根据种群的分布性决定是否激活维持种群多样性的策略。上文说的GrEA算法也引入网格排序、网格拥挤度和网格坐标距离等机制,以此来维持解的均匀性。SDE 算法通过比较邻居解与当前解的分布以及收敛的信息,决定如何移动其它解的位置,这个算法可以整合到NSGAⅡ框架中来形成完整的求解算法,DIR是一种指标,可以用来评估解集的多样性。
MOEA/D算法,DBEA-eps算法,NSGAⅢ算法
MOEA/D算法的思想就是“分解”,分解就是把多目标问题分成多个单目标子问题进行求解,那么怎么分呢?就要用到聚合函数,顾名思义,将多个单目标子指标聚合成一个大指标来衡量多目标问题。MOEA/D算法提出了3种聚合函数:权重求和(Weighted Sum)函数、切比雪夫(Tchebycheff )函数、边界交叉惩罚(penalty-based boundary intersection)函数。每一个子问题都会根据自己权重向量划分邻居,提高了邻居解的信息共享性,并且由于显而易见地降低了计算复杂性(把复杂多目标转成简单单目标,必须简单了啊)。值得一提,权重求和的考虑在多目标优化问题研究的开始就有提出(毕竟直觉上就可以这样处理),像RWGA,VEGA都是基于线性加权的多目标遗传算法,VEGA也算是开启多目标遗传算法研究的大门了。权重设置现如今有三种:固定权重,随机权重和适应性权方法,后两者方法用来更全面利用遗传算法的搜索功能。
在MEDA/D的框架上,又有很多改进算法被提出。DBEA-eps采用系统采样法产生参考向量,并且用 ε { \varepsilon } ε维持收敛性和多样性的平衡。NSGAⅢ基于参考点和非支配排序,首先将种群内个体的进行非支配排序,然后借助参考点集和归一化函数从最后一层非支配层选取个体进入下一代。NSGAⅢ 算法采用非支配排序策略增大算法的选择压力,通过参考点集将目标空间划分来维持种群的多样性。
Hypervolume,HypE,R2
指标可以用来评价一个多目标进化算法的好坏,主要从算法的收敛性能以及算法取得的最优解集在目标空间分布是否均匀两个方面来度量。比如反转世代距离(IGD)指标
I G D IGD IGD指标其实就是计算算法求得最优Patero解集 P P P,与真实Patero解集 P t r u e P_{true} Ptrue的平均最小欧式距离( ∣ P t r u e ∣ |P_{true}| ∣Ptrue∣指 P t r u e P_{true} Ptrue元素个数)。 P t r u e P_{true} Ptrue也可以看作是从PF上均匀选取的参考点集。显然 I G D IGD IGD需要真实Patero解集,处理实际问题时有局限性。
那么利用指标,就可以指导点的进化过程。如超体积(Hypervolume)指标:
公式很简单,就是测量算法获得的非支配解集中各个体 i i i与参考点构成的超体体积。超体积 ( H V ) (HV) (HV)可以度量非支配解集所支配区域的尺寸大小,因此超体积越大,对应 I G D IGD IGD指标越小。理论证明,用 H V HV HV指标衡量解集的优劣性,一定能够找到真实 Pareto PF面。那么通过参考点,在保证超体积的同时,就可以完成对点的进化指导 。
H V HV HV不依赖真实的Pareto解集,适用于实际问题。但计算非常耗时,尤其是高维情况下。多目标超体积估值算法(HypE)就是针对解决这种情况的,利用蒙特卡罗算法来近似计算超体积的值,这样计算的代价要小很多并且也能得到近似值。除此之外,还有其它指标,如R2, Δ p { \Delta _p} Δp指标。另外,整合多种指标算子,将各个算子的优势集整合到一起能够更好的解决超多目标优化问题,如在二元指标算子的基础上引入参考点,使用二元指标算子维持算法的收敛性,使用参考点维持解集的多样性; I S D E + ISDE^+ ISDE+算子,其核心思想是将密度估计策略和目标函数值求和策略相结合。
多目标优化问题研究到如今,提出的算法数不胜数,从不同角度可以有不同的分类。除了研究之初的几个基本算法,大部分算法都有着各种特征,所以单纯的分类其实并无太大意义,将这些特征拿出来揣摩揣摩或许可以更好的帮助理解,以及在纷扰繁多的算法中构建自己的认知体系。
以上只是对多目标优化问题及算法的普遍性介绍,随着研究的深入,更多基于此的算法和想法被提出来,如动态多目标优化(DMO),动态多目标优化问题的目标、自变量和参数均会随环境发生变化,因此算法除了需要优化多个彼此冲突的目标外,算法还要快速跟踪到变化了的 Pareto 前沿面(PF)或 Pareto 最优解集( PS)且产生分布性好的解;还有就是基于决策者的偏好的算法研究,这时目标不再是求得大量的非支配解,而是要根据决策者的偏好给出最终解。
从1967年,Rosenberg建议采用基于进化的搜索来处理多目标优化问题,到如今的各式各类基于进化算法的多目标算法蓬勃发展,实践已经表明了进化算法在处理多目标问题的有效性。因此想要学好多目标算法,首先理解进化算法是必要的。进化算法作为启发式算法,在多目标问题中应用如此之好,是否表明其他启发式算法也有如此好的效果,值得我去思考。