1. 先大致理解 MOEA/D 算法的思想
大致浏览一下下面这段话,等后面看完再回过来阅读
MOEA/D 的分解思想主要来源于传统多目标数学规划中的标量化方法(Scalarization Methods)
在传统的数学优化中,直接寻找多个相互冲突的目标的帕累托前沿(PF)非常困难。数学家们早就有一种成熟的思路:通过给每个目标分配权重,将多个目标“合成”为一个单一的目标(即标量目标),然后去求这个单目标的最优解。改变权重,就能得到不同的最优解,最终拼凑出整个帕累托前沿。
然而,传统标量化方法有一个致命弱点:它们通常是一次只运行一个权重,独立求解。这不仅计算效率低下,而且无法利用不同权重对应的解之间的信息共享。
MOEA/D 的创举在于:它把数学规划中的“标量化”与进化算法的“种群”结合起来。它不再是一个接一个地独立求解,而是同时构建一组均匀分布的权重向量,一次性并行求解所有这些标量子问题。这就是分解思想的直接来源。
2. 什么是传统多目标数学规划中的标量化方法?为什么分解分配权重就能找到最优解呢?
这就引出了数学上的一个加权和标量化定理(Weighted Sum Scalarization Theorem)
前提:决策变量 x 的可行域是凸集,且所有目标函数
都是凸函数。
结论:如果是一个帕累托最优解,那么必定存在一组非负权重 λ=(λ1,…,λm)(不全为0),使得
是加权和函数
的最小值点。
简而言之:在凸性假设下,每一个帕累托最优解,都可以通过赋予各目标适当的权重,转化为某个加权和单目标问题的最优解。
数学原理:为什么成立?为什么线性组合一定能找到最优解?
证明:
什么是凸集分离定理?
凸集分离定理 = “两个不重叠的凸集,中间一定能塞进一块平整的板子把它们隔开。”
证明凸集分离定理,本质上是在解决一个问题:“我怎么用数学语言,精确地造出那块分开它们的‘木板’?”
总结:
在凸的世界里,权重就是一把可以旋转的直尺。你转动这把直尺,直尺的边缘扫过的轨迹,完美贴合了帕累托前沿的每一寸。在传统多目标数学规划中的标量化方法中,通过加权和标量化定理和凸集分离定理,证明了 通过设置不同的权重 可以刻画出 凸性问题的帕累托前沿
例子:
权重 w 之和必须等于 1 吗?
3. 非凸部分怎么办?凹进去的帕累托前沿又该如何求解呢?
如果 Pareto 前沿是非凸的(向内凹陷),加权和法就会失效。直线(超平面)无论如何调整斜率,都只能碰到前沿两端的极点,而永远无法切到凹陷进去的那部分解。
接下来引入切比雪夫法(Tchebycheff)或PBI(Penalty-based Boundary Intersection)
几何直觉
为什么切比雪夫法 在几何上是一个矩形?
总结:在基于分解的算法(如 MOEA/D)中,我们要找的是 Pareto 最优解(即目标空间左下角的那些点)。算法怎么找?本质上是在“推”等距离线,直到它刚好“碰到”目标空间的可行域(Pareto前沿)。
未完待续......
切比雪夫法又是怎么知道理想点的呢?理想点是怎么求解,怎么设置的呢?