Multi-Objective Evolutionary Optimization

  1. 1. 概述
    1. 1.1. MOEA的分类
  2. 2. 多目标进化优化基础
    1. 2.1. 进化算法
    2. 2.2. 多目标优化问题
    3. 2.3. 多目标进化个体之间关系
      1. 2.3.1. 个体之间的支配关系
      2. 2.3.2. 目标空间中的支配关系
      3. 2.3.3. 弱非支配和强非支配
    4. 2.4. 基于Pareto的多目标最优解集
      1. 2.4.1. Pareto最优解
      2. 2.4.2. Pareto最优边界
  3. 3. 多目标Pareto最优解构造方法
  4. 4. 多目标进化群体的分布性
  5. 5. 多目标进化算法的收敛性
  6. 6. 多目标进化算法
    1. 6.1. 基于分解的MOEA
      1. 6.1.1. 三类聚合函数
        1. 6.1.1.1. 权重聚合方法
        2. 6.1.1.2. 切比雪夫方法
        3. 6.1.1.3. 基于惩罚的边界交叉方法
      2. 6.1.2. 基于分解的MOEA算法框架
    2. 6.2. 基于支配的MOEA
      1. 6.2.1. NSGA-II
        1. 6.2.1.1. 非支配集的构造方法
        2. 6.2.1.2. 保持解群体分布性和多样性的方法
        3. 6.2.1.3. Deb的NSGA-II
  7. 7. 高维MOEA
    1. 7.1. 概述
    2. 7.2. NSGA-III
      1. 7.2.1. 参考点的设置
      2. 7.2.2. 种群的自适应性准化
      3. 7.2.3. 关联操作
      4. 7.2.4. 个体保留操作
      5. 7.2.5. NSGA-III时间复杂度分析
  8. 8. 论文笔记
    1. 8.1. MODE/D-FRRMAB
  9. 9. 参考

在解决只有单个目标的复杂系统优化问题时,进化算法(EA)的优势得到了充分的体现。然而,现实世界中的优化问题通常是多属性的,一般是对多个目标的同时优化。多数情况下,被同时优化的多个目标之间是相互作用且相互冲突的,为了达到总目标的最优化,通常需要对相互冲突的子目标进行综合考虑,即对各子目标进行折衷(tradeoffs)。由此,针对多个目标的优化问题,出现了多目标进化算法MOEA

概述

MOEA的分类

进化机制的不同,MOEA可分为三类:

  • 基于分解的MOEA(decomposition-based MOEA):处理多目标优化问题时,最直接的方法,也是比较早期所使用的方法就是聚集函数方法,这种方法将被优化的所有子目标组合(combine)或聚集(aggregate)为单个目标,从而将多目标优化问题转换为单目标优化问题
  • 基于支配关系的MOEA(domination-based MOEA):这种方法的基本思路是基于Pareto的适应度分配策略,从当前进化群体中找出所有非支配个体
  • 基于指标的MOEA(indicator-based MOEA):基于指标的MOEA使用性能评价指标来引导搜索过程和对解的选择过程

决策方式不同,可以将MOEA分为三大类:

  • 前决策技术(priori technique):指在MOEA搜索之前就输入决策信息,然后通过MOEA运行产生一个解提供给决策者。主要优点是简单,易于实现,同时具有较高的效率;最大的不足是限制了搜索空间,从而不能找出所有的可能解
  • 后决策技术(posteriori technique):通过运行MOEA产生一组解提供决策者选择,是最常用的方法,也是研究成果最多的方法
  • 交互决策技术(progressive technique):决策与搜索或搜索与决策的交互过程,在此过程中既可能用到前决策技术,也可能用到后决策技术。不足之处是难以定义决策偏好,同时效率比较低

多目标进化优化基础

进化算法

多目标优化问题

多目标优化问题的一般描述如下:

给定决策空间X=(x1,x2,,xn)\mathbf{X} = (x_1, x_2, \cdots, x_n),它满足下列约束,

gi(X)0,i=1,2,,khi(X)=0,i=1,2,,l\begin{aligned} &g_i(\mathbf{X}) \geq 0, \quad i = 1, 2, \cdots, k \\ &h_i(\mathbf{X}) = 0, \quad i = 1, 2, \cdots, l \end{aligned}

设有 rr 个优化目标,且这 rr 个优化目标是相互冲突的,优化目标可表示为:

f(X)=(f1(X),f2(X),,fr(X))\mathbf{f(X)} = (f_1(\mathbf{X}), f_2(\mathbf{X}), \cdots, f_r(\mathbf{X}))

寻求 f(X)=(x1,x2,,xn)\mathbf{f(X^*)} = (x_1^*, x_2^*, \cdots, x_n^*),使 f(X)\mathbf{f(X^*)} 在满足约束式的同时达到最优

在多目标优化中,对于不同的子目标函数可能有不同的优化目标,有的可能是最大化目标函数,也有的可能是最小化目标函数:

  • 最小化所有的目标函数
  • 最大化所有的目标函数
  • 最小化部分子目标函数,而最大化其他子目标函数

为了方便,可以把各子目标优化函数统一转化为最小化或最大化,例如,将最大化转为最小化可以表示为:

maxfi(X)=min(fi(X))\max f_i(\mathbf{X}) = -\min (-f_i(\mathbf{X}))

为了统一,没有特别的说明,统一为求总目标的最小化,即

minf(X)=(f1(X),f2(X),,fr(X))\min \mathbf{f(X)} = (f_1(\mathbf{X}), f_2(\mathbf{X}), \cdots, f_r(\mathbf{X}))

多目标进化个体之间关系

两个变量(个体)xxyy 进行比较时,可能存在三种关系,大于等于小于。在多目标情况下,由于每个个体有多个属性,比较两个个体之间的关系不能用简单的大小关系。如两个目标个体 (2,6)(2, 6)(3,5)(3, 5),在第一个目标上有2小于3,而第二个目标上又又6大于5,这种情况下的关系又是什么呢?另一种情况,如两个目标个体 (2,6)(2, 6)(3,8)(3, 8),之间的关系又是什么呢?

个体之间的支配关系

为此,讨论多目标个体之间非常重要的一种关系:支配关系

个体之间的支配关系

ppqq 是进化群体中的任意两个不同的个体,称 pp 支配(dominate) qq,则需满足以下2个条件:

  1. 对所有的子目标,pp 不比 qq 差,即 fk(p)fk(q)(k=1,2,,r)f_k(p) \leq f_k(q) \quad (k = 1, 2, \cdots, r)
  2. 至少存在一个子目标,使 ppqq 好,即 l{1,2,,r}^\exist l \in \lbrace 1, 2, \cdots, r \rbrace,使 fl(p)<fl(q)f_l(p) < f_l(q)

其中,rr 为子目标的数量

此时,称 pp非支配的(non-dominated),或非劣的或占优的;qq被支配的(dominated)。表示为 pqp \succ q,其中 \succ 是支配关系(dominate relation)

需要注意的是:这里定义的支配关系是"小"个体支配"大"个体,也可以按照完全相反的方式来定义支配关系,这取决于所求解的问题

目标空间中的支配关系

上面所定义的支配关系是针对决策空间的,类似的,可以在目标空间中定义支配关系:

目标空间中的支配关系

U=(u1,u2,,ur)\mathbf{U} = (u_1, u_2, \cdots, u_r)V=(v1,v2,,vr)\mathbf{V} = (v_1, v_2, \cdots, v_r) 是目标空间中的两个向量,称 U\mathbf{U} 支配 V\mathbf{V}(表示为 UV\mathbf{U} \succ \mathbf{V}),当且仅当 ukvk(k=1,2,,r)u_k \leq v_k \quad (k = 1, 2, \cdots, r);且 l{1,2,,r}^\exist l \in \lbrace 1, 2, \cdots, r \rbrace,使 ul<vlu_l < v_l

从上述定义可以看出:(2,6)(2, 6) 支配 (3,8)(3, 8)(2,6)(2, 6)(3,5)(3, 5) 之间互相不支配

值得注意的是:决策空间中的支配关系与目标空间中的支配关系是一致的,这一点由个体之间的支配关系的定义可以看出,因为决策空间中的支配关系实质上是由目标空间中的支配关系决定的

弱非支配和强非支配

此外,个体之间的支配关系还有程度上的差异:

弱非支配(weak nondominance):若不存在 XΩ\mathbf{X} \in \Omega,使 fk(X)<fk(X)(k=1,2,,r)f_k(\mathbf{X}) < f_k(\mathbf{X}^*) \quad (k = 1, 2, \cdots, r) 成立,则称 XΩ\mathbf{X}^* \in \Omega弱非支配解(a weakly nondominated solution)

强非支配(strong nondominance):若不存在 XΩ\mathbf{X} \in \Omega,使 fk(X)fk(X)(k=1,2,,r)f_k(\mathbf{X}) \leq f_k(\mathbf{X}^*) \quad (k = 1, 2, \cdots, r) 成立,且至少存在一个 i{1,2,,r}i \in \lbrace 1, 2, \cdots, r \rbrace,使 fi(X)<fi(X)f_i(\mathbf{X}) < f_i(\mathbf{X}^*),则称 XΩ\mathbf{X}^* \in \Omega强非支配解(a strongly nondominated solution)

由上述定义可以看出:

如果 X\mathbf{X}^* 是强非支配的,则 X\mathbf{X}^* 也是弱非支配的,反之则不然

如上图,在目标空间中强非支配解均落在粗曲线上,弱非支配解则落在细的直线上

基于Pareto的多目标最优解集

在多目标优化中,由于是对多个子目标的同时优化,而这些被同时优化的子目标之间往往又是互相冲突的,照顾了一个子目标的"利益",同时必然导致其他至少一个子目标的"利益"收到损失。因此,针对一个多目标优化问题,没有绝对的或者说是唯一的最好解

Pareto最优解

多目标优化中的最优解通常称为Pareto最优解(Pareto optimum solution),一般地,可以描述如下:

给定一个多目标优化问题 f(X)\mathbf{f(X)},它的最优解 f(X)\mathbf{f(X^*)} 定义为

f(X)=optXΩf(X)\mathbf{f(X^*)} = \mathop{opt}\limits_{\mathbf{X} \in \Omega}\mathbf{f(X)}

其中 f:ΩRrf:\Omega \rightarrow \mathbb{R}^r 式中,Ω\Omega 为满足上式的可行解集,即

Ω={XRn  gi(X)0,hj(X)=0(i=1,2,,k;j=1,2,,l)\Omega = \lbrace \mathbf{X} \in \mathbb{R}^n \ |\ g_i(\mathbf{X}) \geq 0, h_j(\mathbf{X}) = 0 \quad (i = 1, 2, \cdots, k; j = 1, 2, \cdots, l)

Ω\Omega决策变量空间(决策空间),向量函数 f(X)\mathbf{f(X)}ΩRn\Omega \subseteq \mathbb{R}^n 映射到集合 ΠRr\Pi \subseteq \mathbb{R}^rΠ\Pi目标函数空间(目标空间)

多目标进化算法的优化过程是,针对每一代进化群体,寻找出其当前最优个体(即当前最优解),称一个进化群体的当前最优解为非支配解(non-dominated solution) 或着 非劣解(non-inferior solution);所有非支配解的集合称为当前进化群体的非支配集(non-dominated solution set, NDSet) 或着 非劣解集,并使非支配集不断逼近真正的最优解集,最终达到最优,即使 NDSet{X}NDSet^* \subseteq \lbrace \mathbf{X}^* \rbraceNDSetNDSet^* 为算法运行结束时所求得的非支配集

Pareto最优边界

为了更好地理解Pareto最优解,下面讨论它在目标函数空间中的表现形式。简单地说,一个多目标优化问题的Pareto最优解集在其目标函数空间中的表现形式就是它的Pareto最优边界。Pareto最优边界 PFPF^*PFTruePF_{True} (true Pareto front) 定义如下:

给定一个多目标优化问题 minf(X)\min \mathbf{f(X)} 和它的最优解集 {X}\lbrace \mathbf{X}^* \rbrace,它的Pareto最优边界定义为

PF={f(X)=(f1(X),f2(X),,fr(X))  X{X}}PF^* = \lbrace \mathbf{f(X)} = (f_1(\mathbf{X}), f_2(\mathbf{X}), \cdots, f_r(\mathbf{X})) \ |\ \mathbf{X} \in \lbrace \mathbf{X}^* \rbrace \rbrace

需要注意Pareto最优解集和Pareto最优边界之间的联系和区别

多目标优化是从决策空间 ΩRn\Omega \subseteq \mathbb{R}^n 到目标空间 ΠRr\Pi \subseteq \mathbb{R}^r 的一个映射。Pareto最优解集 PP^*决策向量空间的一个子集,即有 PΩRnP^* \subseteq \Omega \subseteq \mathbb{R}^n;而Pareto最优边界则是目标向量空间的一个子集,即 PFΠRrPF^* \subseteq \Pi \subseteq \mathbb{R}^r

一个多目标问题的最优解 XP\mathbf{X}^* \in P^*Y=minf(X)PF\mathbf{Y}^* = \min \mathbf{f(X^*)} \in PF^*,前者属于决策向量空间,后者属于目标向量空间,这里要注意区分!

如图,最优边界上的点(或个体)A,B,C,D,E,F是Pareto最优解,它们属于目标空间

在目标空间中,最优解是目标函数的切点,它总是落在搜索区域的边界线(面)上。图中,粗线段表示两个优化目标的最优边界;三个优化目标的最优边界构成一个曲面;三个以上的最优边界则构成超曲面

图中,实心点A,B,C,D,E,F均处在最优边界上,它们都是最优解,是非支配的;空心点G,H,I,J,K,L落在搜索区域内,但不在最优边界上,不是最优解,是被支配的(dominated),它们直接或间接受最优边界上的最优解支配。

多目标遗传算法在优化过程中,初始时随机产生一个进化群体 Pop0p_0,然后按照某种策略构造 Pop0p_0 的非支配集 NDSet0NDSet_0,此时的 NDSet0NDSet_0 可能距离 {X}\lbrace \mathbf{X}^* \rbrace 比较远。按照某种方法或策略产生一些个体,这些个体可以是被当前非支配集 NDSet0NDSet_0 中个体所支配的,也可以是随机新产生的,连同 NDSet0NDSet_0 中个体一起构成新的进化群体 NDSet1NDSet_1,对新进化群体 NDSet1NDSet_1 执行进化操作后,再构造新的非支配集 NDSet1NDSet_1。由于 NDSet1NDSet_1 是在 NDSet0NDSet_0 的基础上产生的,故 NDSet1NDSet_1NDSet0NDSet_0 更接近 {X}\lbrace \mathbf{X}^* \rbrace。如此下去,从理论上说,必能构造出 NDSetiNDSet_i,使得当 ii \rightarrow \infty 时,为Pareto最优解集,即 limiNDSeti=NDSet\lim_{i \rightarrow \infty} NDSet_i = NDSet^*,使 NDSet{X}NDSet^* \subseteq \lbrace \mathbf{X}^* \rbrace

多目标Pareto最优解构造方法

多目标进化群体的分布性

多目标进化算法的收敛性

多目标进化算法

基于分解的MOEA

分解策略是传统数学规划中解决多目标优化问题的基本思路。在给定权重偏好或者参考点信息的情况下,分解方法通过线性或者非线性方式将原多目标问题各个目标进行聚合,得到单目标优化问题,并利用单目标优化方法求得单个Pareto最优解。为得到整个Pareto前沿的逼近,张青富和李辉于2007年提出了基于分解的多目标进化算法(MOEA based on decomposition, MOEA/D)(Zhang Q et al, 2007)

下面先介绍分解策略中三类常用的聚合函数,然后再讨论MOEA/D

三类聚合函数

权重聚合方法

权重聚合方法(weighted sum approach):是一种常用的线性多目标聚合方法(Hillermeier, 2001),其目标函数聚合形式定义为:

mingws(x  λ)=i=1mλifi(x)\min g^{ws}(\mathbf{x} \ |\ \bm{\lambda}) = \sum_{i = 1}^m \lambda_i f_i(x)

其中,xΩx \in \Omega决策向量λ=(λ1,λ2,,λm)T\bm{\lambda} = (\lambda_1, \lambda_2, \cdots, \lambda_m)^T权重向量,满足 λi0,i=1,,m\lambda_i \geq 0, i = 1, \cdots, mi=1mλi=1\sum_{i = 1}^m \lambda_i = 1

如图6.1,权重聚合方法的等值线为一族与方向向量垂直的平行直线。由图可知,当最小化问题的真实Pareto前沿面为凸状时,单个最优等值线与Pareto前沿面相交于一个切点,即上式描述问题的最优解

MOEA/D算法中同时考虑优化多权重聚合函数,所获得的最优解集能很好地逼近真实Pareto前沿面。在处理高维目标空间问题时,权重聚合方法被广泛运用

当最小化问题的真实Pareto前沿面为凹状时,所有的权重聚合函数的最优解位于Pareto面的边缘区域。这是因为位于Pareto面中间部分的解具有较差的适应度值,也就是说,相比Pareto面边缘的解具有更大的 gws(x  λ)g^{ws}(\mathbf{x} \ |\ \bm{\lambda}) 函数值

如图6.2,个体E,F与B互不支配,但对应的方向向量在 V1\mathbf{V}_1 子问题上个体B具有更好的适应值;同样,个体C,D与A互不支配,针对 V2\mathbf{V}_2 子问题,个体A具有更好的适应值。因此,权重聚合方法不能很好地处理真实Pareto面为凹状的问题

切比雪夫方法

切比雪夫方法(Tchebycheff approach):是一种非线性多目标聚合方法(Jaszkiewicz, 2002),其聚合函数定义如下:

mingtche(x  λ,z)=max1im{λi  fi(x)zi  }\min g^{tche}(\mathbf{x} \ |\ \bm{\lambda}, \mathbf{z}^*) = \max_{1 \leq i \leq m} \lbrace \lambda_i \ |\ f_i(\mathbf{x}) - \mathbf{z}_i^* \ |\ \rbrace

其中,z=min{fi(x)  xΩ},i{1,2,,m}\mathbf{z}^* = \min \lbrace f_i(\mathbf{x}) \ |\ \mathbf{x} \in \Omega \rbrace, i \in \lbrace 1, 2, \cdots, m \rbrace,权重向量 λ\bm{\lambda} 定义同式

以其中一组权重向量 λ\lambda 为例,其中 zz理想点mm目标函数的个数xx 为一组决策变量。我们结合下面图说明,有两个目标函数 f1f_1f2f_2。首先计算 λ1f1(x)z1\lambda_1 * | f_1(x) - z_1 |λ2f2(x)z2\lambda_2 * | f_2(x) - z_2 | 的值。问题来了,为什么要取最大的值呢?我们可以想一下,这个数值越大说明什么呢?说明在这个目标函数上离理想点越远。假设 λ1f1(x)z1\lambda_1 * | f_1(x) - z_1 | 较大,我们逐渐改变 xx,让这个值离 zz 越来越近,直到到达Pareto front上对应的点为止。这个过程其实就是在求这个函数 g(x)=λ1f1(x)z1g(x) = \lambda_1 * | f_1(x) - z_1 | 的最小值。如果连这个较大的 λ1f1(x)z1\lambda_1 * | f_1(x) - z_1 | 都达到了它的最小值了,那么 λ2f2(x)z2\lambda_2 * | f_2(x) - z_2 | 不也达到它的最小值了么?

首先解释等高线为什么是这样的。单看 f1f_1 函数,即只考虑纵坐标,若两点等值,必然是 λifi(x)zi\lambda_i * | f_i(x) - z_i | 式中 f1f_1 的函数值相等(因为另外两个量是不变的),即纵坐标相等,所以 f1f_1 函数的等高线是一组平行于横轴的直线。f2f_2 类似,为一组平行于纵轴的直线

那么,图中的等高线是横竖相交且刚好交在权重向量的方向上的,这是巧合吗?可以稍微来证明一下,可知,对于任何一个可行的切比雪夫值(自己叫的),我们从 f1f_1 的角度上可以得到一个 f1f_1 的值 yy,从 f2f_2 的角度上可以得到一个 f2f_2 的值 xx,他们的切比雪夫值是相等的,自然想到,点 (x,y)(x,y) 为该切比雪夫值得横纵两条等值线的交点,那么有:λ1(yz1)=λ2(xz2)\lambda_1 * (y - z_1) = \lambda_2 * (x - z_2),化简的 (yz1)/(xz2)=λ2/λ1(y - z_1) / (x - z_2) = \lambda_2 / \lambda_1,可知该交点位于权重向量的方向上

如图6.3,展示了两个切比雪夫聚合子问题 V1\mathbf{V}_1V2\mathbf{V}_2 的等值线分布情况,其中 V1\mathbf{V}_1 对应的权重向量 λ1=(0.3,0.7)T\bm{\lambda}_1 = (0.3, 0.7)^T,方向向量为 v=(0.7,0.3)T\mathbf{v} = (0.7, 0.3)^TV2\mathbf{V}_2 对应的权重向量为 λ2=(0.7,0.3)T\bm{\lambda}_2 = (0.7, 0.3)^T,方向向量为 v=(0.3,0.7)T\mathbf{v} = (0.3, 0.7)^T。显而易见,切比雪夫聚合子问题权重向量与方向向量不一致

直观上看,在连续Pareto面情形下,切比雪夫子问题的最优解为方向向量与Pareto面的交点;在非连续Pareto面情形下,对应不同权重向量的子问题可能具有相同最优解,这是因为方向向量与Pareto面可能没有交点

不同于权重聚合子问题,切比雪夫子问题的等值线沿方向向量呈直角锯齿状,因此具有"更窄"的收敛接受区域。在处理高维问题时,切比雪夫方法限制收敛接受区域,因而能更好地保证种群地收敛性。另外,切比雪夫方法既可以处理Pareto面为凸状地问题,也可以处理Pareto面为非凸形状的问题

基于惩罚的边界交叉方法

基于惩罚的边界交叉方法(penalty-based boundary intersection approach):是由Zhang与Li与2007年提出的一种基于方向的分解方法,其具体定义如下:

{mingpbi(x  λ,z)=d1+θd2d1=(zF(x))Tλλd2=F(x)(zd1λ)\begin{aligned} \begin{cases} &\min g^{pbi}(\mathbf{x} \ |\ \bm{\lambda}, \mathbf{z}^*) = d_1 + \theta d_2 \\\\ &d_1 = \frac{\parallel (\mathbf{z}^* - F(\mathbf{x}))^T \bm{\lambda} \parallel}{\parallel \bm{\lambda} \parallel} \\\\ &d_2 = \parallel F(\mathbf{x}) - (\mathbf{z}^* - d_1 \bm{\lambda}) \parallel \end{cases} \end{aligned}

其中,θ>0\theta > 0预设参数(preset penalty parameter)

知算法放宽了对算法求出的解得要求,但加入了一个惩罚措施,说白了,就是你可以不把解生成在权重向量的方向上,但如果不在权重向量方向上,你就必须要接收惩罚,你距离权重向量越远,受的惩罚越厉害,以此来约束算法向权重向量的方向生成解

如图6.4中等值线分布情况,针对 V1\mathbf{V}_1 子问题,个体B优于个体A;同样地,针对 V2\mathbf{V}_2 子问题,个体E优于个体C和D

基于惩罚的边界交叉方法需要计算两个距离,即 d1d_1d2d_2,它们分别用于控制种群的分布性和收敛性。需要注意的是,两者之间的平衡关系是通过调节参数 θ\theta 来实现的。正是由于这个特点,PBI方法在处理高纬度问题时具有很大的优势。另一方面,参数 θ\theta 的设置对于MOEA/D的性能表现有着重要的影响,这也是PBI方法的缺点之一

基于分解的MOEA算法框架

MOEA/D算法的核心思想:将多目标优化问题分解为一组单目标子问题或多个多目标子问题,利用子问题之间的邻域关系,通过协作的方式同时优化所有子问题,从而找到整个Pareto面的逼近。通常子问题的定义由权重向量确定,子问题之间的邻域关系是通过计算权重向量之间的欧氏距离来确定的

与其他MOEA算法不同,MOEA/D算法强调从邻域中选择父个体,通过交叉操作产生新个体,并在邻域中按照一定的规则进行种群更新。因此,基于邻域的优化策略是保证MOEA/D的搜索效率的重要特征。在进化过程中,针对某个子问题的高质量解一旦被搜索到,其好的基因信息就会迅速扩散至邻域内其他个体,从而加快种群的收敛速度

MOEA/D算法提供了一个基于分解策略的基本框架,其最大特点是分解与合作。这里以基于切比雪夫方法最基本的MOEA/D算法,其基本数据结构如下:

  1. 用于定义切比雪夫子问题的权重向量集合{λ1,,λN}\lbrace \bm{\lambda}^1, \cdots, \bm{\lambda}^N \rbrace参考点 z\mathbf{z}
  2. 每个子问题分配一个个体,所有个体 {x1,,xN}\lbrace x^1, \cdots, x^N \rbrace 组成一个当前进化种群 PP
  3. 用于保存Pareto解的精英种群EPEP
  4. 子问题邻域NS1,,NSNNS_1, \cdots, NS_N

MOEA/D算法框架:

上述算法中,初始化步骤2通过计算权重向量之间的欧几里得距离来计算子问题的邻域关系。事实上,输入的权重向量均匀性对于输出种群EP的均匀性有着重要影响

更新操作中步骤1基因重组为交叉算子和变异算子,可以根据问题选择恰当的算子,如SBC(simulated binary crossover)或者DE(differential evolution)

更新操作中步骤4在领域中比较修正解与种群当前个体,注意,该步骤中的领域大小以及替换个体的次数将会影响的种群的收敛性与多样性

更新操作中步骤5在EP中保存搜索过程中所有可能的非占优解,为保存有限个解,一些已有的密度估计方法可用于控制外部EP的大小

MOEA/D特性:

  1. 引入分解的概念,简单但是有效;
  2. 由于算法将MOP问题分解成子问题(单维度)进行计算,适配度分配和多样性控制的难度都有所降低;
  3. 相较NSGA-II和MOGLS算法MOEA/D具有更低的计算复杂度,但在许多场景下解得表现上更为出色;
  4. 弥补传统不是基于分解的算法难以找到一个简单方法来利用标量(单维度)优化算法的缺点;

分解思想说完了,下面我们说说如何生成新解。这个算法假设相邻的权重上的解相似,每个权重都有邻居。下面图中红色的点,它的邻居就是附近的四个点,用这四个点去生成新解。生成新解之后,就要替换邻域中的解了。这里面策略很多,可以随机替换邻域中两个解如果这个新解比他们好的话。如此,种群可以更新,最终收敛至近似的Pareto front

基于支配的MOEA

NSGA-II

Srinivas和Deb于1993年提出了NSGA(non-dominated sorting in genetic algorithm)(Srinivas et al, 1994)。NSGA主要有以下三个方面不足:

  1. 没有最优个体(elitist)保留机制。最优个体保留机制一方面可以提高MOEA的性能,同时也能防止优秀解的丢失
  2. 共享参数问题:在进化过程中,主要采用共享参数 σshare\sigma_{share} 来维持解群体的分布性,但共享参数的大小不容易确定,参数的动态修改和调整更是一件困难的工作
  3. 构造Pareto最优解集(通常是构造进化群体的非支配集)的时间复杂度高O(rN3)O(rN^3)。因为每一代进化都需要构造非支配集,当进化群体规模较大时,算法执行的时间开销就很大

为此,Deb等于2000年在NSGA的基础上,提出了NSGA-II(Deb et al, 2000)

在NSGA-II中,将进化群体支配关系分为若干层,第一层为进化群体的非支配个体集合,第二层为在进化群体中去掉第一层个体后所求得的非支配个体集合,第三层为在进化群体中去掉第一层和第二层个体后所求得的非支配个体集合,依此类推

选择操作首先考虑第一层非支配集,按照某种策略从第一层中选取个体;然后再考虑在第二层非支配个体集合中选择个体,以此类推,直至满足新进化群体的大小要求

非支配集的构造方法

设群体 PopPop 的规模大小为 NN,将群体 PopPop 按某种策略进行分类排序为 mm 个子集 P1,P2,,PmP_1, P_2, \cdots, P_m,且满足下列性质:

  1. p{P1,,Pm}P=Pop\cup_{p_\in \lbrace P_1, \cdots, P_m \rbrace} P = Pop
  2. i,j{1,,m}\forall i, j \in \lbrace 1, \cdots, m \rbraceiji \neq jPiPj=P_i \cap P_j = \varnothing
  3. P1P2PmP_1 \prec P_2 \prec \cdots \prec P_m,即 Pk+1P_{k+1} 中的个体直接受 PkP_k 中个体的支配 (k=1,2,,m1)(k = 1, 2, \cdots, m-1)

对群体 PopPop 进行分类的排序的目的是:为了将其划分成若干个满足上述三个性质的互不相交的子群体

设两个向量 {np}\lbrace n_p \rbrace{sp}\lbrace s_p \rbrace,其中 pPopp \in Popnpn_p 记录支配个体 pp 的个体数,sps_p 记录被个体 pp 支配的个体的集合,即有

np={q  qpp,qPop}sp={q  pqp,qPop}\begin{aligned} n_p &= |\lbrace q \ |\ q \prec p \quad p, q \in Pop \rbrace| \\ s_p &= \lbrace q \ |\ p \prec q \quad p, q \in Pop \rbrace \end{aligned}

首先通过一个二重循环计算每个个体的 npn_psps_p,则 P1={q  nq=0,qPop}P_1 = |\lbrace q \ |\ n_q = 0, q \in Pop \rbrace|,然后依次按方法 Pk={所有个体q  nqk+1=0}P_k = \lbrace \text{所有个体} q \ |\ n_q - k + 1 = 0 \rbraceP2,P3,P_2, P_3, \cdots

算法6.2中的 P1P_1 为非支配集,其中:

  • 第一部分用于计算 nin_isis_i,并求得 P1P_1,所需要的时间为 (rN2)(rN^2),这里 rr 为目标数,NN 为进化群体规模
  • 第二部分用于求 P2,P3,,PmP_2, P_3, \cdots, P_m最坏情况下,一个规模为 NN 的进化群体有 NN 层边界集(Pareto front),即 m=Nm = N,此时其时间复杂度为 O(N2)O(N^2)

由此可得,算法6.2的总时间复杂度为 O(rN2)+O(N2)O(rN^2) + O(N^2),即为 O(rN2)O(rN^2)

保持解群体分布性和多样性的方法

为了保持解群体的分布性和多样性,Deb等在文献中,首先通过计算进化群体中每个个体的群集距离,然后依据个体所处的层次及其群集距离,定义一个偏序集(partial order set),构造新群体时依次在偏序集中选择个体

在产生新群体时,通常将优秀且聚集密度比较小的个体保留并参与下一代进化。聚集密度小的个体其聚集距离反而大,一个个体的聚集距离可以通过计算与其相邻的两个个体在每个子目标上的距离差之和来求取

如上图,设有2个子目标 f1,f2f_1, f_2,个体 ii 的聚集距离是图中虚线四边形的长与宽之和,一般情况下,当有 rr 个目标时个体 ii 的聚集距离为:

P[i]distance=k=1r(P[i+1].fkP[i1].fk)P[i]_{distance} = \sum_{k = 1}^r (P[i + 1].f_k - P[i - 1].f_k)

为了计算每个个体的聚集距离,需要对群体 PP 按每个子目标函数值进行排序,当采用最好的排序方法时(如快速排序,堆排序等),若群体规模为 NN,最坏的情况下对 rr 个子目标分别排序的时间复杂度为 O(rNlogN)O(rN \log N)

Deb的NSGA-II

在具体讨论NSGA-II之前,先讨论建立在进化群体上的一类偏序关系,因为NSGA-II在构造新群体时,将依据这种偏序关系进行选择操作。定义进化群体的排序关系时,主要考虑以下2个因素:

  1. 个体 ii 的分类序号 iranki_{rank}irank=ki_{rank} = k 当且仅当 iPki \in P_k
  2. 个体 ii 的聚集距离 P[i]distanceP[i]_{distance}

得到偏序关系的定义如下:

定义6.1:设个体 iijj 为进化种群中的任意个体,个体之间的偏序(partial order)关系 n\prec_n 为:

injif(rrank<jrank)or(irank==jrank)and(P[i]distance>P[j]distamce)i \prec_n j \quad if(r_{rank} < j_{rank}) or (i_{rank} == j_{rank}) and (P[i]_{distance} > P[j]_{distamce})

定义6.1表明:当两个个体属于不同的分类排序子集时,优先考虑序号 iranki_{rank} 小的个体;当序号 iranki_{rank} 相同时,则优先考虑聚集距离大或者说聚集密度小的个体

在算法6.4中,通过 F=nondominatedsort(Rt)F = nondominated-sort(R_t) 产生了若干个分类子集 F=(F1,F2,)F = (F_1, F_2, \cdots) 但被选入新群体的只有一部分

如上图所示,分类子集 F1F_1F2F_2 中的所有个体均被选入了新群体 Pt+1P_{t + 1},但分类子集 F3F_3 中只有一部分个体被选入新群体 Pt+1P_{t + 1}。一般地,若 F1+F2++Fi1N|F_1| + |F_2| + \cdots + |F_{i - 1}| \leq NF1+F2++Fi>N|F_1| + |F_2| + \cdots + |F_i| > N,则称 FiF_i临界层分类子集,上图中的 F3F_3 为临界层分类子集

算法6.4的时间开销主要由三部分组成(rr 为目标数):

  1. 构造分类子集(non-dominated sort):O(r(2N)2)O(r(2N)^2)
  2. 计算聚集距离(crowding distance assignment):O(r(2N)log(2N))O(r(2N)\log (2N))
  3. 构造偏序集(sorting on n\prec_n):O(2Nlog(2N))O(2N \log (2N))

由此可得,算法6.4的总时间复杂度为 O(rN2)O(rN^2),其中主要的时间开销花费在构造边界集上,因此一个快速的构造分类子集(或构造非支配集)的方法有利于提高MOEA的效率

高维MOEA

概述

在多目标优化研究中,随着目标维数的增高,优化的难度呈指数级增长,通常将4个及以上目标的优化问题称为高维多目标优化问题

随着目标维数的增加,如NSGA-II和SPEA2这些经典的基于Pareto支配关系的MOEA面临许多困难:

  1. 搜索能力的退化:随目标维数的增加,种群中非支配的个体数目呈指数级增加,从而降低了进化过程的选择压力
  2. 用来覆盖整个Pareto前沿的非支配解的数目呈指数级增加
  3. 最优解集的可视化困难
  4. 对解集分布性评价的计算开销增大
  5. 重组操作效率降低:在较大的高维空间中,两个相距较远的父个体重组产生的子个体离父个体可能较远,使得种群局部搜索的能力减弱

近年来提出的一些有效方法用于求解高维多目标优化问题:

  • 一类是基于Pareto支配关系的算法,通过扩展Pareto支配区域来减少非支配个体的数目,如:ϵMOEA\epsilon-MOEA,CDAS
  • 第二类是基于聚合的算法,使用聚合函数将多个目标聚合成一个目标进行优化,如:MOEA/D,NSGA-III,MSOPS
  • 第三类是基于指标的算法,将性能评价指标用于比较两个种群或者两个个体之间的优劣,如:IBEA,SMS-EMOA,HypE

还有基于多样性保持机制的角度,提出了基于移动的多样性评估方法(SDE),并将其整合到SPEA2中,取得了很好的效果;此外,一些学者通过尝试减少目标个数的方法来处理高维多目标优化问题,处理方法主要有主成分分析(PCA),基于最小目标子集的冗余目标消除算法

减少冗余目标或不重要目标,也是高维MOEA研究的一个重要方向

NSGA-III

NSGA-II只能处理低维优化问题(目标维数小于等于3),因为随着优化问题目标维数的增加,种群中的非支配个体呈指数增加,使得Pareto支配关系很难区分个体之间的好坏

为此,Deb等于2013年提出了NSGA-III(the reference-point based many-objective NSGA-II)

NSGA-III总体框架于NSGA-II相似,如算法7.1所示:随机产生大小为 NN 的父代种群 PtP_t,父代种群通过交叉变异产生大小相同的子代种群 QtQ_t,采用某种选择机制从 Rt=PtQtR_t = P_t \cup Q_t(种群大小为 2N2N)中选择出 NN 个优秀个体构成新一代进化群体。在选择过程中,首先采用非支配排序方法将 RtR_t 分成不同的非支配层(F1,F2,F_1, F_2, \cdots),然后将优先级高的非支配集保留到下一代中。当 F1F2Fl1<N|F_1 \cup F_2 \cup \cdots F_{l-1}| < NF1F2Fl>N|F_1 \cup F_2 \cup \cdots F_{l}| > N 时,定义 FlF_l 为临界层,采用临界层选择方法选择个体进入下一代,直到子代种群大小等于 NN

与NSGA-II不同的是,NSGA-III的临界层选择方法采用参考点方法选择个体,以使种群具有良好的分布性

以下为NSGA-III的临界层选择方法

参考点的设置

NSGA-III算法采用的是Das和Dennis于1998年提出的边界交叉构造权重的方法:在标准化超平面上,根据

H=(M+p1p)H = \binom{M + p - 1}{p}

均匀产生参考点,如果每一维目标被均匀分割成 pp 份,那么所产生的参考点个数为 HH

在环境选择过程中,NSGA-III除了强调支配关系外,还强调了各个参考点所关联的个体数目。当参考点均匀广泛的分布在整个标准化的超平面时,所选择的种群将会广泛地均匀分布在真实Pareto面上

种群的自适应性准化

首先,选取当前种群 StS_t 中个体的每一维目标的最小值 zimin(i=1,2,,M)z_i^{min}(i = 1, 2, \cdots, M) 构成当前种群的理想点 z=z1min,z2min,,zMmin\overline{z} = z_1^{min}, z_2^{min}, \cdots, z_M^{min}。将种群 StS_t 做平移操作 fi(x)=fi(x)ziminf'_i(x) = f_i(x) - z_i^{min},使得理想点变为原点。然后,每一维坐标的极大值 zi,maxz^{i, max} 取式

ASF(x,w)=maxi=1Mfi(x)/wi,xStASF(x, \mathbf{w}) = \max_{i = 1}^M f'_i(x) / \mathbf{w}_i, \quad x \in S_t

标量函数的最小值。其中 w\mathbf{w} 为坐标轴的单位方向向量,这里当 wi=0w_i = 0 时,NAGA-III中用 10610^{-6} 替换

使用 MM 个极值点通过式7.3构造M维的线性超平面,每一维的截距aia_i

fin(x)=fi(x)aizimin=fi(x)ziminaizimini=1,,Mf_i^n(x) = \frac{f'_i(x)}{a_i - z_i^{min}} = \frac{f_i(x) - z_i^{min}}{a_i - z_i^{min}} \quad i = 1, \cdots, M

其中 i=1Mfin=1\sum_{i = 1}^M f_i^n = 1

最后,NSGA-III使用Das和Dennis提出的方法在上式所构造的超平面上设置参考点,其标准化过程如算法7.2:

关联操作

参考点设置完成后,将进行关联操作,让种群中的个体分别关联到相应的参考点

如算法7.3所示,首先需要将原点与参考点的连线作为该参考点在目标空间中的参考线(图7.3中虚线),然后计算 StS_t 中的个体到各个参考线的距离,当个体与参考系距离最近,则将个体与对应的参考点相关联

图7.3中灰色点代表参考点,黑色点代表目标空间中的个体,个体分别找到离它最近距离的参考线,然后将它与对应的参考点关联起来

个体保留操作

通过关联操作后,可能出现以下情况:

  • 参考点关联一个或多个个体
  • 没有一个个体与之关联

NSGA-III记录了参考点 jj 在集合 Pt+1=St/FlP_{t + 1} = S_t / F_l 中所关联的个体数目 ρj\rho_j

在保留操作中,首先,NSGA-III选择关联数目最少的参考点 Jmin={j:arg minjρj}J_{min} = \lbrace j: \argmin_j \rho_j \rbrace,如果有多个这样的参考点,则从中随机选择一个 j\overline{j}

如果 ρj=0\rho_j = 0,表示在 Pt+1=St/FlP_{t + 1} = S_t / F_l 中没有个体与之关联。此时同样可能有2钟情况:

  1. FlF_l 中存在一个或多个个体与之关联,则将离参考点 j\overline{j} 对应的参考线最近的个体关联起来(ρj=ρj+1\rho_{\overline{j}} = \rho_{\overline{j}} + 1),并将该个体加入 Pt+1P_{t + 1}
  2. FlF_l 中不存在个体与参考点 j\overline{j} 关联,那么在余下的操作中不再考虑该参考点

ρj1\rho_j \geq 1,表示 Pt+1=St/FlP_{t + 1} = S_t / F_l 中有一个或多个个体与之关联,则随机选择一个参考点 j\overline{j},如果 FlF_l 中有个体与参考点 j\overline{j} 关联(ρj=ρj+1\rho_{\overline{j}} = \rho_{\overline{j}} + 1),则将该个体加入 Pt+1P_{t + 1}

重复上述操作,直到 Pt+1P_{t + 1} 的大小等于 NN

NSGA-III时间复杂度分析

整个算法的最坏时间复杂度为 O(N2logM2N)O(N^2 \log^{M - 2} N)O(N2M)O(N^2 M)

论文笔记

这里记录一些从论文中学习到的算法知识点

MODE/D-FRRMAB

MOEA/D-FRRMAB算法提出了一个新的自适应算子选择机制。该方法主要包括两部分:一是信用值积累,二是算子选择。其中,信用值积累主要由滑窗(sliding window)策略完成,滑窗大小为 WW,用来储存最近使用的算子的适应值提升率。滑窗由先进先出(First Input First Output, FIFO)队列组成,最近使用的算子的信用值被记录在滑窗尾部,已经记录过的从滑窗头部删除。滑窗中的每部分都包括算子的名称和其对应的使用值,该策略使用的主要目的是为了确保储存的使用值信息对应当前的搜索状态。**信用值(FIR)**的计算方式如下:

FIRi=pficfipfiFIR_i = \frac{pf_i - cf_i}{pf_i}

其中,pfipf_i 表示父代个体的适应值,cficf_i 表示子代个体的适应值。此外,算法计算了每个算子 iiRewardiReward_i 值,即每个算子在当前滑窗中的信用值之和。然后对 RewardiReward_i 值进行降序排名RankiRank_i 表示算子 ii 的排名,排名较高的算子有更多机会被使用。除此之外,算法引入了参数 D[0,1]D \in [0, 1]RewardiReward_i 值进行调整获得 DecayiDecay_i 值,即

Decayi=DRanki×RewardiDecay_i = D^{Rank_i} \times Reward_i

之后,算法对算子 ii 分配了下面的信用值:

FRRi,t=Decayij=1KDecayiFRR_{i, t} = \frac{Decay_i}{\sum_{j=1}^K Decay_i}

算子选择机制基于信用值来选择算子产生新的个体,该算法采用基于信用值的算子选择机制。在进化初期,每个算子具有相等的机会被算法选择,直到每个算子被使用后 FRRMAB 策略才会启用。算子具体的选择方式如下:

opt=arg maxi={1,,K}(FRRi,t+C×2×lnj=1Knj,tni,t)op_t = \argmax_{i = \lbrace 1, \cdots, K \rbrace} (FRR_{i, t} + C \times \sqrt{\frac{2 \times \ln \sum_{j=1}^K n_{j, t}}{n_{i, t}}})

参考