Skip to content

算法Algorithm

二次罚函数法与病态性

Quadratic penalty method

将等式违背的平方加入目标,通过增大罚参数逼近可行解,并量化有限罚参数的偏差与内层 Hessian 的病态性。

形式陈述 ​

对光滑等式约束优化问题

minf(x),c(x)=0,c:Rn→Rm,

二次罚函数取

Qμ(x)=f(x)+μ2‖c(x)‖22,μ>0.

算法选递增且趋于无穷的参数 μk,依次求解 minQμk,常用上一轮解作为下一轮初值。这里 μ 越大,违约越贵;有些文献使用它的倒数作参数,读公式时应先核对约定。

一个直接的极限定理是:若 f,c 连续,原问题有可行点,每个 xk 是相应罚子问题的全局最小点,且 μk→∞,则任意有限聚点都是原问题的全局最小点。定理没有保证罚子问题有解,也没有保证序列有聚点;这些都需要问题本身提供。

若 c 的 Jacobian 按行排列为 Jc,罚函数的梯度与Hessian为

∇Qμ=∇f+μJcTc,∇2Qμ=∇2f+μJcTJc+μ∑ici∇2ci.

内层驻点方程对应乘子估计 λμ=μc(xμ)。一般情况下,有限 μ 的 c(xμ) 不为零;否则罚项梯度也为零,无法平衡一个需要非零乘子的约束最优点。

直觉

等式约束是一条零厚度的线或曲面。二次罚把它换成一个谷:离约束越远,费用按距离指标的平方增长。加大参数会把谷压窄,却没有把谷底所在的点硬性钉在约束上。

靠近可行集,平方罚的斜率会趋于零。若目标函数仍有把点拉向不可行侧的力量,就必须留下少量违约,才能产生足够大的反向罚梯度。因此二次罚常从约束外逼近答案;这和精确 ℓ1 罚的尖角机制不同。对不等式,对数障碍则让迭代点留在严格可行侧。

可行误差下降与曲率比上升
例子与边界

把误差和条件数放在同一张账本上 ​

考虑

f(x,y)=12[(x−2)2+y2],c(x,y)=x+y−1.

约束最优点是 (3/2,−1/2),目标值为 1/4,采用 L=f+λc 时最优乘子为 1/2。罚子问题的一阶条件为

x−2+μ(x+y−1)=0,y+μ(x+y−1)=0.

两式相减得到 x−y=2。令 r=x+y−1,再相加得 (1+2μ)r=1,所以

rμ=11+2μ,xμ=2+3μ1+2μ,yμ=−μ1+2μ.

乘子估计 λμ=μ/(1+2μ)→1/2。点误差恰为 ‖(xμ,yμ)−(3/2,−1/2)‖=rμ/2。

罚 Hessian 为

(1+μμμ1+μ).

沿切方向 (1,−1) 的特征值是一,沿约束法向 (1,1) 的特征值是 1+2μ,所以二范数条件数为 1+2μ。

μ c(xμ,yμ) λμ Hessian 条件数
1 1/3 1/3 3
10 1/21 10/21 21
100 1/201 100/201 201

若要求违约不超过 10−4,精确解也需要 μ≥4999.5,对应条件数至少一万。内层若只解到粗精度,还会叠加另一份误差;增大参数本身没有完成求解。

原问题有解,罚子问题仍可能无下界 ​

取 f(x)=−x4、约束 x=0。原问题只有一个可行点,最优值为零;但任何有限 μ 都有

Qμ(x)=−x4+μx2/2⟶−∞(|x|→∞).

因此不存在全局罚子问题最小点。另一个风险是只求局部驻点:对 f(x)=x2,c(x)=x2−1,x=0 对所有 μ 都满足 ∇Qμ=0,违约却始终为 −1。内层驻性不能替代内层最小化,更不能替代外层可行性。

推论与应用

极限定理的证明机制 ​

任取原问题可行点 z。全局罚最小性给出

f(xk)+μk2‖c(xk)‖2≤f(z).

沿一个收敛子列 xkj→x¯,连续性使 f(xkj) 有界,故

‖c(xkj)‖2≤2[f(z)−f(xkj)]μkj⟶0.

于是 c(x¯)=0。同时 f(xk)≤f(z),取极限得 f(x¯)≤f(z)。由于 z 是任意可行点,x¯ 全局最优。关键是与任意可行点比较整个罚目标,而不是只观察梯度。

对仿射约束 c(x)=Ax−b,Hessian 中最后的非线性项消失,罚曲率直接增加 μATA。约束的零空间方向不受这项影响,法向方向则变硬,所以病态性来自不同方向被不均匀地拉伸。改变约束的单位也会改变罚项尺度;若将某个等式乘上一千,其平方罚权重会放大一百万。

一个可执行的外层停止方式 ​

可以令 μk+1=10μk,为每轮指定内层梯度容差 εk↓0,并记录三项:内层 ‖∇Qμk(xk)‖、原约束 ‖c(xk)‖、原 Lagrangian 驻性 ‖∇f(xk)+Jc(xk)Tλk‖,其中 λk=μkc(xk)。第三项在精确算术下等于第一项,却必须连同约束残差解释;一项小而另一项大时不能停止为“约束最优”。

对不等式 gi(x)≤0,可加入 μ∑imax(gi(x),0)2/2。该项通常一阶连续,切换位置却未必二阶连续,因此内层算法的光滑性假设要相应调整。增广 Lagrange 法进一步保存并更新乘子,使固定或适度的罚参数也能持续消除违约。

稠密 Newton 内层每步通常需要 O(n3) 的分解,梯度和 Hessian 组装成本另计。罚参数增加多少轮并不能代表总工作,因为每轮线性系统会变得更难解;应一并报告约束误差、线性系统残差、条件数估计和实际内层次数。

参考资料
关系图谱12 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系