Appearance
对应
note 4_optcon.pdf。本章是整门课最关键、最高频被考的一章之一。它把"什么是最优解"用方程组刻画出来。
0. 一句话理解这一章
最优解 = 满足"梯度组合为 0 + 互补松弛 + 原始/对偶可行"的点。在凸问题 + Slater 条件下,KKT 既是必要也是充分条件。
1. 知识地图
无约束情形(先把"必要 / 充分"分清楚)
─────────────────────────────────────
一阶必要:∇f(x*) = 0
二阶必要:∇²f(x*) ⪰ 0
二阶充分:∇f(x*) = 0 且 ∇²f(x*) ≻ 0
凸的特例:∇f(x*) = 0 ⇔ 全局最优
约束情形(核心是处理"约束的方向")
─────────────────────────────────────
FJ 条件 (最弱)
↓ 加正则性
KKT 条件 (Theorem 3.2)
↑ ↑ ↑
三种情况下的"必要性":
(1) 线性无关 (LICQ)
(2) Slater (凸不等式 + 仿射等式)
(3) 凹不等式 + 仿射等式
凸 + KKT ⇒ 全局最优 (Theorem 3.7, 充分性)2. 无约束的最优性条件
考虑
| 命题 | 内容 | 备注 |
|---|---|---|
| 一阶必要 (Cor 2.2) | 反证:若梯度 | |
| 二阶必要 (Prop 2.5) | 反证:若有负特征值,沿对应特征向量下降 | |
| 二阶充分 (Prop 2.4) | 这里是 | |
| 凸特例 (Prop 2.3) | 凸 + | 由 Ch2 一阶条件 |
必要 vs 充分的区别:必要是"如果是最优 → 这个条件成立";充分是"如果这个条件成立 → 它一定是最优"。考试经常考它们对凸/非凸函数的差别。
反例
: 但是局部最大——所以一阶必要不充分。 :在 处梯度 0、Hessian 不是半正定(saddle point)。
3. FJ 条件(Fritz John)
针对一般约束问题 (5):
FJ 必要条件(Theorem 3.1):
这里的
是目标函数前面的"乘子"。FJ 条件最弱,只保证有一组非全零乘子。它的弱点是:可能 ——这种情况叫"退化",目标函数没有起到任何作用。
FJ → KKT 的过渡:只要能保证
4. KKT 条件(Karush-Kuhn-Tucker)⭐⭐⭐
KKT 必要条件(Theorem 3.2):
与 FJ 的区别:
已经被规范为 1,目标函数有真正的作用。
4.1 三种保证 KKT 必要性的"正则性条件"
| 名称 | 适用情形 | 条件 |
|---|---|---|
| LICQ(线性无关) | 一般非线性 | |
| Slater(最常用)⭐ | 凸不等式 + 仿射等式 | 存在 |
| 凹 + 仿射 | 自动满足(Theorem 3.5) |
Slater 的特殊放宽:若其中部分
考试技巧:作业中遇到的凸问题几乎全是 Slater;遇到 LP / 仿射约束的问题,根据 Theorem 3.5 自动满足。
4.2 KKT 不必要的"反例"(Example 3.3)
这个例子告诉你:没有正则性时 KKT 可能无解——所以"必要性"是建立在正则性之上的。
4.3 KKT 充分性(Theorem 3.7)⭐
凸优化问题 + KKT 系统有解
证明思路(要会):
是凸函数(凸 + 非负组合 + 仿射) - KKT 的梯度方程
→ 是 的全局极小点(凸的一阶充分性,Prop 2.3)。 - 用互补松弛
和 ,得 。 - 对任意可行
: (最后一步用 )。
5. KKT 解析求解的"标准流程"
讲义 Example 3.6 给了 4 个示范,都是先写 KKT、再解 KKT 的标准流程。
Example 3.6.1 LP s.t.
写出 KKT:
这里
是对应 的乘子; 是对应 的。LP 的 KKT 同时也是它的"对偶可行"条件——这是为什么 LP 强对偶恒成立。
Example 3.6.2 最小特征值
Example 3.6.3 s.t.
KKT 解出唯一解
Example 3.6.4 信道分配 / Water-filling ⭐
直观图像:把每个信道的"地面高度"
这种用 KKT 推出"显式解+一个 1 维方程"的题型经常出现。
6. 作业题型对照(A6.1)
| 作业 | 题面 | 考点 |
|---|---|---|
| A6.1(a) | Kantorovich 的辅助优化问题: | 1) 验证凸性(每项是 |
| A6.1(b) | 由 (a) 推 Kantorovich 不等式 | 用 |
这道题展示了 KKT 的强大用途:先把不等式归约到一个凸优化问题,再用 KKT 求 closed form 最优值,最后反推不等式。
7. 解题"招式手册"
招式 1:写 KKT 系统的标准模板
遇到题目要写 KKT,按这个 5 行模板永远不会漏:
招式 2:互补松弛"二选一"案例分析
互补松弛
招式 3:用 KKT 充分性证最优
要证
招式 4:把不等式问题归约到凸优化 + KKT
A6.1(b) 是这种思路的代表:把不等式
招式 5:检查 Slater 永远先做
写 KKT 之前,先看一眼正则性是否满足。凸 + 至少一个严格内点 = Slater 满足。仿射约束直接套 Theorem 3.5。
8. 自检清单
- [ ] 无约束一阶 / 二阶必要 / 二阶充分 / 凸特例分别说什么?
- [ ] FJ 条件 vs KKT 条件的差别?什么是"正则性 →
"? - [ ] LICQ、Slater、凹+仿射 三种正则性条件分别是什么?
- [ ] KKT 5 个条件能完整默写?
- [ ] KKT 在凸问题下是充分的——证明的核心步骤记得吗?
- [ ] LP / 最小特征值 / Water-filling 的 KKT 推导都能复现?
9. 常见陷阱
- 必要 ≠ 充分:在凸问题 + 正则性下 KKT 才同时是必要+充分;非凸问题中 KKT 只是必要。
- LICQ 在凸问题里其实弱于 Slater:如果你在凸问题里只验证了 LICQ 而没用 Slater,也是对的(任何一个正则性都行)。
- 写
时正负号:约束写成 时,乘子 ;写成 时乘子改 。书上 Example 3.6.1 里 对应乘子 , ,要小心负号。 - 互补松弛的"分情况讨论"必须穷尽:每个约束都要选一支(紧或不紧)。
- 存在性:KKT 给的是"如果最优解存在 → ...";存在性要用 Weierstrass 或者 coercive 性质(Ch4 §3.2)。
约束的乘子是矩阵 ,互补松弛是 (即 )——这一点在 SDP / A6.4 中用到。
10. 接下来怎么学
- 默写 KKT 五行(题目 = 写 KKT 几乎是 100% 起手式)。
- 把 Example 3.6 四个例子重做一遍。
- 完成 A6.1,体会"用 KKT 证不等式"的玩法。
- 进入 5_拉格朗日对偶——KKT 与对偶是同一枚硬币的两面。