约束条件挡住了普通负梯度。投影法把负梯度投到可行切空间;既约梯度法先消去一部分变量,再在自由变量空间里做下降。两者表达不同,几何本质相同。
等式约束上的投影梯度
考虑
minf(x),Ax=b,
假设 A 满行秩。可行方向满足 Ad=0,即位于 A 的零空间。到零空间的正交投影矩阵为
P=I−AT(AAT)−1A.
取
d=−P∇f(x).
由于 AP=0,方向可行;又因 P 对称幂等,
∇fTd=−∇fTP∇f=−∥P∇f∥2≤0.
若投影梯度为零,就有 ∇f+ATλ=0,即等式约束 KKT 条件。
消元与既约梯度
把 A=(B,N),其中 B 是可逆 m×m 基矩阵:
xB=B−1b−B−1NxN.
代入目标得到只依赖 xN 的函数 F(xN)。链式法则给
rN=∇F(xN)=∇Nf−(B−1N)T∇Bf.
这就是既约梯度。取
dN=−rN,dB=−B−1NdN,
便有 Ad=0 且
∇fTd=−∥rN∥2.
因此 rN=0 时得到严格下降可行方向,rN=0 时达到等式约束 KKT 点。
加上非负边界
若还有 x≥0,Wolfe 既约梯度法不直接取 dN=−rN,而是逐分量定义
dN,j={−xN,jrj,−rj,rj>0,rj≤0.
这个分段不是装饰。若 xN,j=0:
- rj>0 时取 dN,j=0,不会沿负方向越出边界;
- rj≤0 时取 dN,j=−rj≥0,只会进入可行域内部。
若变量在内部,第一支用 xN,j 缩放步幅。再令
dB=−B−1NdN,
就同时保持线性等式的一阶可行性。它仍然是下降方向,因为
rNTdN=−rj>0∑xN,jrj2−rj≤0∑rj2<0
(只要允许移动的既约梯度不全为零)。
沿方向的最大可行步长由将要降到零的变量决定:
αˉ=i:di<0mindi−xi.
若某个变量碰到边界,可更新基或活动集,再继续迭代。
计算时不要显式求逆
B−1N 与 B−1b 应通过解线性方程 BY=N、Bu=b 获得。显式求逆更慢、更不稳定。基更新时还可复用分解,这与单纯形法的数值实现相通。
一个结构化理解
完整梯度包含“想往哪里走”;约束梯度张成“不能离开的法向空间”。投影梯度去掉法向分量,既约梯度则换一组独立坐标描述切向分量。二者为零都意味着完整梯度完全可由约束法向量组合。
考试要点
- 会推导 rN,特别注意转置:(B−1N)T∇Bf。
- dB=−B−1NdN 用于保证 Ad=0。
- 无边界时下降性化成 −∥rN∥2;Wolfe 边界方向要按 rj 符号分段。
- 有非负约束时,既约梯度为零以外还要检查边界方向和乘子符号。