跳到主要内容

多目标搜索算法对比

核心要点

  • 默认选择:评估秒级 + 维度 ≥ 10 + 目标 ≤ 4 时,进化算法 (NSGA-II / NSGA-III) 是默认正确选择
  • MOBO 适用边界:评估开销 > 分钟级 + 维度 ≤ 10 才有优势,否则 GP 拟合反成主要开销
  • NSGA-II:拥挤距离 + 非支配排序,2-3 目标最佳,维度 5-50 良好
  • NSGA-III:参考方向,3-15 目标更优,但真实问题上不绝对超过 NSGA-II
  • MOEA/D:标量化分解,权向量预设,高维目标 (>5) 候选
  • 算法选择:ATOP 实测 NSGA-II 跑 100k 候选 vs Bayesian 1k 候选,取得最佳效率-性能平衡

本文聚焦拓扑寻优场景 (10-50 维参数空间 + 2-11 个目标 + 评估开销秒级) 的多目标算法选择。

多目标优化基本概念是什么

核心问题:Pareto 支配 / Pareto 前沿 / 评估指标的精确定义?

Pareto 支配

给定多目标问题 $\min F(x) = (f_1(x), \ldots, f_m(x))$,解 $x$ 支配 $x'$ 当且仅当:

$$\begin{equation} \forall i \in [1, m]: f_i(x) \le f_i(x') \quad \text{且} \quad \exists j: f_j(x) < f_j(x') \label{eq:toposearch-mo-pareto-dominate} \end{equation}$$

Pareto-optimal 集合 / Pareto 前沿

不被任何其他解支配的解集合。在目标空间的投影叫 Pareto 前沿

评估指标

指标定义用途
Hypervolume (HV)Pareto 前沿与参考点之间的体积综合衡量收敛 + 分布
IGD (Inverted Generational Distance)真实 Pareto 前沿到当前前沿的平均距离收敛性
GD (Generational Distance)当前前沿到真实前沿的平均距离收敛性
Spread / SpacingPareto 前沿点之间的距离方差分布质量

@tbl-toposearch-mo-metrics 多目标优化的评估指标

NSGA-II 是怎么工作的

核心问题:非支配排序 + 拥挤距离的具体机制?复杂度和适用范围?

ATOP 选用的算法 (Deb et al., 2002[1])。

核心机制

  1. 快速非支配排序:对种群按支配关系分层 (rank 1, 2, ...), rank 越小越优
  2. 拥挤距离 (Crowding Distance):同 rank 内按各目标方向上的邻居距离之和衡量个体稀疏度
  3. 精英策略:父代与子代合并后选择,保证已发现的优良解不丢失

拥挤距离公式

对个体 $i$ 在第 $f$ 个目标上:

$$\begin{equation} \text{CD}_i = \sum_{f=1}^{m} \frac{f_{i+1} - f_{i-1}}{f_{\max} - f_{\min}} \label{eq:toposearch-mo-crowding-distance} \end{equation}$$

边界个体的拥挤距离设为 $\infty$ (强制保留)。

复杂度

  • 快速非支配排序:$O(MN^2)$ (M = 目标数,N = 种群大小)
  • 加上拥挤距离与选择:每代总计 $O(MN^2 + MN\log N)$
  • 比早期 NSGA 的 $O(MN^3)$ 改进一个数量级

适用范围

  • 目标数 2–3 最佳;目标数 ≥ 4 时 Pareto 支配关系大量失效 (几乎所有个体互不支配),收敛恶化
  • 但不绝对:many-objective knapsack 等真实问题上 NSGA-II 实测仍优于 NSGA-III
  • 参数维度 5-50 良好

工程经验

  • pymoo 默认:种群 100、代数 200 (即 20,000 次评估)
  • 实测发现:减小子代规模、增加代数,在 92% 的实验中得到统计显著更好的结果
  • 评估开销大时,小种群 (24-40) 配合多代即可

MOEA/D 跟 NSGA-II 区别在哪

核心问题:标量化分解 + 邻域更新机制是什么?三种标量化函数各适合什么?

来源:Zhang & Li, 2007[2].

核心机制

  • 把多目标问题分解为 N 个标量子问题,并行求解
  • 邻域更新:每个子问题只与权向量距离最近的 T 个邻居交换信息

三种标量化函数

标量化方法公式适用场景
Weighted Sum$\min \sum_i \lambda_i f_i(x)$凸前沿才有效
Tchebycheff$\min \max_i \{\lambda_i (f_i(x) - z_i^*)\}$通用 (含非凸),最常用
PBI (Penalty-based Boundary Intersection)分解为收敛距离 + 多样性距离比 Tchebycheff 分布更均匀

@tbl-toposearch-mo-moead-scalar MOEA/D 三种标量化函数对比

优劣势

  • 优势:分布质量好 (权向量预先均匀采样)、单代复杂度低于 NSGA-II
  • 劣势:依赖权向量设计;非凸 / 不规则 Pareto 前沿需要自适应权重

vs NSGA-II 的对比

电路设计基准对比:MOEA/D 在某些场景胜出,但优劣随目标维度和问题特征变化,无绝对优势。

MOPSO 和 MOBO 各有什么特点

核心问题:粒子群和贝叶斯优化分别适合什么场景?

MOPSO (Coello et al., 2004[3])

核心机制

  • 粒子群 (PSO) 基础上加 external archive 存储非支配解
  • Leader 选择:从 archive 按 Pareto 支配 + 密度估计 (grid / crowding) 挑选 leader 指导粒子
  • 重新初始化机制保持多样性

特点

  • 评估次数少 (原论文 3000 次评估即获得不错近似前沿)
  • 适合连续变量低维 (≤ 3 目标) 问题
  • 在不规则 / 复杂前沿上易陷入局部最优

MOBO (多目标贝叶斯优化)

主流算法

算法核心适用
ParEGO / qParEGO随机权重 Tchebycheff 标量化 + EI 单目标 BO简单,batch 友好
EHVI / qEHVIExpected Hypervolume Improvement 采集函数直接优化 HV
qNEHVINoisy 版本,处理观测噪声BoTorch 推荐默认
SMS-EGOS-Metric Selection EGO, HV 驱动学术常用

@tbl-toposearch-mo-mobo-algorithms MOBO 主流算法

适用边界

  • 适用:评估开销 > 分钟级 / 目标维度 ≤ 5 / 参数维度 ≤ 10-20
  • 高维退化:朴素 BO 在 > 10 维问题上可能不如 random search
  • 退化原因:stationary kernel 在高维下距离信号丢失;GP 参数数量随观测增长,准确建模变难
  • 缓解方法:lengthscale prior 按维度缩放、加性分解、REMBO 随机嵌入、SAASBO (Sparse Axis-Aligned Subspace BO)

NSGA-III 跟 NSGA-II 有什么区别

核心问题:参考方向替代拥挤距离的机制和适用范围?

来源:Deb & Jain, 2014[4].

核心机制

  • 非支配排序继承自 NSGA-II
  • 预设参考点 / 参考方向 (Das-Dennis 在单位超平面上均匀采样) 替换拥挤距离
  • 个体先关联到最近的参考方向,按各方向上的 niche count 进行选择

与 NSGA-II 的对比

  • 目标数 ≥ 4 时通常更好,但不绝对
  • 在 DTLZ1-4 等数学测试函数上优势明显
  • 真实工程问题 (many-objective knapsack) 上 NSGA-II 可能反超

Random Search + QMC 是什么

核心问题:Random / QMC 作为基线的价值在哪?

  • Sobol / Halton 等 quasi-Monte Carlo 序列覆盖参数空间,比纯随机更均匀
  • 优势:无超参、易并行、复杂度 $O(N)$
  • 是任何高级算法必须超越的下限 — 评估开销低、预算大时常常出乎意料地有竞争力

5 类算法横向对比

核心问题:NSGA-II/MOEA-D/PSO/MOBO/Random 五类算法在拓扑寻优场景下的全面对比结果是什么?

维度NSGA-IIMOEA/DMOPSOMOBO (qNEHVI)NSGA-III
参数空间维度5–50 良好5–50 良好< 30< 20 (朴素),结构化可更高5–50 良好
目标数2–3 最佳,> 4 退化2–102–32–53–15
单次评估开销秒-分钟秒-分钟秒-分钟分钟-小时秒-分钟
总评估预算$10^3$$10^5$+$10^3$$10^5$+$10^3$$10^4$$10^2$$10^3$$10^3$$10^5$+
收敛速度中等快 (分解并行)快 (少评估)极快 (按评估数算)中等
Pareto 分布拥挤距离,2-3 目标好权向量预设,均匀依赖 archive 网格HV 驱动,分布优参考方向,高维均匀
并行性同代易并行子问题级并行同代易并行batch (qEHVI/qNEHVI)同代易并行
算法超参少 (种群、代数、交叉/变异率)中 (+ 权向量、邻居 T)中 (+ ω, c1, c2, archive) (kernel、prior、acquisition)少 (+ 参考方向)

@tbl-toposearch-mo-algo-compare 5 类多目标算法横向对比

算法选择决策树

核心问题:给定问题特征 (评估开销 / 维度 / 目标数),怎么选算法?

图 8.2: 多目标算法选择决策树

预算极少且无法运行多代时退回 random + QMC 作为基线。

主流开源库怎么选

核心问题:pymoo / DEAP / pygmo / BoTorch 的能力覆盖和适用场景?

语言算法覆盖学习曲线适合场景
pymooPythonNSGA-II/III, R-NSGA, MOEA/D, AGE-MOEA, SMS-EMOA, RVEA, MOPSO-CD工程首选;学术研究
DEAPPythonNSGA-II/III, SPEA2 + "算子积木"需要定制非标准算法
pygmoC++/PythonNSGA-II, MOEA/D-DE, NSPSO;岛屿模型HPC 集群并行;ESA 出品
PlatEMOMatlab300+ 算法、100+ 测试问题学术 benchmark 对比首选
OptunaPythonNSGA-II/III, MOTPE, GP, AutoSampler极低混合搜索空间、超参调优
BoTorchPython (PyTorch)qEHVI, qNEHVI, qParEGO, qLogNEHVI中-高评估极昂贵问题;GPU 加速

@tbl-toposearch-mo-libs 开源库对比

推荐选择

  • 标准工程问题 / Python 栈:pymoo
  • 评估昂贵 < 200 次预算:BoTorch
  • 大型集群并行:pygmo
  • 混合搜索空间 (含分类变量) + 中等预算:Optuna

为什么 NSGA-II 在 ATOP 中跑赢 Bayesian

核心问题:反直觉的实测结果背后是什么原因?

ATOP 论文 Appendix J 实测 (1024 GPU 任务,10.6 h 同时间预算):

算法评估候选数备注
NSGA-II100,0004 种算法中表现最佳 (best balance)
Bayesian1,000GP 每步开销过大
QMC26,000无方向性
Random130,000无方向性

@tbl-toposearch-mo-atop-compare ATOP Appendix J 算法对比 (1024 GPU 任务)

论文原话:"None of these algorithms lead to the convergence of the Pareto-optimal topology set" — 4 种算法都未收敛,NSGA-II 仅是相对最佳。

两个原因叠加

原因 1:评估开销低 → BO surrogate 失效

MOBO 的核心价值是用 GP 替代昂贵评估。当真实评估只要秒级时,BO 的 GP 拟合 + acquisition 优化开销可能反超直接评估的成本 — 1000 次评估的优势变成劣势。

原因 2: 11 维参数空间对 GP 不友好

朴素 BO 在 > 10 维下普遍退化,stationary kernel 的距离信号失真。除非用 SAASBO / 加性分解 / REMBO 等结构化方法,否则在这个维度上 NSGA-II 的种群进化更稳健。

业界类似经验

电路优化 (11 维左右、秒级仿真) 上 MOEA/D 与 NSGA-II 均优于贝叶斯方法。

结论评估秒级 + 维度 ≥ 10 + 目标 ≤ 4,进化算法是默认正确选择。MOBO 只在评估开销分钟级以上时才有优势。

工程实践要点

核心问题:种群大小 / 并行化怎么定?

种群大小、迭代代数

场景种群代数总评估数
pymoo 默认 (2-3 目标基础问题)10020020,000
NSGA-II 原论文10025025,000
ATOP 风格 (11 维多目标)~200 (推断)~500 (推断)100,000
评估昂贵场景24-40多代数千

@tbl-toposearch-mo-popsize 种群与代数经验值

经验法则:种群 ≈ 10 × 参数维度 (下限),代数 = 总预算 / 种群

并行化策略

模式实现复杂度加速比适用
同代 worker 并行 (master-slave)~线性到 worker = 种群评估同步、worker 同质
异步 steady-state (异步替换)近线性、不浪费空闲 worker评估时间不均
岛屿模型 (pygmo)集群级,多岛迁移好解HPC、数千核

@tbl-toposearch-mo-parallel 并行化策略对比

ATOP 场景推荐:仿真评估秒级 + 单机多核 → master-slave 同代并行最简单且接近线性加速。

评估开销低时进化算法更优是普遍规律吗

核心问题:"MOBO 总是更优"的工业界认知为什么在拓扑寻优场景失效?

工业界对多目标优化的默认认知是"MOBO 总是更优" — 这来自 ML 超参数调优场景 (每次评估训练几小时)。但拓扑寻优、电路设计、流体仿真等评估开销秒级的工程问题里,进化算法 (NSGA-II 系列) 反而是默认选择。

关键判别标准:单次评估开销 vs surrogate 模型拟合 + acquisition 优化的开销。当前者远小于后者时,MOBO 的"昂贵评估优势"消失。

NSGA-II 的真正优势是种群级并行:NSGA-II 天然种群级评估 — 一代 100 个个体可以同时丢 100 个 worker 评估。256 核服务器 + 100 种群 → 接近线性加速。MOBO 经典版本是顺序的 (每次只决定 1 个评估点),batch 版本 (qEHVI/qNEHVI) 有改进但仍受限于 GP 拟合时间。

何时考虑 MOEA/D:如果目标数 > 5 (如 ATOP 的 11 个 optimization objectives),NSGA-II 的拥挤距离在高维退化,可以考虑 MOEA/D 或 NSGA-III。但 ATOP 实际用 NSGA-II 处理 11 个目标 — 说明目标数不是绝对分水岭,问题特征更重要。

Takeaway

知识点核心结论
默认选择评估秒级 + 维度 ≥ 10 + 目标 ≤ 4,进化算法 (NSGA-II/III) 是首选
NSGA-II拥挤距离 + 非支配排序,2-3 目标最佳,维度 5-50 良好
NSGA-III参考方向,3-15 目标更优,真实问题上不绝对超过 NSGA-II
MOEA/DTchebycheff 分解最常用,高维目标 (>5) 候选,权向量需设计
MOPSO评估次数少 (3000) 但维度受限 (<30),不规则前沿易局部最优
MOBO 边界仅评估 > 分钟级 + 维度 ≤ 10 才有优势,否则 GP 拟合反成主开销
工业认知反直觉拓扑寻优 / 电路 / 流体仿真等秒级评估场景,进化算法跑赢 MOBO
实践规则种群 ≈ 10 × 参数维度,master-slave 同代并行最简单近线性加速

参考资料

  1. Deb et al., NSGA-II, IEEE Trans. Evol. Comput. 2002. https://doi.org/10.1109/4235.996017
  2. Zhang & Li, MOEA/D, IEEE Trans. Evol. Comput. 2007. https://www.semanticscholar.org/paper/MOEA-D:-A-Multiobjective-Evolutionary-Algorithm-on-Zhang-Li
  3. Coello et al., MOPSO, IEEE Trans. Evol. Comput. 2004. https://www.researchgate.net/publication/3949342_MOPSO_A_proposal_for_multiple_objective_particle_swarm_optimization
  4. Deb & Jain, NSGA-III, IEEE Trans. Evol. Comput. 2014. https://www.egr.msu.edu/~kdeb/papers/c2018008.pdf