Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >
帕累托前沿交互式教学工具

帕累托前沿 · 交互式教学

Pareto Front Interactive Explorer — 从二维到三维,逐步迭代理解多目标优化

🎯 什么是多目标优化?

在现实问题中,我们经常需要同时优化多个相互冲突的目标。例如:

  • 设计汽车:最小化油耗 vs 最大化速度
  • 投资组合:最大化收益 vs 最小化风险
  • 工程设计:最小化成本 vs 最大化性能

数学形式上,我们要同时最小化 \(k\) 个目标函数:

min F(x) = ( f₁(x), f₂(x), …, fₖ(x) )

🏆 帕累托支配 (Pareto Dominance)

A 支配解 B(记作 A ≺ B),当且仅当:

∀i : fᵢ(A) ≤ fᵢ(B) ∧ ∃j : fⱼ(A) < fⱼ(B)

即 A 在所有目标上不差于 B,并且至少在一个目标上严格优于 B。

如果一个解不被任何其他解支配,则称其为帕累托最优解(非支配解)。

📈 帕累托前沿 (Pareto Front)

所有帕累托最优解在目标空间中的像(映射),构成帕累托前沿

  • 二维:帕累托前沿呈现为一条曲线
  • 三维:帕累托前沿呈现为一个曲面
  • 更高维:帕累托前沿是一个高维超曲面

前沿上的每个点代表一个"折衷方案",没有绝对的最优。

⚙️ NSGA-II 简化流程

本工具演示的算法基于 NSGA-II 的核心思想:

  • 1. 初始化:随机生成初始种群
  • 2. 非支配排序:将种群按支配层级排序
  • 3. 拥挤度距离:保持解的多样性
  • 4. 选择/交叉/变异:产生子代
  • 5. 迭代:重复直到收敛到帕累托前沿

🔍 二维 vs 三维帕累托前沿

二维优化中(两个目标),帕累托前沿是一条曲线。横轴 \(f_1\)、纵轴 \(f_2\),前沿通常呈现为从左上到右下的弧线,直观表现了两个目标之间的权衡关系。

三维优化中(三个目标),帕累托前沿变为一个曲面。三个轴分别是 \(f_1\)、\(f_2\)、\(f_3\),前沿面上的每个点代表三个目标之间的一种权衡。在本工具的 DTLZ2 测试问题中,理论帕累托前沿是单位球面的第一卦限(\(f_1^2 + f_2^2 + f_3^2 = 1\)),呈现为一个球面弧片——你可以在三维演示中旋转观察它。

二维帕累托前沿演示
目标:min f₁(x) 与 min f₂(x),观察种群如何逐步逼近帕累托前沿
被支配解
当前帕累托前沿
理论帕累托前沿
三维帕累托前沿演示
DTLZ2 问题:min f₁ 、min f₂ 、min f₃ ,理论前沿为单位球面第一卦限 — 拖动旋转查看
被支配解
帕累托前沿面上的解
理论帕累托前沿面(球面)

评论