KKT 完整算例:端到端求解
上级:math · 先修:lagrangian
一个有代表性的实例——只有一个不等式约束,因此互补松弛条件会迫使我们做一次真正的情形分讨。用 kkt 求解,用几何方式核验,核验影子价格,再确认与 对偶 结果一致。
问题。 最小化 f(x,y)=(x−2)²+(y−2)²,约束为 g(x,y)=x+y−2 ≤ 0。
几何上看:在半平面 x+y ≤ 2 中找到离 (2,2) 最近的点。
1. 拉格朗日函数与 KKT 条件
KKT 条件:
- 平稳性(stationarity)
∂L/∂x = 2(x−2)+μ = 0,∂L/∂y = 2(y−2)+μ = 0; - 原始可行性
x+y−2 ≤ 0; - 对偶可行性
μ ≥ 0; - 互补松弛性
μ(x+y−2) = 0。
2. 求解——情形分讨
平稳性条件给出 x = y = 2 − μ/2。互补松弛条件把问题分成两种情形:
μ = 0(约束不起作用):此时x=y=2,于是x+y=4 > 2——违反可行性,舍弃。μ > 0(约束起作用,x+y=2):代入2(2−μ/2)=2 ⟹ 4−μ=2 ⟹ μ=2,从而x=y=1。检验μ=2 ≥ 0✓,x+y=2✓。
3. 几何核验
(2,2) 在直线 x+y=2 上的投影正是 (1,1);平方距离 = 2。✓ 而且 ∇f=(2(x−2),2(y−2))=(−2,−2) 与 ∇g=(1,1) 平行,满足 ∇f=−μ∇g=−2(1,1) ✓。
4. 影子价格(灵敏度分析)
把约束放松为 x+y ≤ b。当 b<4 时最优点是投影点 (b/2,b/2),因此
在 b=2 处:dp*/db = 2(1−2) = −2 = −μ*。所以μ*=2 正是该约束的边际价值——放松约束(提高 b)会以速率 μ 降低最优值。✓
5. 对偶——极小极大问题收拢
对偶函数 。把平稳点 x=y=2−μ/2 代回:
对 μ≥0 求最大值:q'(μ)=−μ+2=0 ⟹ μ=2,q(2)=−2+4=2。
强对偶性:对偶最优值 2 等于原始最优值 2 ✓(凸二次规划,Slater 条件成立),并且使其最大化的 μ=2 正是那个 KKT 乘子。原始问题、几何、灵敏度、对偶——整条故事线都收拢到同一个 μ*=2 上。