Liu R , Liu J , Li Y , et al. A random dynamic grouping based weight optimization framework for large-scale multi-objective optimization problems[J]. Swarm and Evolutionary Computation, 2020, 55:100684.
摘要
针对大规模问题,提出了一种具有随机动态分组的加权优化框架。
权重优化框架采用了一个问题转换方案,在该方案中选择权重来代替决策变量,以降低搜索空间的维数。采用随机动态分组,自适应地确定每个分组的大小。采用多目标多搜索策略粒子群优化算法(MMOPSO)对原始变量和权重变量进行优化。
1、算法
所提出的算法,它使用一个带有随机动态分组的加权优化框架,并使用 MMOPSO 作为优化器,称为 WOF-MMOPSO-RDG。在算法1中,我们给出了WOF-MMOPSO-RDG的主要步骤,并予以说明:

- 我们利用随机动态分组(RDG)策略建立一个分组大小池,每个分组大小都有自己的概率,这是轮盘赌选择的基础;
- 利用 MMOPSO 算法对初始种群进行优化,只需进行很少的函数评估(function evaluations),然后选取若干个解。对于每一个选取的解,我们将其分成若干组,每组通过变换函数分配一个权值向量(weight vector),并使用 MMOPSO 对这些权值变量(vector variables)进行优化;
- 优化后将最优权值应用于原种群得到加权种群,消除重复解,并对父种群和加权种群的并解(union solution)进行非支配排序;
- 在除第一次迭代外的每个周期中,我们通过 C-metric 计算并改变每个组大小的可能性,并重新选择组大小;
- 当循环条件满足时,MMOPSO 对种群进行优化以保持种群多样性,直到剩余的函数评估(function evaluations)被使用为止。
1.1. 加权优化框架
这些方法本质上是通过同时改变很大一部分决策变量来降低问题的维数,它们的变化程度是相同的,这是通过所谓的变换函数来实现的。转换函数可以将每个权重值分配给一组决策变量。权重向量的数量与组的数量相同,然后通过单独的优化步骤更新它们。
n 维的决策变量 ( x 1 , . . . , x n ) \left( x_1,...,x_n \right) (x1,...,xn) 被分离成 r r r 个分组,一个新的权重变量被分配到每个组,称为 w j , j = 1 , . . . , r w_j, j=1,...,r wj,j=1,...,r。决策变量 x i x_i xi 的值和相应的权重变量的值 w j w_j wj 通过一个转换函数而得到,被用来评估优化问题,而不是原始决策变量 x i x_i xi。因此,新的权重变量 w = ( w 1 , . . , w r ) w=(w_1,..,w_r) w=(w1,..,wr) 可以被用来优化独立问题。
伪码见算法2:

WOF 在框架中应用已有的元启发式算法,通过将 n n n 个变量简化为 r r r 个变量,算法可以在更小的空间内进行更高效的搜索。因为不能保证最优解中包含一个小的搜索空间,优化权重 w w w 替代优化原有的决策变量。对于剩余的函数评估,将对原始决策变量进行优化,得到更多样化的解集,如算法1第8步所示。
1.1.1 分组机制
为了将 n n n 维决策变量分成 r r r 组,我们需要使用分组策略,通常将这些相互作用强的变量放在同一组中(在不可分的优化问题中)。这里简要说明文中使用的不同分组方法。尽管前三种方法非常简单且不使用目标函数的任何信息,但差分分组(DG)包含了一种基于问题分析的智能机制。我们将使用 DG 方法进行比较,尽管它是为单目标优化而开发的。
- 线性分组:就是将所有的 n n n 个变量按自然顺序排列,然后将前 n / r n/r n/r 个变量按照固定的组大小 r r r 分成第一组,以此类推;
- 随机分组:即把整个变量分成固定的 r r r 组,每组变量随机分配(CCGDE3就是这个分组方式,现在看来效果比较差);
- 顺序分组:在将所有变量按绝对值排序,然后按固定的分组大小 r r r 分配到不同的分组中,即将第一个 n / r n/r n/r 个变量放入第一个分组中,以此类推;
- 差分分组:DG 用于基于 CC 的单目标优化,目的是在优化前检测变量的相互作用。通过 DG 机制自动设置组数和组大小。简单来说,就是比较其他变量(other variables) x h ( h = 1 , . . . , n ) x_h(h=1,...,n) xh(h=1,...,n) 改变前后的差值(给了一个扰动后)。当 x i x_i xi 的值改变时, f ( x ) f(x) f(x) 的值不变,而与另一个变量 x h x_h xh 的值无关,所以变量 x i x_i xi 和 x h x_h xh 没有相互作用,所以可以将它们划分为不同的组。否则,这意味着它们是相互作用的,将被分配到同一组。其中有两个缺点:1)差分分组占用了大量的计算资源,使得算法开销较大;2)该机制是为单目标优化建立的。PS:关于这里的判断相互作用的详细分析,可以见我之前发的博文FII,其中的数学原理大差不离;2017年,在2014年提出的DG的基础上出现了改进的算法-DG2。
这四种分组机制在每次迭代中需要不同的计算成本。在整个过程中,线性分组不会发生变化,所以每次迭代都不需要重新计算。DG是在优化开始前预先计算的,所以不需要重新计算,这和线性分组是一样的。
然而,当问题需要转换时,随机分组和有序分组每次都需要更新。前者是对 r r