1. 为什么我选Wasserstein距离而不是矩模糊集:两阶段DRO问题的建模起点
1.1 两阶段问题的本质:先拍板,后补救
先说我这次实际要解决的问题场景。假设你管一条生产线,要在需求还没落地之前先定下自产产能,这个叫第一阶段决策,特点是“现在不做就来不及了”;等真实需求兑现以后,你可以用临时外购来补缺口,代价是单价更贵,这个补缺口的动作叫第二阶段决策,也叫recourse。这种“先拍板、后补救”的结构在供应链、电力调度、港口泊位分配里到处都是。
很多新手会把两阶段理解成两个时间点,其实严格讲它强调的是信息结构:第一阶段的x不依赖随机参数ξ,第二阶段的y可以依赖ξ的观测值,因此它是一个从ξ到决策的映射,写作y(ξ)。如果第二阶段的成本函数qᵀy(ξ)还算温和,麻烦就出在ξ的分布我们不知道,手里只有N个历史样本。经典随机规划的做法是假设经验分布就是真实分布,也就是每个样本等概率1/N,然后直接最小化样本均值。但只要你做过实际数据就会知道,样本外真实分布和经验分布通常差得挺远,直接用SAA(Sample Average Approximation)往往把决策做得过于乐观。
于是就有了分布鲁棒这条路线:不赌真实分布恰好是经验分布,而是构造一个“以经验分布为球心、以Wasserstein距离为半径”的模糊集,把所有大概率可能的分布都装进去,目标函数取最坏情况下的期望。这样算出来的决策虽然比SAA保守一点,但样本外表现通常稳得多。
1.2 经典模糊集对比:矩约束、phi-divergence与Wasserstein的取舍
我最早接触分布鲁棒时,很多人用的是矩模糊集,也就是限定分布的均值和协方差落在某个区间内。这种做法的优点是建模直观,缺点是很容易把模糊集建得过大或过小:均值协方差矩本身对离群点极其敏感,而且实际分布可能根本不是由前两阶矩决定的。还有一个尴尬的问题是,矩模糊集在求最坏情况期望时往往会把概率质量推到某个极端点,导致决策过度保守。
后来我试过phi-divergence这一族,比如KL散度、卡方散度。它在离散概率向量上很好用,因为优化对象是多项式概率,但对连续支撑集就有点尴尬——如果真实分布里有一些样本点没有出现在历史数据中,phi-divergence的惩罚是无穷大,也就是说它没法“想象”没见过的场景。这一点在实际中很致命,因为你担心的恰恰就是那些没发生过的极端情况。
Wasserstein距离的价值就在这里:它把“两个分布差异多大”这个度量建在地球移动距离(optimal transport)之上。两个分布即使支撑不重合,只要移动的成本有限,Wasserstein距离就是有限值。换句话说,Wasserstein球能涵盖那些支撑点偏移、但整体形态相近的分布,这正好匹配数据驱动场景下“样本外支撑点可能偏离”的直觉。
三种模糊集的对比如下:
| 模糊集类型 | 对分布形状的假设 | 是否支持样本外支撑点 | 典型求解难度 | 适合场景 |
|---|---|---|---|---|
| 矩模糊集 | 均值/协方差有界 | 支持 | 半定规划/SDP | 数据中心、金融组合优化 |
| phi-divergence | 概率向量在某邻域内 | 几乎不支持 | 锥规划/凸优化 | 离散分类、破产概率 |
| Wasserstein球 | 分布间最优输运成本有界 | 支持 | 对偶化后LP/凸优化 | 数据驱动、样本量有限 |
我这里最终选了Wasserstein距离,还有一个非常实际的原因:Wasserstein球下的最坏情况期望问题,可以被对偶转化成一个结构漂亮的有限维优化问题。这就是标题里“对偶转化”四个字的来历,后面第3章我会一步步拆。
1.3 问题原始形式与完整符号定义
为了让后面的推导和代码不绕弯,我把这次的简易模型写清楚。假设需求ξ∈ℝ²,第一阶段决策x∈ℝ²,含义是自产产能;第二阶段决策y(ξ)∈ℝ²,含义是临时外购量。第一阶段单位成本c>0,第二阶段单位成本q>c,所以模型天然希望多用第一阶段产能、少外购。
原始两阶段分布鲁棒问题写作:
[
\min_{x\ge0,;y(\cdot)}; c^\top x + \sup_{\mathbb{P}\in\mathcal{B}_\varepsilon(\hat{\mathbb{P}}N)}\mathbb{E}{\mathbb{P}}\left[q^\top y(\xi)\right]
]
约束为:
[
x+y(\xi)\ge\xi,\quad y(\xi)\ge0,\quad \forall\xi\in\Xi
]
其中Ξ是支撑集,这篇文章里取一个有界多面体。经验分布定义为:
[
\hat{\mathbb{P}}N=\frac{1}{N}\sum^N\delta_{\hat{\xi}_i}
]
Wasserstein-1距离(带1-范数成本)定义为:
[
\mathbb{W}(\mathbb{P},\mathbb{Q})=\inf_{\Pi}\left{\int_{\Xi\times\Xi}|\xi-\xi'|_1,\Pi(d\xi,d\xi'):\text{边缘分布为}\mathbb{P},\mathbb{Q}\right}
]
模糊集是:
[
\mathcal{B}_\varepsilon(\hat{\mathbb{P}}_N)=\left{\mathbb{P}:\mathbb{
