MOEA/D 是一种将数学规划方法与 EA 相结合的求解 MOP 的 MOEA。 MOEA/D 将一个 MOP 分解为若干个的单目标优化子问题进行求解。由于子问题的 构造方法相同,只有权重不同,故权重的欧式距离较近的子问题,其最优解有相 互指导意义,因而该算法的进化动力是对邻近子问题的进化。
1.1MOEA/D 的特点
1.2MOEA/D 与其他 MOEA 的不同之处在于: (1)与其他经典 MOEA 不同,MOEA/D 采用数学规划中的分解策略,针对同一 个 MOP 采用分解策略进行分解,可根据求解的效果选择最佳分解策略,同时可与 传统的优化方法进行结合,进一步提高算法的优化性能。 (2)MOEA/D 中引入邻域的概念,邻域中的相邻子问题较为相似,故其解的信 息可同时优化多个子问题。邻域不仅加快了算法的运算效率,充分利用每个求得 的解,而且可以减少子问题的重复优化,简化运算。 (3)MOEA/D 中子问题的构造是由权向量来控制的,而 MOEA/D 进化的动力是 来源于邻域中子问题的解的指导,因此可以通过改变权向量中某个分量的值来动 态调整种群个体的进化方向,从而使该算法在搜索帕累托前沿不同部分的时候能 根据帕累托前沿的特征进行调整,更加合理分配运算资源。 (4)MOEA/D能求解其他MOEA无法解决的MOP,且其解具有良好的性能[63]。, 故而该算法的具有更强的通用性,应用空间广泛。 (5)MOEA/D 能很好地求解现阶段大多数 MOEA 无法求解的多个目标(尤其是目标个数大于 3 时)的优化问题。当目标个数较多时,传统的 MOEA 的性能往往 会下降,无法得到高质量的解,而相对来说 MOEA/D 的算法性能没有明显下降。 (6)MOEA/D 易于引进目标归一化技术。在实际运用过程中,往往会遇到多个 目标函数的值属于不同的数量级别,而这个问题会影响到很多算法的运行性能。 在 MOEA/D 中,可以引入目标归一化技术来解决这个问题。




%function sp=CreateSubProblems(nObj,nPop,T) empty_sp.lambda=[]; empty_sp.Neighbors=[]; sp=repmat(empty_sp,nPop,1); %theta=linspace(0,pi/2,nPop); for i=1:nPop lambda=rand(nObj,1); lambda=lambda/norm(lambda); sp(i).lambda=lambda; %sp(i).lambda=[cos(theta(i)) % sin(theta(i))]; end LAMBDA=[sp.lambda]'; D=pdist2(LAMBDA,LAMBDA); for i=1:nPop [~, SO]=sort(D(i,:)); sp(i).Neighbors=SO(1:T); endend

[1]连海. 基于改进MOEA/D算法的微网分级调度研究.
部分理论引用网络文献,若有侵权联系博主删除。