MOEA/D(Multi-Objective Evolutionary Algorithm based on Decomposition)简介
前言
提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。
内容由AI辅助生成,仅经笔者审核整理,请甄别食用。
文章目录
- 前言
- 🔷 一、MOEA/D 的基本思想
- 多目标优化问题形式:
- 🔷 二、MOEA/D 的核心步骤
- 1. **将多目标问题分解为多个单目标问题**
- ✅ **Tchebycheff 变换(最常用)**
- 其他常见分解方法:
- 2. **邻居机制**
- 3. **演化操作**
- 4. **更新策略**
- 🔷 三、MOEA/D 与 NSGA-II 的对比
- 🔷 四、优点与局限
- ✅ 优点:
- ⚠️ 局限:
- ✅ 总结公式回顾:
MOEA/D(Multi-Objective Evolutionary Algorithm based on Decomposition,多目标进化算法基于分解)是一种将多目标优化问题转化为多个单目标优化子问题并同时求解的进化算法。它由 Zhang 和 Li 于 2007 年提出,是当前主流的多目标优化框架之一,特别适合处理多目标和超多目标问题。
🔷 一、MOEA/D 的基本思想
多目标优化问题形式:
MinimizeF(x)=(f1(x),f2(x),…,fM(x))subject tox∈Ω⊆Rn\begin{aligned} \text{Minimize} \quad & \mathbf{F}(\mathbf{x}) = (f_1(\mathbf{x}), f_2(\mathbf{x}), \dots, f_M(\mathbf{x})) \\ \text{subject to} \quad & \mathbf{x} \in \Omega \subseteq \mathbb{R}^n \end{aligned} Minimizesubject toF(x)=(f1(x),f2(x),…,fM(x))x∈Ω⊆Rn
其中:
- x\mathbf{x}x是决策变量;
- F(x)∈RM\mathbf{F}(\mathbf{x}) \in \mathbb{R}^MF(x)∈RM是 M 个目标函数;
- 希望得到所有的 帕累托最优解集(Pareto optimal set)与 帕累托前沿(Pareto front)。
🔷 二、MOEA/D 的核心步骤
1. 将多目标问题分解为多个单目标问题
每个子问题通过加权的方法定义一个单目标函数,例如:
✅ Tchebycheff 变换(最常用)
Tchebycheff 变换简介
gte(x∣λ,z∗)=max1≤i≤M{λi⋅∣fi(x)−zi∗∣}g^{\text{te}}(\mathbf{x} \mid \boldsymbol{\lambda}, \mathbf{z}^*) = \max_{1 \leq i \leq M} \left\{ \lambda_i \cdot |f_i(\mathbf{x}) - z^*_i| \right\} gte(x∣λ,z∗)=1≤i≤Mmax{λi⋅∣fi(x)−zi∗∣}
其中:
- λ=(λ1,…,λM)\boldsymbol{\lambda} = (\lambda_1, \dots, \lambda_M)λ=(λ1,…,λM):权重向量,决定关注的方向;
- z∗=(z1∗,…,zM∗)\mathbf{z}^* = (z_1^*, \dots, z_M^*)z∗=(z1∗,…,zM∗):理想点,记录所有目标最小值;
- 每个子问题使用一个不同的λ\boldsymbol{\lambda}λ,对应目标空间不同区域。
其他常见分解方法:
- 加权和:gws=∑i=1Mλifi(x)g^{ws} = \sum_{i=1}^M \lambda_i f_i(\mathbf{x})gws=∑i=1Mλifi(x)(仅适用于凸帕累托前沿)
- Penalty-based boundary intersection(PBI):适用于非凸前沿
相关简介:多目标优化分解方法:加权和与罚函数边界交叉
2. 邻居机制
- 对每个子问题iii,找到其最近的TTT个子问题作为“邻居”;
- 遗传操作和更新策略都优先在邻居中进行,提高局部搜索能力。
3. 演化操作
- 父代选择:从邻居中随机选 2 个;
- 交叉(如 SBX)+ 变异(如多项式变异)生成新个体;
- 使用该新个体尝试更新当前子问题的邻居解集。
4. 更新策略
对邻居j∈B(i)j \in B(i)j∈B(i),若新个体x′\mathbf{x}'x′满足:
gte(x′,λj,z∗)<gte(xj,λj,z∗)g^{\text{te}}(\mathbf{x}', \boldsymbol{\lambda}_j, \mathbf{z}^*) < g^{\text{te}}(\mathbf{x}_j, \boldsymbol{\lambda}_j, \mathbf{z}^*) gte(x′,λj,z∗)<gte(xj,λj,z∗)
则更新:xj←x′\mathbf{x}_j \leftarrow \mathbf{x}'xj←x′
🔷 三、MOEA/D 与 NSGA-II 的对比
特性 | MOEA/D | NSGA-II |
---|---|---|
解集维护方式 | 通过多个子问题并行维护子种群 | 非支配排序与拥挤度选择全局维护 |
多样性保持 | 通过方向引导(权重向量) | 拥挤度距离 |
适用性 | 更适合高维目标问题(many-objective) | 通常在3目标以下表现较好 |
计算效率 | 通常更快 | 复杂度O(MN2)O(MN^2)O(MN2)较高 |
🔷 四、优点与局限
✅ 优点:
- 可扩展性强,适合处理 4 目标及以上问题;
- 每个子问题可并行求解,适合分布式计算;
- 更容易实现收敛与多样性控制的平衡。
⚠️ 局限:
- 需合理设置权重向量数量与分布;
- 初始理想点设置、更新策略会影响性能;
- 对高非凸或解集不连续问题可能不够敏感。
✅ 总结公式回顾:
- 分解公式(Tchebycheff):
gte(x∣λ,z∗)=maxi{λi⋅∣fi(x)−zi∗∣}g^{\text{te}}(\mathbf{x} \mid \boldsymbol{\lambda}, \mathbf{z}^*) = \max_{i} \left\{ \lambda_i \cdot |f_i(\mathbf{x}) - z^*_i| \right\} gte(x∣λ,z∗)=imax{λi⋅∣fi(x)−zi∗∣}
- 邻居选择:通过欧氏距离选择最近TTT个权重向量;
- 更新策略:若新的解在多个邻居子问题中表现更优,则更新。