多目标优化系列(三)MOEA/D

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014119694/article/details/77278398

MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition
中文链接:https://wenku.baidu.com/view/d163a04d915f804d2a16c102.html

摘要

该文中文名是:基于分解的多目标进化算法。该方法将一个多目标优化问题分解为一组但目标优化问题并对他们同时优化。通过利用每一个子问题相邻的子问题来优化他本身。

引言(摘录)

多目标优化问题可以用该式子表示:
这里写图片描述
其中Ω是决策空间,F:Ω→Rm,包含了m个实值目标方法,Rm被称为目标区间。对于可以得到的目标集合成为{F(x)|x∈Ω}。如果目标函数互斥,那么同时对所有目标函数求最优解往往是无意义的。有意义的是获得一个能维持他们之间平衡的解。这些在目标之间获得最佳平衡的解被定义Pareto最优。
一般来说,在温和控制下多目标优化问题的Pareto最优解,可以看做是一个标量优化问题的最优解(其中目标函数是fi的集合)。因此,Pareto最优前沿的近似求解可以被分解为一组标量目标优化子问题。这个想法是建立在许多传统的对最优前沿求近似解的数学编程方法上的。现在有许多的聚合方法,最流行的是切比雪夫法和加权法。最近,边界交叉方法也引起了许多的关注。
在本篇文章中,作者提出了一个新的基于分解的多目标进化算法。MOEA/D将MOP分解为N个标量的子问题。它通过进化出一个解的种群来同时解决所有子问题。对于每一代种群,种群是从所有代中选出的每一个子问题的最优解的集合。相邻两个子问题键的关联程度是由它们的聚合系数向量间的距离所决定的。对于两个相邻子问题来说,最优解应该是非常相似的。对于每一个子问题来说,只是用与其相邻的子问题的信息来优化它。MOEA/D有以下特性:

  • MOEA/D提供了一个简单但是有效的方法,那就是将分解的方法引入到多目标进 化计算中。对于常常在数学规划领域发展的分解方法,它可以真正的被并入到EA中,通过使用MOEA/D框架来解决MOP问题。
  • 因为MOEA/D算法是同时优化N标量子问题而不是直接将MOP问题作为一个整 体来解决,那么对于传统的并不是基于分解的MOEA算法来说适应度分配和多样性控制的难度将在MOEA/D框架中得到降低。
  • MOEA/D算法有一个较低的计算复杂度相比于NSGA-Ⅱ和MOGLS。总体来说, 在MOGLS和MOEA/D同时解决0-1背包问题测试样例中,两者使用相同的分解方法,MOEA/D在解的质量上表现更为出色。在一组连续的MOP样例测试中,使用了切比雪夫分解法的MOEA/D方法和NSGA-Ⅱ表现相近。在一个3目标的连续样例测试中,使用一个先进的分解方法的MOEA/D算法表现的比NSGA-Ⅱ出色许多。当MOEA/D算法使用一个小型种群时也可以产生一组种群数量少的分布均匀的解。
  • 因为在MOEA/D中每一个解都和标量优化问题有关,所以使用标量优化方法显得 很自然。相反,对于传统的不是基于分解的MOEA算法的一个缺点就是很难找到一个简单的方法来冲分利用标量优化算法。

正文

首先,我们介绍三种分解(将解投影到每一个子问题上,而每一个子问题就是一个方向)方法。

A. 权重求和方法
假设待优化的多目标问题有m个目标,该函数通过一个非负权重向量λ =(λ1……λm)加权到每个目标上将问题转换为单目标问题。每一个但目标问题都可以如下表示,不同的问题有不同的权重向量,对于所有的i=1,2,…,m,λi>=0,权重和为1。
这里写图片描述
然而,在最优Pareto面的形状为非凸面的情况下,这种方法并不能获得每一个Pareto最优向量。为了克服这些缺点,研究人员做出了一些努力,例如在此方法中引入了ε−约束。
如下图所示:λi表示一个方向,x1对应在λ1上的点为H1,H1到O点的距离则为x1在λ1方向上的投影,即x1在该问题上所对应的子问题值。
这里写图片描述
B.切比雪夫聚合方法
计算公式如下图所示:对于每一个i=1,…,m,有Zi*=min⁡{fi(x)|x∈Ω}。
这里写图片描述

c.边界交叉聚合方法
先上图,F(x)为原始问题,λ代表一个向量,z*是对应参考点,我们目的是让F(x)尽可能的逼近右上角的实曲线,该方法通过采用惩罚的方法来处理约束。
这里写图片描述
公式:d1代表F(x)在λ投影上距参考点的距离,我们想让d1尽可能的小,并且为了多样性,增加d2。
这里写图片描述

基于分解的多目标优化算法的框架

该文采用切比雪夫方式来分解。
这里写图片描述
从初始条件可以看出,每个子问题均含一个解。
这里写图片描述
这里对下图中的算法进行简要描述。首先,初始化过程如上图描述,更新是由临近的权重向量对应的x中选择两个产生新的解,更新z,更新域的方式(第二幅图)是:如果新解在该向量邻域内比某个点优,则将该向量代表的点替换成新解,并且吧该新解的值付给FVj。
这里写图片描述

这里写图片描述

细节

B(i)中包含了λi的T个索引向量,两个向量之间的距离可用欧氏距离来衡量,距离权重向量λi的最近权重向量是其本身,在step2.1中,权重向量对应的x应是当前对应所属子问题的最好解,他们的子代y应对第i个问题产生好的解有帮助。

猜你喜欢

转载自blog.csdn.net/u014119694/article/details/77278398