王启翔,许 峰
(安徽理工大学 数学与大数据学院,安徽 淮南 232001)
2007年,Zhang[1]提出了基于多目标分解的MOEA/D,但是随着目标维数的上升,全局搜索能力下降,容易陷入局部最优。为了改善MOEA/D 算法,许多学者做了大量研究、改进工作。2018年,Ryoji[2]分析了MOEA/D 的控制参数;2020年,Dong[3]提出了自适应权重 MOEA/D;Zhang[4]提出了基于信息反馈的MOEA/D;Wang[5]提出了自适应演化策略MOEA/D;Zhang[6]提出了多阶段动态演化MOEA/D;Fan[7]提出了基于角度约束的MOEA/D。
2009年,张敏[8]提出了一种基于正态分布交叉的MOEA算法;2019年,Zhang[9]将差分算子引入 MOEA 算法,提出了一种双变量控制MOEA/D 算法。本文在上述工作的基础上,将正态分布交叉算子和差分进化算子引入MOEA/D,构成协同进化,并用标准多目标优化测验函数对改进算法进行了性能测试,验证了新算法的有效性。
MOEA/D 通过预先设定的权重向量将复杂的多目标优化问题转变为一系列的单目标问题,每一个子问题使用与其相邻的子问题提供的参考信息,相互协同进化,主要用于求解MaOP。该算法采用Tchebycheff 分解法,MOEA/D 的基本步骤如下:
(1)N:子问题的个数;
(2)N 个均匀分布的权重向量:λ1,λ2,...,λN;
(3)T:每个权重向量邻居的个数。
步骤1 初始化:
(1)设EP=Φ。
(2)计算任意两个权重向量之间的欧几里德距离,为每个权重向量选出最近的T 个权向量作为它的邻域。即 λi1,λi2,...,λiT是离 λi最近的 T 个权重向量,i=1,2,…,N,令 B(i)={i1,i2,…,iT}。
(3) 根据权重向量来产生初始种群 x1,x2,…,xN。
步骤2 更新:
对 i=1,2,…,N:
(1)从 B(i)中随机选取两个序号 k,l,对 xk和 xl执行SBX 算子产生一个新的解y。
(4)更新EP:剔除EP 中受y 支配所有的向量,并且在EP 中向量都不支配y 时,令EP=EP∪{f(y)}。
步骤3 终止条件:如果满足终止条件,则停止并输出EP,否则转步骤2。……