进化计算(八)——MOEA/D算法详解Ⅱ
MOEA/D论文阅读笔记Ⅱ
- MOEA/D vs. MOGLS(Neighbor&TEP)
- MOGLS
- MOGLS vs. MOEA/D(Complexity)
- 多目标0-1背包问题—MOKP
- 两种算法的MOKP具体实施
- 修复方法
- MOGLS的实施方案
- MOEA/D的实施方案
- 参数设置
- 实验结果
- 评价指标
- 结果
- MOEA/D vs. NSGA Ⅱ
- 利于实验对比的MOEA/D变体
- NSGA-Ⅱ vs. MOEA/D(Complexity)
- 参数设置
- 实验结果
- 对MOEA/D算法的一些改进
- 采用PBI分解方法的MOEA/D算法
- 采用目标函数归一化的MOEA/D算法
- Scability, Sensitivity, and Small Population in MOEA/D
- 对T的敏感性分析
- 小种群的MOEA/D算法
- 扩充性
- Conclusion
- 参考文献及链接
写在前边:本文依然是自己的理解笔记,仅用作本人学习记录。写博客的时候主要参考了原文,具体链接在文末。
MOEA/D vs. MOGLS(Neighbor&TEP)
选取MOGLS用来对比的原因是MOGLS采用了分解策略,且它在大量多目标0/1背包问题的有名算法中表现出了较好的性能。
MOGLS
MOGLS算法被Ishibuchi和Murata提出,后又被Jaszkiewicz改进。其主要思想是将MOP转换为同时优化所有加权切比雪夫函数或者所有加权和函数。下边简要描述Jaszkiewicz版本的MOGLS算法。
符号及参数定义:
在每一次迭代,MOGLS算法包括:
- 一组当前解CS和这些解的适应度值FFF-values;
- 一个外部种群EP,用于存储非支配解;
- 使用切比雪夫方法的MOGLS算法还应包括z=(z1,....,zm)Tz=(z_1,....,z_m)^Tz=(z1,....,zm)T,其中ziz_izi是目标函数fif_ifi迄今为止找到的最大值;
MOGLS需要两个控制参数KKK和SSS。其中KKK是临时精英种群的大小,SSS是CSCSCS的初始大小。mmm是目标函数个数。
输入输出
INPUT:MOP;停止迭代的条件;K;S。
OUTPUT:EP。
初始化
- 随机生成SSS个初始解。CS=x1,...,xSCS={x^1,...,x^S}CS=x1,...,xS;
- 初始化z⃗=(z1,...,zm)T\vec{z}=(z_1,...,z_m)^Tz=(z1,...,zm)T;
- 初始化EPEPEP为CSCSCS所有非支配解FFF-values的集合。
迭代循环
- 基因重组:均匀随机生成一个权重向量λ\lambdaλ。
- 针对使用权重向量λ\lambdaλ的切比雪夫聚合函数gteg^{te}gte,从CSCSCS中选出KKK个最优解形成临时精英种群TEPTEPTEP;
- 从TEPTEPTEP中随机选取两个解作为生成算子的输入生成新解yyy。
- 改善:对yyy运用启发式方法进行改善,生成y′y^\primey′;
- 更新zzz:对j=1,2,...,mj=1,2,...,mj=1,2,...,m,如果zj<fj(y′)z_j<f_j(y^\prime)zj<fj(y′),令zj=fj(y′)z_j=f_j(y^\prime)zj=fj(y′);
- 更新TEPTEPTEP中的解:
- 针对使用权重向量λ\lambdaλ的切比雪夫聚合函数gteg^{te}gte,如果y′y^\primey′比TEPTEPTEP中的最差解好并且和TEP中所有解的FFF-values都不同,就将其添加进CSCSCS集合。
- 如果CSCSCS集合大小大于K×SK × SK×S,删除CSCSCS中最旧的解(存在时间最长的解)。
- 更新EP:从EP中移除F(y′)F(y^\prime)F(y′)的支配向量;如果EP中不存在支配F(y′)F(y^\prime)F(y′)的向量就将F(y′)F(y^\prime)F(y′)加入EP。
停止迭代: 满足停止条件后,停止迭代。否则,重新进入迭代循环步骤。
MOGLS vs. MOEA/D(Complexity)
- Space Complexity:在进行搜索时,MOEA/D算法需要保留内部种群的NNN个解以及外部种群。而MOGLS需要存储CSCSCS集合,CSCSCS大小会一直增加直到最大边界K×SK × SK×S。因此,如果K×SK × SK×S比NNN大且两种算法生成了相同数量的非支配解时,MOEA/D的空间复杂度小。
- Computational Complexity:重要的复杂计算集中在迭代循环步骤。
- 基因重组步骤,∣CS∣|CS|∣CS∣非常大时,MOGLS的计算复杂度远高于MOEA/D:
MOGLS:需要生成TEPTEPTEP。一是计算CSCSCS中所有点的目标函数值fj(x)f_j(x)fj(x),需要O(m×∣CS∣)O(m×|CS|)O(m×∣CS∣);二是在选择TEPTEPTEP时需要计算gteg^{te}gte值,O(K×∣CS∣)O(K×|CS|)O(K×∣CS∣);
MOEA/D:只需要随机选取两个用于生成算子的解。 - 改善新解yyy和更新参考点向量zzz步骤,两者相同;
- 更新TEPTEPTEPvs.更新邻居解:MOEA/D需要O(T)O(T)O(T);MOGLS需要O(K)O(K)O(K)【计算TTT个邻居解的gteg^{te}gte或者计算KKK个TEPTEPTEP解的gteg^{te}gte】。当TTT和KKK的值选取接近时,两算法差别不大。
综上,大概可以判断MOEA/D的计算复杂度小。【主要由于基因重组生成新解步骤】
多目标0-1背包问题—MOKP
给定nnn个物品和mmm个背包,在满足容量限制的条件下使收益最大化。MOKP的数学描述为:
maxmizefi(x)=∑j=1npijxj,i=1,...,ms.t.∑j=1nwijxj≤cj,i=1,...,mx=(x1,...,xn)T∈{0,1}n(1)maxmize\quad f_i(x)=\sum_{j=1}^{n}p_{ij}x_j,i=1,...,m\\s.t.\quad \sum_{j=1}^{n}w_{ij}x_j\le c_j,i=1,...,m\\x=(x_1,...,x_n)^T \in \left\{0,1\right\}^n\quad (1)maxmizefi(x)=j=1∑npijxj,i=1,...,ms.t.j=1∑nwijxj≤cj,i=1,...,mx=(x1,...,xn)T∈{0,1}n(1)
其中:第iii个背包中第jjj个物品的价格pij≥0p_{ij}\ge 0pij≥0;第iii个背包中第jjj个物品的重量wij≥0w_{ij}\ge 0wij≥0;cic_ici是第iii个背包的容量;xi=1x_i=1xi=1时意味着物品iii被选中并且将其放进所有的背包中。
关于该问题的9个测试实例被广泛用于多目标启发式算法的测试。在大量的MOEA算法中,MOGLS针对这些测试实例展现出了较为杰出的性能。
两种算法的MOKP具体实施
修复方法
修复方法主要是为了修正启发式算法所搜索到的非可行解。令y=(y1,...,yn)T∈{0,1}ny=(y_1,...,y_n)^T\in \left\{0,1\right\}^ny=(y1,...,yn)T∈{0,1}n为MOP(1)MOP(1)MOP(1)的一组不可行解。一种方法可以将某些yiy_iyi由1改成0使得wij≥0,pij≥0w_{ij}\ge 0, p_{ij}\ge 0wij≥0,pij≥0。Jaszkiewicz提出了一种贪心修复算法。
- INPUT&OUTPUT:
Input:MOP,解yyy,待最大优化的目标函数g:{0,1}n⟶Rg:\left\{0,1\right\}^n\longrightarrow Rg:{0,1}n⟶R;
Output:可行解y′=(y1′,...,yn′)Ty^\prime=(y_1^\prime,...,y_n^\prime)^Ty′=(y1′,...,yn′)T - Step(1):如果yyy是可行的,令y′=yy^\prime=yy′=y并返回y′y^\primey′;
- Step(2):令J={j∣1≤j≤nand yj=1}J=\left\{j|1\le j\le n \text { and } y_j=1\right\}J={j∣1≤j≤n and yj=1}且I={j∣1≤j≤mand ∑j=1nwijxj>cj}I=\left\{j|1\le j\le m\text { and }\sum_{j=1}^{n}w_{ij}x_j>c_j\right\}I={j∣1≤j≤m and ∑j=1nwijxj>cj}
- Step(3):选择k∈Jk\in Jk∈J例如k=argminj∈Jg(y)−g(yj−)∑i∈Iwijk=arg\underset{j\in J}{min}\frac{g(y)-g(y^{j-})}{\sum_{i\in I}w_{ij}} k=argj∈Jmin∑i∈Iwijg(y)−g(yj−)
其中,yj−y^{j-}yj−仅与yyy在jjj处的值不同【例如:对所有的i≠j,yij−=yi∧yjj−=0(yj=1)i\ne j,y_i^{j-}=y_i\wedge y_j^{j-}=0(y_j=1)i=j,yij−=yi∧yjj−=0(yj=1)】。令yk=0y_k=0yk=0并返回Step(1)。
这种方法中,在这种方法中,物体被一个一个移除直到yyy为可行解。过重背包中拥有较重质量(∑i∈Iwij\sum_{i\in I}w_{ij}∑i∈Iwij)以及对g(x)g(x)g(x)贡献小的物体(g(y)−g(yj−)g(y)-g(y^{j-})g(y)−g(yj−))更可能被移除。
MOGLS的实施方案
修复算法使用Jaszkiewicz提出的贪心算法。使用切比雪夫方法的MOGLS算法细节如下:
- 初始化z=(z1,...,zm)Tz=(z_1,...,z_m)^Tz=(z1,...,zm)T:针对每一个目标函数fif_ifi随机生成一个点,应用修复算法将其修正为可行解。将该点的fif_ifi值定为ziz_izi。
- 初始化EP、CSEP、CSEP、CS:初始化EP、CSEP、CSEP、CS为空集,然后将下列步骤重复SSS次。
1. 使用论文中描述的采样算法随机生成权重向量λ\lambdaλ;
2. 随机生成解x=(x1,...,xn)T∈{0,1}nx=(x_1,...,x_n)^T\in \left\{0,1\right\}^nx=(x1,...,xn)T∈{0,1}n,其中xi=1x_i=1xi=1(即被选中)的概率是0.5;
3. 将−gte(x∣λ,z)-g^{te}(x|\lambda,z)−gte(x∣λ,z)设为修复算法的目标函数,对xxx使用修复算法得到可行解x′x\primex′;
4. 将x′x\primex′添加进CSCSCS。从EPEPEP中移除所有被F(y′)F(y\prime)F(y′)支配的目标向量。如果原EP中不存在支配F(y′)F(y\prime)F(y′)的向量,将F(y′)F(y\prime)F(y′)加入EP。 - 生成算子:单点交叉算子和标准变异算子。单点交叉生成子代解child solution,变异算子以每个点为0.01的变异概率对子代解进行变异操作生成新解yyy。
- 改善修复算法:Jaszkiewicz提出的贪心算法。
MOEA/D的实施方案
使用与MOGLS相同的生成算子、zzz的初始化方法以及改善修复算法。第iii个子问题的初始解xix^ixi的初始化方法:将−gte(x∣λ,z)-g^{te}(x|\lambda,z)−gte(x∣λ,z)设为目标函数,对随机生成的解应用修复算法。令xix^ixi为修复后的解。
采用加权和分解方法时,两个算法的具体实施过程基本一致。除了修复算法中将gwsg^{ws}gws作为目标函数以及不保留zzz。
参数设置
MOGLS:设置K=20K=20K=20,针对不同的实例设置不同的SSS;
MOEA/D:设置T=10T=10T=10,NNN和λ1,...,λN\lambda^1,...,\lambda^Nλ1,...,λN的设定与参数HHH有关。每一个权重值取自{0H,1H,...,HH}\left\{\frac{0}{H}, \frac{1}{H},...,\frac{H}{H} \right\}{H0,H1,...,HH}。因此,权重向量个数N=CH+m−1m−1N=C_{H+m-1}^{m-1}N=CH+m−1m−1。
实验结果
每个测试函数在MOGLS和MOEA/D算法中独立运行30次。
评价指标
覆盖率——C-metric:
令AAA和BBB是一个MOP中两个PF的近似解集,定义C(A,B)C(A,B)C(A,B)如下:
C(A,B)=∣{u∈B∣∃v∈A:vdominates u}∣∣B∣C(A, B)=\frac{|\{u \in B \mid \exists v \in A: v \text { dominates } u\}|}{|B|}C(A,B)=∣B∣∣{u∈B∣∃v∈A:v dominates u}∣
其中,C(A,B)≠1−C(B,A)C(A,B)\ne1-C(B,A)C(A,B)=1−C(B,A)。C(A,B)=1C(A,B)=1C(A,B)=1意味着BBB中所有的解都被AAA中的某些解支配了,C(A,B)=0C(A,B)=0C(A,B)=0意味着BBB中没有解被AAA中的解支配。C(A,B)C(A,B)C(A,B)越大就证明AAA中的解对BBB中解的支配度越高,即AAA中的解越优于BBB中的解。
距离度量——D-metric:
令P∗P^*P∗为一组均匀分布在PF上的点的集合,AAA是PF的近似解集。P∗P^*P∗到AAA的平均距离定义为:
D(A,P∗)=∑v∈P∗d(v,A)∣P∗∣D\left(A, P^{*}\right)=\frac{\sum_{v \in P^{*}} d(v, A)}{\left|P^{*}\right|}D(A,P∗)=∣P∗∣∑v∈P∗d(v,A)
其中,d(v,A)d(v, A)d(v,A)是vvv点和AAA中某点的最小欧氏距离。如果P∗P^*P∗足够大(P∗P^*P∗中解的个数足够多),说明其可以很好的代表PF。D(A,P∗)D\left(A, P^{*}\right)D(A,P∗)可以在某种意义上评估AAA的收敛性和多样性。D(A,P∗)D\left(A, P^{*}\right)D(A,P∗)值越小,就说明AAA越接近PF,收敛性越好。
结果
作者直接使用Jaszkiewicz求解的upper approximation of the PF作为真实的PF点。通过对比平均CPU运行时间和评价指标的均值与标准差,得出如下结论:
- CPU time:
- 横向对比:针对2/3/4目标函数实例,MOEA/D算法的运行时间都远小于(大约是1/7)MOGLS,印证了MOEA/D计算复杂度小这一特征;
- 纵向对比:MOEA/D——2/3目标函数下加权和分解方法运行速度快,4目标函数下切比雪夫方法运行速度快;MOGLS——2目标函数下,切比雪夫方法运行速度快,3/4目标函数下加权和方法运行速度快。
- 对所有的测试实例,使用加权和或者切比雪夫方法的MOEA/D算法可以在更少次修复下达到最小化D-metric的目的。
- 对于C-metric值和D-metric值(及标准差值):
- C-metric值:选取解集AAA为MOEA/D算法求解的解集,解集BBB为MOGLS算法求解的解集。实验结果显示两种方法下绝大部分C(A,B)C(A,B)C(A,B)明显大于C(B,A)C(B,A)C(B,A)(尤其是切比雪夫分解方法),即MOEA/D算法得出的解集支配MOGLS算法得出的解集。
- D-metric值:MOEA/D算法的值均小于MOGLS算法的D值,且绝大多数标准差也更小,MOEA/D算法的收敛性更好。
- 从收敛性来看,切比雪夫分解方法下两种算法收敛性能更好。
综上,在多目标背包问题中MOEA/D算法性能很好的体现了其计算复杂度低的特点,同时其收敛性也明显优于MOGLS算法。
MOEA/D vs. NSGA Ⅱ
测试函数:ZDT1~ZDT4、ZDT6,DTLZ1、DTLZ2[跳转]。
NSGA-Ⅱ基础理论知识:跳转。
利于实验对比的MOEA/D变体
为了保证两者有一个公平的对比,对MOEA/D算法做出了如下变动:
- 取消EP:将内部种群产生的最终迭代解返回为算法所得的PF近似解,因此也就不存在更新EP这一步骤;
- 不使用修复方法,因此不存在改善这一步骤;
- 更新邻居解时使用gteg^{te}gte,即使用切比雪夫分解方法。
加权和方法无法处理非凸解,所以此处采用切比雪夫分解方法。
NSGA-Ⅱ vs. MOEA/D(Complexity)
Space:与NSGA-Ⅱ相比,MOEA/D算法额外的内存需求仅多了存储zzz,而zzz的大小是O(m)O(m)O(m),与种群大小相比zzz很小。因此两者空间复杂度相近。
Computational:NSGA-Ⅱ的复杂度为O(mN2)O(mN^2)O(mN2)[跳转],MOEA/D的计算复杂度为O(mNT)O(mNT)O(mNT)。MOEA/D算法的计算复杂度主要集中在迭代循环步骤:移除了改善步骤和更新EP步骤后,基因重组步骤随机选取两个解、更新zzz步骤计算yyy对应的m个目标函数值用于更新zzz—O(m)O(m)O(m)、更新邻居解步骤需要计算TTT个邻居解的gteg^{te}gte值(计算一个邻居解就需要m次)—O(mT)O(mT)O(mT)。针对NNN个子问题求出最优解组成最终的PF近似解集—O(mNT)O(mNT)O(mNT)。因此,它们的计算量每一代的复杂性为O(mNT)O(mN2)=O(T)O(N)\frac{O(mNT)}{O(mN^2)}=\frac{O(T)}{O(N)}O(mN2)O(mNT)=O(N)O(T)
由于TTT远小于NNN,因此MOEA/D比NSGA-II计算复杂度低。
参数设置
种群规模:2目标函数设为100;3目标函数设为300;
迭代次数:设为250。
种群初始化:在可行域内均匀随机采样。
ziz_izi初始化:设置为初始种群中fif_ifi的最小值。
生成算子:SBX & polynomial mutation,分布参数设为20。
交叉概率:设为1。
变异概率:设为1/n1/n1/n,其中nnn是决策变量个数。
权重向量的生成:同MOGLS对比实验时的生成方法(N、H)。
T:设为20。
每次对比试验运行30次。
真实PF:2目标函数选取了PF上的500个均匀分布的解;3目标函数选取了PF上990个均匀分布的解。
实验结果
- CPU time:对2目标测试函数,MOEA/D算法是NSGA-Ⅱ算法的两倍快;对3目标测试函数,MOEA/D算法是NSGA-Ⅱ算法的八倍快。
- D-metric的收敛速率:在ZDT4/6和DTLZ1/2测试函数上,MOEA/D最小化D-metric值的速率更快。在其他几个测试函数上,与NSGA-Ⅱ持平或稍慢。
- C-metric值:选取解集AAA为MOEA/D算法求解的解集,解集BBB为NSGA-Ⅱ算法求解的解集。实验结果显示两种方法下绝大部分C(A,B)C(A,B)C(A,B)明显大于C(B,A)C(B,A)C(B,A)(除了ZDT4),即MOEA/D算法得出的解集支配MOGLS算法得出的解集。
- D-metric值:MOEA/D在ZDT4/6和DTLZ1/2上所求D-metric值小于NSGA-Ⅱ。在其他几个测试函数上,略差于NSGA-Ⅱ。
- 解的分布性及收敛性:在ZDT1/2/6和DTLZ1/2测试函数上,MOEAD算法的分布性更好。在ZDT4函数上,两者分布性近似。在ZDT3函数上,NSGA-Ⅱ表现更好,MOEA/D找到的解少于NSGA-Ⅱ。
综上,使用切比雪夫方法的MOEA/D算法运行速度快。对于搜索到的解的质量,两者在2目标函数上表现近似,MOEA/D算法在3目标函数上的表现性能要明显优于NSGA-Ⅱ。
对MOEA/D算法的一些改进
通过对目标函数归一化可以使解的分布性得到明显改善。易判断,ZDT3测试函数是不连续的,DTLZ1/2问题中有两个问题是自然上升的。为了改善解的分布性,作者使用采用PBI方法的MOEA/D对DTLZ1/2进行优化,使用对目标函数归一化的MOEA/D对ZDT3进行优化。改善后结果如下:
采用PBI分解方法的MOEA/D算法
作者使用PBI分解方法在两个3目标问题上进行测试,选取惩罚因子θ=5\theta = 5θ=5,其他参数设置和采用切比雪夫方法的MOEA/D算法相同。实验结果显示,采用PBI分解方法的D-metric值最小。且由实际解集分布(下图)可看出,PF近似解的分布性得到了明显的改善。因此,在MOEA/D框架中采用更为先进的分解方法解决3及以上目标函数的多目标问题是值得研究的。
采用目标函数归一化的MOEA/D算法
作者仍采用基于切比雪夫分解方法的MOEA/D算法且不对参数做任何修改,仅在实施过程中对目标函数归一化。最简单的归一化方法是令(多目标问题为最小化问题)
fi=fˉi=fi−zi∗zinad−zi∗f_i=\bar{f}^i=\frac{f_i-z_i^*}{z_i^{nad}-z_i^*} fi=fˉi=zinad−zi∗fi−zi∗
其中,z∗=(z1∗,...,zm∗)Tz^*=(z_1^*,...,z_m^*)^Tz∗=(z1∗,...,zm∗)T为参考点,znad=(z1nad,...,zmnad)Tz^{nad}=(z_1^{nad},...,z_m^{nad})^Tznad=(z1nad,...,zmnad)T为目标空间的最低点。例如,zinad=max{fi(x)∣x∈PS}z_i^{nad}=max\left\{f_i(x)|x\in PS\right\}zinad=max{fi(x)∣x∈PS}。换句话说,znadz^{nad}znad定义了PF的上界,PF前沿。易判断,fi−zi∗≤zinad−zi∗f_i-z_i^*\le z_i^{nad}-z_i^*fi−zi∗≤zinad−zi∗。由此就将每一个目标函数的范围转化到了[0,1]范围内。
但是,预先计算znadz^{nad}znad和z∗z^*z∗是困难的。作者以zzz代替z∗z^*z∗[前文中提到的初始化zzz及更新zzz的方法所产生的zzz即为z∗z^*z∗的替代],以z~inad\tilde{z}_i^{nad}z~inad(当前种群下fif_ifi的最大值)代替zinadz_i^{nad}zinad。因此,计算gteg^{te}gte的式子由max1≤i≤m{λi(fi−zi)}\underset{1\le i\le m}{max}\left\{\lambda_i(f_i-z_i)\right\}1≤i≤mmax{λi(fi−zi)}变为max1≤i≤m{λi∣fi−ziz~inad−zi∣)}.\underset{1\le i\le m}{max}\left\{\lambda_i\left |\frac{f_i-z_i}{\tilde{z}_i^{nad}-z_i}\right |)\right\}.1≤i≤mmax{λi∣∣∣∣z~inad−zifi−zi∣∣∣∣)}.
实验结果显示,通过对目标函数归一化可以对不同缩放程度的目标函数所构成的MOP解的分布性得到明显改善。
Scability, Sensitivity, and Small Population in MOEA/D
对T的敏感性分析
作者采用控制变量法对T进行敏感性分析。分别对250-2背包问题和ZDT1进行敏感性分析。结果显示,T在10到50范围内MOEA/D对250-2背包问题表现得性能都较好。对ZDT1,MOEA/D在除了特别小的值之外所有T值情况下表现性能都很好。可以说,MOEA/D对T的设置不敏感(至少在相似问题下不敏感)。
在250-2背包问题中,T过大过小表现都不好:TTT太小,子代解和父代解会十分接近,从而使得算法缺乏探索其他搜索区域的能力;TTT太大,生成算子的两个输入解性能会很差,从而导致子代解性能也很差,影响算法的搜索能力。此外,T太大也会在更新邻居解步骤时产生较大的计算复杂度。
而在ZDT1问题中,T过大算法的表现性能依旧不错,可能是因为即使两个子问题的权重向量十分不同,但是它们相关子问题的最优解还是十分相似的。
小种群的MOEA/D算法
通常决策者并不需要消耗大量计算能力的大量Pareto最优解,他们只希望在小的计算复杂度情况下获得均匀分布的少量Pareto最优解。小种群的MOEA/D算法仍能获得在PF上均匀分布的解。作者以ZDT1为例,并采用前文相似的切比雪夫方法,仅将NNN设为20(前文是100)。结果显示,N=20N=20N=20情况下得到的Pareto最优解仍是在PF上均匀分布,而NSGA-Ⅱ算法则无法在相同迭代次数下找到最优解。
扩充性
为了观察在将D-metric降低到相同水平时决策变量个数与函数计算的平均次数之间的关系,作者在ZDT1上进行了实验。除了迭代次数变为1000次(最大函数计算次数为10510^5105),其他参数设置与前文MOEA/D算法相同。结果显示,随着决策变量个数的增加,函数计算次数线性增加。
Conclusion
MOEA/D算法首先将MOP分解为一组单目标子问题。然后利用EA同时对这些子问题进行优化。MOEA/D种群中的每一个个体解都和一个子问题相关联。所有子问题之间的邻居关系定义为它们的权重向量之间的距离。在MOEA/D算法中,使用当前子问题的邻居子问题当前解对当前子问题进行优化。
作者将MOEA/D算法与MOGLS算法和NSGA-Ⅱ算法进行比较。结果显示MOEA/D算法拥有更低的计算复杂度,且在大多数测试问题中,MOEA/D算法所求解的质量更好。
作者通过PBI分解和目标函数归一化方法改进MOEA/D,体现了MOEA/D算法的可优化性。
作者采用控制变量法得出了MOEA/D算法对T不敏感,小种群下的MOEA/D算法同样可以得到均匀分布的解以及随着决策变量个数的增加MOEA/D的计算复杂度会线性增加的结论。
参考文献及链接
[1]Qingfu Zhang, Hui Li.MOEA/D: A Multiobjective Evolutionary Algorithm
Based on Decomposition[J].IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION,2007(6):712-731
进化计算(八)——MOEA/D算法详解Ⅱ相关推荐
- Matlab人脸检测算法详解
这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...
- C语言实现扫雷完整算法详解~(附完整代码~)
扫雷是一个常见小游戏,那么如何用C语言实现扫雷呢?学习了二维数组之后,我们可将扫雷的网格区域存储为二维数组,从而使用C语言实现扫雷. 目录 1.算法基本思路 2.算法详解 1.初始化数组与打印数组 2 ...
- 【面试】Raft算法详解
文章目录 前言 一.Raft算法概述 二.Leader选举 三.日志同步 四.安全性 五.日志压缩 六.成员变更 七.Raft与Multi-Paxos的异同 八.Raft算法总结 参考 前言 Paxo ...
- 【机器学习】集成学习及算法详解
集成学习及算法详解 前言 一.随机森林算法原理 二.随机森林的优势与特征重要性指标 1.随机森林的优势 2.特征重要性指标 三.提升算法概述 四.堆叠模型简述 五.硬投票和软投票 1.概念介绍 2.硬 ...
- 神经网络算法详解 04:反馈神经网络(Hopfield、BAM、BM、RBM)
本文介绍了反馈神经网络,包括Hopfield网络,离散Hopfield网络(DHNN),连续Hopfield网络(CHNN),双向联想记忆网络(BAM),玻尔兹曼机(BM),受限玻尔兹曼机(RBM). ...
- JVM之垃圾回收算法详解
JVM之垃圾回收算法详解 现有的垃圾回收算法 分类 垃圾收集器的设计原则 标记-清除算法 缺点 标记-复制算法 "Apple回收策略" 缺点 标记-整理算法 缺点 总结 现有的垃圾 ...
- Deep QLearning算法详解(强化学习 Reinforcement Learning)
一.算法详解 文章最后附有博主自己实现的深度qlearning玩space invader游戏 本文介绍的是基于神经网络的qlearning算法.我们知道传统的qlearning算法只能处理状态和动作 ...
- 寻路算法——A*算法详解并附带实现代码
一.前言 前天看了一篇博客介绍A*算法,按照自己的理解记录一下A*算法. 二.应用场景 一副地图中有坐标A和B,需要找到一条路径(如果有的话)能从A到B,地图中可能有河流或墙壁不能直接穿过,我们需要怎 ...
- 图论-最短路Dijkstra算法详解超详 有图解
整体来看dij就是从起点开始扩散致整个图的过程,为什么说他稳定呢,是因为他每次迭代,都能得到至少一个结点的最短路.(不像SPFA,玄学复杂度) 但是他的缺点就是不能处理带负权值的边,和代码量稍稍复杂. ...
- C++中的STL算法详解
1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...
最新文章
- 华为机考HJ6求质因子C语言解法
- 引进博士:118万安家房补+18万经费;硕士:42万安家房补+10万经费
- shinelon笔记本进bios设置u盘启动_U盘启动快捷键、开机进BIOS按键查询
- ASP.NET Core跨平台技术内幕
- Hamcrest Matchers教程
- java js跳出循环_[Java教程]js循环的总结
- Spring精华问答 | Spring Bean的自动装配是怎么回事?
- qt通过代码创建滚动区域,添加滚动区域到窗口
- 推荐Python互动艺术在线编辑器(腾讯扣叮)
- 微软将终止支持 Win7;今日头条不与微信竞争;诺基亚芬兰裁员 | 极客头条
- Atitit json数据操作法 目录 1. 2. 常用json函数类型四大类型	 crud判断	1 1.1. 2.1. 创建json	2	1 1.2. 2.2. 选择与读取	3读取数据读取key
- 【Driver】协作安装程序
- 面包板入门电子制作 学习笔记5
- 一款可以通过经度纬度精确查询天气的工具
- 【LoRa点对点通信与控制】
- 无尽神域服务器维护,无尽神域辅助介绍_脚本功能大全
- 项目国际化I18N多语言切换
- Python语言程序设计 - 北京理工大学 网课所有资料(源码,pdf,ppt课件,视频等)
- 一个屌丝程序猿的人生(九十)
- UCOSIII操作系统学习笔记——任务
热门文章
- 基于MATLAB的数字信号处理(2) 时域采样和频域采样
- 用python证明采样定理_这一切都从指数函数开始(4)——采样定理
- Linux 系统启动与服务管理
- 双创计算机应用基础答案,“双创”背景下基于《计算机应用基础》课程网络学习空间的教学实践与研究(原稿)...
- 简易数字电路交通灯设计
- TMR 传感器的原理及应用
- php连接mysql 实现登录_php如何连接mysql实现简单注册登陆页面
- 手机测试光纤网速的软件,如何测试光纤网速?如何测试网速多少兆
- VLAN与Trunk的配置
- IT行业常见职位英语缩写及中文释义