证明 Kuhn-Tucker 定理

定理 (Kuhn-Tucker). 若存在 x*=(x1*,,xk*)x^* = (x_1^*, \dots, x_k^*)λ*=(λ1*,,λn*)λ^* = (λ_1^*, \dots, λ_n^*) 使得 minλ0d(λ)=minλ0maxxL(x,λ)=L(x*,λ*) \min_{λ \ge 0} d(λ) = \min_{λ \ge 0}\, \max_x L (x, λ) = L(x^*, λ^*) x*x^* 为原最优化问题 \mathcal M 的解.

由于 (x*,λ*)(x^*, λ^*) 满足 minλ0maxxL(x,λ)=L(x*,λ*)\min_{λ \ge 0}\, \max_x L (x, λ) = L(x^*, λ^*), (x*,λ*)(x^*, λ^*) 为函数 L(x,λ)L(x, λ) 的鞍点 (saddle point). 证明的核心在于利用鞍点的如下性质: L(x,λ*)L(x*,λ*)L(x*,λ),xk,λ0 L(x, \lambda^*) \leq L(x^*, \lambda^*) \leq L(x^*, \lambda), \quad \forall x \in ℝ^k, \, \forall λ \ge 0

我们从这两个不等式出发, 依次说明:

第一步: 证明 x*x^* 的可行性

观察右侧不等式: L(x*,λ*)L(x*,λ)L(x^*, \lambda^*) \leq L(x^*, \lambda). 展开拉格朗日函数后可得: f(x*)j=1nλj*gj(x*)f(x*)j=1nλjgj(x*) f(x^*) - \sum_{j=1}^{n} \lambda_j^* g_j(x^*) \leq f(x^*) - \sum_{j=1}^{n} \lambda_j g_j(x^*) 消去 f(x*)f(x^*) 并移项, 得到: j=1nλjgj(x*)j=1nλj*gj(x*) \sum_{j=1}^{n} \lambda_j g_j(x^*) \leq \sum_{j=1}^{n} \lambda_j^* g_j(x^*) 反设 x*x^* 违反了某个约束: gk(x*)>0g_k(x^*) > 0. 我们可以让 λk\lambda_k \to \infty, 不等式左边将趋于正无穷. 矛盾

第二步: 证明互补松弛性

由于不等式 λjgj(x*)λj*gj(x*)\sum \lambda_j g_j(x^*) \leq \sum \lambda_j^* g_j(x^*) 对任意 λ0λ \ge 0 都成立, 令 λ=0\lambda = 0: 0j=1nλj*gj(x*) 0 \leq \sum_{j=1}^{n} \lambda_j^* g_j(x^*) 由于我们已经证明了 gj(x*)0g_j(x^*) \leq 0, 且已知 λj*0\lambda_j^* \geq 0, 那么每一项 λj*gj(x*)\lambda_j^* g_j(x^*) 都必定 0\leq 0. 要使它们的和 0\geq 0, 唯一的可能就是每一项都等于 0: λj*gj(x*)=0j\lambda_j^* g_j(x^*) = 0 \quad \forall j 这意味着 L(x*,λ*)=f(x*)0=f(x*)L(x^*, \lambda^*) = f(x^*) - 0 = f(x^*).

第三步: 证明最优性

观察左侧不等式: L(x,λ*)L(x*,λ*)L(x, \lambda^*) \leq L(x^*, \lambda^*), 代入互补松弛性的结果 L(x*,λ*)=f(x*)L(x^*, \lambda^*) = f(x^*): f(x)j=1nλj*gj(x)f(x*)f(x) - \sum_{j=1}^{n} \lambda_j^* g_j(x) \leq f(x^*) 对任意可行的 xx, 有 gj(x)0g_j(x) \leq 0. 又因为 λj*0\lambda_j^* \geq 0, 所以 λj*gj(x)0-\sum \lambda_j^* g_j(x) \geq 0. 由此可得: f(x)f(x)j=1nλj*gj(x)f(x*)f(x) \leq f(x) - \sum_{j=1}^{n} \lambda_j^* g_j(x) \leq f(x^*) 即对于所有可行解 xx, 都有 f(x)f(x*)f(x) \leq f(x^*). QED.