第十七章: 惩罚函数法与增广Lagrange函数法
一些重要的求解约束优化的方法将原问题替换为一系列子问题 , 在子问题中原本的约束被替换成加在目标函数上的项. 本章我们介绍属于此类的三种方法.
二次罚函数法the quadratic penalty method 是在目标函数上增加每个约束违反度平方的某个倍数. 这种方法比较简单、直观 . 尽管它有许多的缺陷 , 但实际中还是被经常使用 .
非光滑精确罚函数法the nonsmooth exact penalty methods 是用一个 (而不是一系列)无约束问题替代原本的约束问题. 使用这种罚函数, 我们可以仅利用一次无约束极小化找到解, 但随之而来, 非光滑性可能会制造一些麻烦. 此类的常见罚函数比如l 1 l_1 l 1 罚函数.
乘子法the methods of multipliers 或增广Lagrange函数法the augmented Lagrangian method 是另一种精确罚函数法, 其中显式估计了Lagrange乘子, 避免了二次罚函数带来的病态问题 .
对数障碍函数法log-barrier method 使用对数项来防止迭代点过于接近可行域边界. 此法是非线性规划内点法的部分基础. 我们放在第十九章讲述.
1. 二次罚函数法
1.1 动机
考虑使用单一个 函数代替约束优化问题, 其中那个函数由以下组成:
约束优化问题的目标函数 , 加上
对每个约束的一个附加项 , 其在当前点违反约束时为正, 否则取0.
许多方法都会通过定义一系列这样的罚函数求解问题, 其中罚项乘上了一个正系数(惩罚因子). 此系数越大, 我们对违反约束的现象越不能容忍, 从而越强制罚函数的极小点靠近约束问题的可行域 .
此类最简单的罚函数为二次罚函数(又称Courant罚函数) , 其中的罚项记为约束违反度的平方. 我们先在等式约束问题下讨论这一方法.min x f ( x ) , s u b j e c t  t o  c i ( x ) = 0 , i ∈ E . \min\limits_xf(x),\quad\mathrm{subject\,to\,}c_i(x)=0,\quad i\in\mathcal{E}. x min f ( x ) , s u b j e c t t o c i ( x ) = 0 , i ∈ E . 对此, 二次罚函数为Q ( x ; μ ) = d e f f ( x ) + μ 2 ∑ i ∈ E c i 2 ( x ) , Q(x;\mu)\xlongequal{def}f(x)+\frac{\mu}{2}\sum_{i\in\mathcal{E}}c_i^2(x), Q ( x ; μ ) d e f f ( x ) + 2 μ i ∈ E ∑ c i 2 ( x ) , 其中μ > 0 \mu>0 μ > 0 为惩罚因子(penalty parameter) . 当μ \mu μ 趋向于∞ \infty ∞ , 我们就对约束违反惩罚得愈加猛烈. 直观上, 我们很容易想到要构作一列{ μ k } : μ ↑ ∞ , k → ∞ \{\mu_k\}:\mu\uparrow\infty,k\to\infty { μ k } : μ ↑ ∞ , k → ∞ , 并对每个k k k 求得Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的近似极小点x k x_k x k . 由于上述罚函数是光滑的, 因此我们可以使用无约束优化的技术求x k x_k x k . 在搜索x k x_k x k 时, 我们可以使用先前的极小点x k − 1 , x k − 2 x_{k-1},x_{k-2} x k − 1 , x k − 2 作为算法初始的迭代点 . 对于合适的{ μ k } \{\mu_k\} { μ k } 和初始点, 我们在每次无约束极小过程中都无需消耗过多的计算量.
例1 考虑以下等式约束问题min x 1 + x 2 , s u b j e c t  t o  x 1 2 + x 2 2 − 2 = 0 , \min x_1+x_2,\quad\mathrm{subject\,to\,}x_1^2+x_2^2-2=0, min x 1 + x 2 , s u b j e c t t o x 1 2 + x 2 2 − 2 = 0 , 其解为( − 1 , − 1 ) T (-1,-1)^T ( − 1 , − 1 ) T 且二次罚函数为Q ( x ; μ ) = x 1 + x 2 + μ 2 ( x 1 2 + x 2 2 − 2 ) 2 . Q(x;\mu)=x_1+x_2+\frac{\mu}{2}(x_1^2+x_2^2-2)^2. Q ( x ; μ ) = x 1 + x 2 + 2 μ ( x 1 2 + x 2 2 − 2 ) 2 . 下图为μ = 1 \mu=1 μ = 1 时, Q Q Q 的等高线图. 从图中可见Q Q Q 有一差不多是( − 1.1 , − 1.1 ) T (-1.1,-1.1)^T ( − 1 . 1 , − 1 . 1 ) T 的极小点, 也有一接近( 0.3 , 0.3 ) T (0.3,0.3)^T ( 0 . 3 , 0 . 3 ) T 的极大点.
而下图则对应μ = 10 \mu=10 μ = 1 0 , 因此不再可行域x 1 2 + x 2 2 = 2 x_1^2+x_2^2=2 x 1 2 + x 2 2 = 2 的点会遭受比上图更大的惩罚. 此图中Q Q Q 的极小点愈加靠近解. 同时还有一局部极大点在( 0 , 0 ) T (0,0)^T ( 0 , 0 ) T 附近, 且Q Q Q 在出可行域后就迅速地趋向于∞ \infty ∞ .
但实际情形一般没有例1中那么良态. 对于一给定的μ \mu μ , 即使原约束问题有唯一解, 惩罚函数也可能是下无界的. 例如,min − 5 x 1 2 + x 2 2 , s u b j e c t  t o  x 1 = 1 , \min -5x_1^2+x_2^2,\quad\mathrm{subject\,to\,}x_1=1, min − 5 x 1 2 + x 2 2 , s u b j e c t t o x 1 = 1 , 其解为( 1 , 0 ) T (1,0)^T ( 1 , 0 ) T . 而对此任何小于10的惩罚因子, 其罚函数都下无界. 不过, 这点对于本章讨论的所有惩罚函数都是存在的.
对于一般的约束优化问题min x f ( x ) , s u b j e c t  t o  c i ( x ) = 0 , i ∈ E , c i ( x ) ≥ 0 , i ∈ I . \min\limits_xf(x),\quad\mathrm{subject\,to\,}c_i(x)=0,i\in\mathcal{E},\quad c_i(x)\ge0,i\in\mathcal{I}. x min f ( x ) , s u b j e c t t o c i ( x ) = 0 , i ∈ E , c i ( x ) ≥ 0 , i ∈ I . 定义二次罚函数为Q ( x ; μ ) = d e f f ( x ) + μ 2 ∑ i ∈ E c i 2 ( x ) + μ 2 ∑ i ∈ I ( [ c i ( x ) ] − ) 2 , Q(x;\mu)\xlongequal{def}f(x)+\frac{\mu}{2}\sum_{i\in\mathcal{E}}c_i^2(x)+\frac{\mu}{2}\sum_{i\in\mathcal{I}}\left([c_i(x)]^-\right)^2, Q ( x ; μ ) d e f f ( x ) + 2 μ i ∈ E ∑ c i 2 ( x ) + 2 μ i ∈ I ∑ ( [ c i ( x ) ] − ) 2 , 这里[ y ] − = max ( − y , 0 ) [y]^-=\max(-y,0) [ y ] − = max ( − y , 0 ) . 此时Q Q Q 没有光只有等式约束的惩罚函数光滑, 也不如目标函数和约束函数光滑 . 例如若有一个不等式约束为x 1 ≥ 0 x_1\ge0 x 1 ≥ 0 , 则min ( 0 , x 1 ) 2 \min(0,x_1)^2 min ( 0 , x 1 ) 2 就没有连续的二阶导数, Q Q Q 就不再二阶连续可微.
1.2 算法框架
基于二次罚函数的一般算法框架如下.
框架1 (Quadratic Penalty Method)
Given μ 0 > 0 \mu_0>0 μ 0 > 0 , a nonnegative sequence { τ k } \{\tau_k\} { τ k } with τ k → 0 \tau_k\to0 τ k → 0 , and a starting point x 0 s x_0^s x 0 s ;
for k = 0 , 1 , 2 , … k=0,1,2,\ldots k = 0 , 1 , 2 , … \quad\quad Find an approximate minimizer x k x_k x k of Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) , starting at x k s x_k^s x k s , and terminating when ∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k ∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k ;\quad\quad if final convergence test satisfied\quad\quad\quad\quad stop with approximate solution x k x_k x k ;\quad\quad end (if)\quad\quad Choose new penalty parameter μ k + 1 > μ k \mu_{k+1}>\mu_k μ k + 1 > μ k ;\quad\quad Choose new starting point x k + 1 s x_{k+1}^s x k + 1 s ;
end (for)
我们可以基于在每次迭代极小化罚函数的困难度自适应 地选取惩罚因子序列{ μ k } \{\mu_k\} { μ k } :
当极小化Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 对某一k k k 来说比较昂贵, 我们就选取比μ k \mu_k μ k 稍微大一点的μ k + 1 \mu_{k+1} μ k + 1 , 比如μ k + 1 = 1.5 μ k \mu_{k+1}=1.5\mu_k μ k + 1 = 1 . 5 μ k .
若我们比较容易就能找到Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的近似极小点, 我们就尝试更大幅度的增长, 比如μ k + 1 = 10 μ k \mu_{k+1}=10\mu_k μ k + 1 = 1 0 μ k .
框架1的收敛理论给予了非负序列{ τ k } \{\tau_k\} { τ k } 选取充分的自由度: 仅需τ k → 0 \tau_k\to0 τ k → 0 , 以保证算法随着迭代, 其精度在不断提升.
正如之前讨论过的, 我们无法保证∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k ∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k 一定会成立. 因此实际的实施必须包括当约束违反度下降不够快, 或者当迭代点趋向于发散时, 增大惩罚因子(或存储初始点)的防护措施 .
当只有等式约束时, Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 光滑, 因此可使用无约束极小化的算法求得近似解x k x_k x k . 不过, 当μ k \mu_k μ k 变大, Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的极小化会变得愈发困难(求解系统的条件数变大 ), 除非我们使用特殊的手段计算搜索方向.
一方面, Hessian阵∇ x x 2 Q ( x ; μ k ) \nabla_{xx}^2Q(x;\mu_k) ∇ x x 2 Q ( x ; μ k ) 会在极小点附近变得愈发病态. 这一点就足以使得许多无约束算法(如拟牛顿法、共轭梯度法)效果变差. 而诸如牛顿法这般对Hessian条件数不敏感的算法, 则可能会遭遇较大μ k \mu_k μ k 带来的另外两个问题:
在我们求解线性系统计算牛顿步时, 病态的∇ x x 2 Q ( x ; μ k ) \nabla_{xx}^2Q(x;\mu_k) ∇ x x 2 Q ( x ; μ k ) 可能会引发数值不稳定. 后面我们会指出, 这种影响并不严重, 我们可以重构牛顿方程.
即使x x x 很接近Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) 的极小点, 但对于Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的二阶Taylor展开仅在x x x 的一个小邻域内才是合适的. 这一点可从第二张图看出来, 其中Q Q Q 在极小点附近的等高线呈现出一种"香蕉"状而不是二次函数典型的椭圆型. 由于牛顿法是基于二次模型的, 因此其产生的迭代步可能无法快速收敛到Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的极小点. 对此, 我们需要谨慎地选择初始点x k + 1 s x_{k+1}^s x k + 1 s 或直接设置x k + 1 s = x k x_{k+1}^s=x_k x k + 1 s = x k , 并选取μ k + 1 \mu_{k+1} μ k + 1 只比μ k \mu_k μ k 大一点.
1.3 二次罚函数法的收敛性
我们在下面两个定理里介绍二次罚函数方法的一些收敛性质. 我们将讨论限制在等式约束问题.
对于第一个结果, 我们假设对每个μ k \mu_k μ k , 罚函数Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 都有(有限个)极小点.
定理1 设x k x_k x k 为框架1中Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的精确全局极小点, 且μ k ↑ ∞ \mu_k\uparrow\infty μ k ↑ ∞ . 则序列{ x k } \{x_k\} { x k } 的每个聚点都是原问题的全局解.
证明: 令x ˉ \bar{x} x ˉ 为原问题的全局解. 即有f ( x ˉ ) ≤ f ( x ) , ∀ x : c i ( x ) = 0 , i ∈ E . f(\bar{x})\le f(x),\quad\forall x:c_i(x)=0,i\in\mathcal{E}. f ( x ˉ ) ≤ f ( x ) , ∀ x : c i ( x ) = 0 , i ∈ E . 由于对每个k k k , x k x_k x k 极小化Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) , 于是Q ( x k ; μ k ) ≤ Q ( x ˉ ; μ k ) Q(x_k;\mu_k)\le Q(\bar{x};\mu_k) Q ( x k ; μ k ) ≤ Q ( x ˉ ; μ k ) , 这就得到不等式f ( x k ) + μ k 2 ∑ i ∈ E c i 2 ( x k ) ≤ f ( x ˉ ) + μ k 2 ∑ i ∈ E c i 2 ( x ˉ ) = f ( x ˉ ) . f(x_k)+\frac{\mu_k}{2}\sum_{i\in\mathcal{E}}c_i^2(x_k)\le f(\bar{x})+\frac{\mu_k}{2}\sum_{i\in\mathcal{E}}c_i^2(\bar{x})=f(\bar{x}). f ( x k ) + 2 μ k i ∈ E ∑ c i 2 ( x k ) ≤ f ( x ˉ ) + 2 μ k i ∈ E ∑ c i 2 ( x ˉ ) = f ( x ˉ ) . 重新整理可得∑ i ∈ E c i 2 ( x k ) ≤ 2 μ k [ f ( x ˉ ) − f ( x k ) ] . \sum_{i\in\mathcal{E}}c_i^2(x_k)\le\frac{2}{\mu_k}[f(\bar{x})-f(x_k)]. i ∈ E ∑ c i 2 ( x k ) ≤ μ k 2 [ f ( x ˉ ) − f ( x k ) ] . 假设x ∗ x^* x ∗ 为{ x k } \{x_k\} { x k } 的一个聚点, 因此存在{ 1 , 2 , … , n , … } \{1,2,\ldots,n,\ldots\} { 1 , 2 , … , n , … } 的无穷子列K \mathcal{K} K 使得lim k → K x k = x ∗ . \lim_{k\to\mathcal{K}}x_k=x^*. k → K lim x k = x ∗ . 对上面不等式两边取极限k → ∞ , k ∈ K k\to\infty,k\in\mathcal{K} k → ∞ , k ∈ K , 我们有∑ i ∈ E c i 2 ( x ∗ ) = lim k ∈ K ∑ i ∈ E c i 2 ( x k ) ≤ lim k ∈ K 2 μ k [ f ( x ˉ ) − f ( x k ) ] = 0. \sum_{i\in\mathcal{E}}c_i^2(x^*)=\lim_{k\in\mathcal{K}}\sum_{i\in\mathcal{E}}c_i^2(x_k)\le\lim_{k\in\mathcal{K}}\frac{2}{\mu_k}[f(\bar{x})-f(x_k)]=0. i ∈ E ∑ c i 2 ( x ∗ ) = k ∈ K lim i ∈ E ∑ c i 2 ( x k ) ≤ k ∈ K lim μ k 2 [ f ( x ˉ ) − f ( x k ) ] = 0 . 因此c i ( x ∗ ) = 0 , i ∈ E c_i(x^*)=0,i\in\mathcal{E} c i ( x ∗ ) = 0 , i ∈ E , 从而x ∗ x^* x ∗ 可行. 进一步, f ( x ∗ ) ≤ f ( x ∗ ) + lim k ∈ K μ k 2 ∑ i ∈ E c i 2 ( x k ) ≤ f ( x ˉ ) . f(x^*)\le f(x^*)+\lim_{k\in\mathcal{K}}\frac{\mu_k}{2}\sum_{i\in\mathcal{E}}c_i^2(x_k)\le f(\bar{x}). f ( x ∗ ) ≤ f ( x ∗ ) + k ∈ K lim 2 μ k i ∈ E ∑ c i 2 ( x k ) ≤ f ( x ˉ ) . 由于x ∗ x^* x ∗ 可行, 且其函数值不大于全局解x ˉ \bar{x} x ˉ 处的函数值, 因此x ∗ x^* x ∗ 也是全局解. 证毕.
此结论对带不等式的问题也成立. 但由于需要我们求每个子问题的全局极小点, 因此此性质一般并不能成立 . 下一结论则允许我们不精确(但精确度要提升)极小化Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) . 相较于定理1, 它表示{ x k } \{x_k\} { x k } 可能会收敛到不可行点或是KKT点. 它也说明了在一定情形下, − μ k c i ( x k ) -\mu_kc_i(x_k) − μ k c i ( x k ) 可以当做Lagrange乘子λ i ∗ \lambda_i^* λ i ∗ 的估计. 这一点对于我们在第3节讨论增广Lagrange函数法时比较重要.
为建立定理, 我们需乐观地 假设对所有k k k , ∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k ∥ ∇ x Q ( x ; μ k ) ∥ ≤ τ k 都会成立.
定理2 设框架1中的容忍限序列和惩罚因子序列满足τ k → 0 , μ k ↑ ∞ \tau_k\to0,\mu_k\uparrow\infty τ k → 0 , μ k ↑ ∞ , 则若序列{ x k } \{x_k\} { x k } 的聚点x ∗ x^* x ∗ 不可行, 它就是函数∥ c ( x ) ∥ 2 \Vert c(x)\Vert^2 ∥ c ( x ) ∥ 2 的稳定点. 若聚点x ∗ x^* x ∗ 可行且约束梯度∇ c i ( x ∗ ) \nabla c_i(x^*) ∇ c i ( x ∗ ) 线性无关, 则x ∗ x^* x ∗ 为原问题的KKT点. 于此, 对任一收敛到x ∗ x^* x ∗ 的子列, 即∀ K : lim k ∈ K x k = x ∗ \forall\mathcal{K}:\lim_{k\in\mathcal{K}}x_k=x^* ∀ K : lim k ∈ K x k = x ∗ , 我们有lim k ∈ K − μ k c i ( x k ) = λ i ∗ , ∀ i ∈ E , \lim_{k\in\mathcal{K}}-\mu_kc_i(x_k)=\lambda_i^*,\quad\forall i\in\mathcal{E}, k ∈ K lim − μ k c i ( x k ) = λ i ∗ , ∀ i ∈ E , 这里λ ∗ \lambda^* λ ∗ 为满足等式约束原问题KKT条件的乘子.
证明: 对Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 求导, 得到∇ x Q ( x k ; μ k ) = ∇ f ( x k ) + ∑ i ∈ E μ k c i ( x k ) ∇ c i ( x k ) , \nabla_xQ(x_k;\mu_k)=\nabla f(x_k)+\sum_{i\in\mathcal{E}}\mu_kc_i(x_k)\nabla c_i(x_k), ∇ x Q ( x k ; μ k ) = ∇ f ( x k ) + i ∈ E ∑ μ k c i ( x k ) ∇ c i ( x k ) , 于是从终止条件, 我们有∥ ∇ f ( x k ) + ∑ i ∈ E μ k c i ( x k ) ∇ c i ( x k ) ∥ ≤ τ k . \left\Vert\nabla f(x_k)+\sum_{i\in\mathcal{E}}\mu_kc_i(x_k)\nabla c_i(x_k)\right\Vert\le\tau_k. ∥ ∥ ∥ ∥ ∥ ∇ f ( x k ) + i ∈ E ∑ μ k c i ( x k ) ∇ c i ( x k ) ∥ ∥ ∥ ∥ ∥ ≤ τ k . 利用三角不等式, 有∥ ∑ i ∈ E c i ( x k ) ∇ c i ( x k ) ∥ ≤ 1 μ k [ τ k + ∥ ∇ f ( x k ) ∥ ] . \left\Vert\sum_{i\in\mathcal{E}}c_i(x_k)\nabla c_i(x_k)\right\Vert\le\frac{1}{\mu_k}[\tau_k+\Vert\nabla f(x_k)\Vert]. ∥ ∥ ∥ ∥ ∥ i ∈ E ∑ c i ( x k ) ∇ c i ( x k ) ∥ ∥ ∥ ∥ ∥ ≤ μ k 1 [ τ k + ∥ ∇ f ( x k ) ∥ ] . 令x ∗ x^* x ∗ 为迭代点序列的聚点. 于是存在无穷指标子列K \mathcal{K} K 使得lim k ∈ K x k = x ∗ \lim_{k\in\mathcal{K}}x_k=x^* lim k ∈ K x k = x ∗ . 对上式取k → ∞ , k ∈ K k\to\infty,k\in\mathcal{K} k → ∞ , k ∈ K 的极限, 可得∑ i ∈ E c i ( x ∗ ) ∇ c i ( x ∗ ) = 0. \sum_{i\in\mathcal{E}}c_i(x^*)\nabla c_i(x^*)=0. i ∈ E ∑ c i ( x ∗ ) ∇ c i ( x ∗ ) = 0 . 我们可能有c i ( x ∗ ) ≠ 0 c_i(x^*)\ne0 c i ( x ∗ ) ̸ = 0 (若约束梯度∇ c i ( x ∗ ) \nabla c_i(x^*) ∇ c i ( x ∗ ) 线性相关), 但这起码说明x ∗ x^* x ∗ 为∥ c ( x ) ∥ 2 \Vert c(x)\Vert^2 ∥ c ( x ) ∥ 2 的稳定点.
若∇ c i ( x ∗ ) \nabla c_i(x^*) ∇ c i ( x ∗ ) 线性无关, 则c i ( x ∗ ) = 0 , ∀ i ∈ E c_i(x^*)=0,\forall i\in\mathcal{E} c i ( x ∗ ) = 0 , ∀ i ∈ E , 因此x ∗ x^* x ∗ 可行. 于是KKT条件之可行性条件成立. 记约束的Jacobi阵为A A A ,向量− μ k c ( x k ) -\mu_kc(x_k) − μ k c ( x k ) 为λ k \lambda_k λ k , 则有A ( x k ) T λ k = ∇ f ( x k ) − ∇ x Q ( x k ; μ k ) , ∥ ∇ x Q ( x k ; μ k ) ∥ ≤ τ k . A(x_k)^T\lambda_k=\nabla f(x_k)-\nabla_xQ(x_k;\mu_k),\quad\Vert\nabla_xQ(x_k;\mu_k)\Vert\le\tau_k. A ( x k ) T λ k = ∇ f ( x k ) − ∇ x Q ( x k ; μ k ) , ∥ ∇ x Q ( x k ; μ k ) ∥ ≤ τ k . 对k ∈ K k\in\mathcal{K} k ∈ K 充分大, A ( x k ) A(x_k) A ( x k ) 行满秩, 于是A ( x k ) A ( x k ) T A(x_k)A(x_k)^T A ( x k ) A ( x k ) T 非奇异. 上式左乘A ( x k ) A(x_k) A ( x k ) 并整理可得λ k = [ A ( x k ) A ( x k ) T ] − 1 A ( x k ) [ ∇ f ( x k ) − ∇ x Q ( x k ; μ k ) ] . \lambda_k=\left[A(x_k)A(x_k)^T\right]^{-1}A(x_k)[\nabla f(x_k)-\nabla_xQ(x_k;\mu_k)]. λ k = [ A ( x k ) A ( x k ) T ] − 1 A ( x k ) [ ∇ f ( x k ) − ∇ x Q ( x k ; μ k ) ] . 取极限k → ∞ , k ∈ K k\to\infty,k\in\mathcal{K} k → ∞ , k ∈ K , 可得lim k ∈ K λ k = λ ∗ = [ A ( x ∗ ) A ( x ∗ ) T ] − 1 A ( x ∗ ) ∇ f ( x ∗ ) . \lim_{k\in\mathcal{K}}\lambda_k=\lambda^*=\left[A(x^*)A(x^*)^T\right]^{-1}A(x^*)\nabla f(x^*). k ∈ K lim λ k = λ ∗ = [ A ( x ∗ ) A ( x ∗ ) T ] − 1 A ( x ∗ ) ∇ f ( x ∗ ) . 又由前面取极限可知∇ f ( x ∗ ) − A ( x ∗ ) T λ ∗ = 0 , \nabla f(x^*)-A(x^*)^T\lambda^*=0, ∇ f ( x ∗ ) − A ( x ∗ ) T λ ∗ = 0 , 于是λ ∗ \lambda^* λ ∗ 满足KKT条件之稳定性条件. 所以, x ∗ x^* x ∗ 为原问题的KKT点, 且由唯一的Lagrange乘子λ ∗ \lambda^* λ ∗ . 证毕.
需重复强调的是, 若聚点x ∗ x^* x ∗ 不可行, 则它至少是∥ c ( x ) ∥ 2 \Vert c(x)\Vert^2 ∥ c ( x ) ∥ 2 的稳定点. 牛顿类的算法总是会陷在这种类型的点. 这有点像我们在第十一章 中讨论非线性方程组的情形. 在原问题不可行时, 我们往往可以观察到二次罚函数算法收敛于∥ c ( x ) ∥ 2 \Vert c(x)\Vert^2 ∥ c ( x ) ∥ 2 的稳定点或极小点.
若考虑不等式约束, 则x ∗ x^* x ∗ 为函数∥ [ c ( x ) ] − ∥ 2 \Vert [c(x)]^-\Vert^2 ∥ [ c ( x ) ] − ∥ 2 的稳定点, 其中[ c ( x ) ] − [c(x)]^- [ c ( x ) ] − 定义为[ c ( x ) ] i − = { c i ( x ) , i ∈ E , [ c i ( x ) ] − , i ∈ I . [c(x)]_i^-=\left\{\begin{array}{ll}c_i(x), & i\in\mathcal{E},\\ [c_i(x)]^-, & i\in\mathcal{I}.\end{array}\right. [ c ( x ) ] i − = { c i ( x ) , [ c i ( x ) ] − , i ∈ E , i ∈ I . 但所谓的KKT点不一定成立, 因为此处无法估计乘子的正负.
1.4 病态与重构
我们现在来验证Hessian阵∇ x x 2 Q ( x ; μ k ) \nabla^2_{xx}Q(x;\mu_k) ∇ x x 2 Q ( x ; μ k ) 的病态内在. 对这一矩阵和在其他罚函数和障碍函数法中出现的Hessian阵性质的理解, 将有助于我们选取和设计合适、高效的算法.
这里的Hessian阵为∇ x x 2 Q ( x ; μ k ) = ∇ 2 f ( x ) + ∑ i ∈ E μ k c i ( x ) ∇ 2 c i ( x ) + μ k A ( x ) T A ( x ) . \nabla^2_{xx}Q(x;\mu_k)=\nabla^2f(x)+\sum_{i\in\mathcal{E}}\mu_kc_i(x)\nabla^2c_i(x)+\mu_kA(x)^TA(x). ∇ x x 2 Q ( x ; μ k ) = ∇ 2 f ( x ) + i ∈ E ∑ μ k c i ( x ) ∇ 2 c i ( x ) + μ k A ( x ) T A ( x ) . 当x x x 接近Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) 的极小点且定理2的条件满足时, 我们从定理2的结论可知, 上式右端前两项就差不多是Lagrange函数的Hessian. 具体地, ∇ x x 2 Q ( x ; μ k ) ≈ ∇ x x 2 L ( x , λ ∗ ) + μ k A ( x ) T A ( x ) . \nabla^2_{xx}Q(x;\mu_k)\approx\nabla^2_{xx}\mathcal{L}(x,\lambda^*)+\mu_kA(x)^TA(x). ∇ x x 2 Q ( x ; μ k ) ≈ ∇ x x 2 L ( x , λ ∗ ) + μ k A ( x ) T A ( x ) . 依此, ∇ x x 2 Q ( x ; μ k ) \nabla^2_{xx}Q(x;\mu_k) ∇ x x 2 Q ( x ; μ k ) 就接近于以下两个部分的和:
(Lagrange项)独立于μ k \mu_k μ k 的矩阵; 和
秩为∣ E ∣ |\mathcal{E}| ∣ E ∣ , 且非零特征值与μ k \mu_k μ k 同阶的矩阵.
由于约束的数量∣ E ∣ |\mathcal{E}| ∣ E ∣ 通常小于n n n , 因此第二项奇异. 因此整个矩阵的某些特征值会趋近常数, 而其他的则与μ k \mu_k μ k 同阶 . 因μ k → ∞ \mu_k\to\infty μ k → ∞ , 通过条件数可知, ∇ x x 2 Q ( x ; μ k ) \nabla^2_{xx}Q(x;\mu_k) ∇ x x 2 Q ( x ; μ k ) 会变得愈发病态.
Hessian病态的一个后果是, 以下牛顿步的计算可能会不够精确:∇ x x 2 Q ( x ; μ k ) p = − ∇ x Q ( x ; μ k ) . \nabla^2_{xx}Q(x;\mu_k)p=-\nabla_xQ(x;\mu_k). ∇ x x 2 Q ( x ; μ k ) p = − ∇ x Q ( x ; μ k ) . 一般来说, 不论使用何种直接计算手段, 此病态系统都会导致在p p p 上的巨大计算误差. 基于同样的原因, 除非有预处理的策略, 否则迭代计算的方法也不会有较好的表现.
不过, 我们可以重构 以上牛顿方程以避免病态. 引入一个新的变量ζ : = μ A ( x ) p \zeta:=\mu A(x)p ζ : = μ A ( x ) p , 我们会发现满足牛顿方程的p p p 同样满足以下系统:[ ∇ 2 f ( x ) + ∑ i ∈ E μ k c i ( x ) ∇ 2 c i ( x ) A ( x ) T A ( x ) − ( 1 / μ k ) I ] [ p ζ ] = [ − ∇ x Q ( x ; μ k ) 0 ] . \begin{bmatrix}\nabla^2f(x)+\sum\limits_{i\in\mathcal{E}}\mu_kc_i(x)\nabla^2c_i(x) & A(x)^T\\A(x) & -(1/\mu_k)I\end{bmatrix}\begin{bmatrix}p\\\zeta\end{bmatrix}=\begin{bmatrix}-\nabla_xQ(x;\mu_k)\\0\end{bmatrix}. [ ∇ 2 f ( x ) + i ∈ E ∑ μ k c i ( x ) ∇ 2 c i ( x ) A ( x ) A ( x ) T − ( 1 / μ k ) I ] [ p ζ ] = [ − ∇ x Q ( x ; μ k ) 0 ] . 当x x x 离x ∗ x^* x ∗ 较近时, 此系统的系数矩阵并不会有与μ k \mu_k μ k 同阶的大特征值. 事实上, 当μ k → ∞ \mu_k\to\infty μ k → ∞ , 可将此系统的系数矩阵近似看做[ ∇ x x 2 L ( x , λ ∗ ) A ( x ) T A ( x ) O ] , \begin{bmatrix}\nabla^2_{xx}\mathcal{L}(x,\lambda^*) & A(x)^T\\A(x) & O\end{bmatrix}, [ ∇ x x 2 L ( x , λ ∗ ) A ( x ) A ( x ) T O ] , 进一步若假设∇ x x 2 L ( x , λ ∗ ) \nabla^2_{xx}\mathcal{L}(x,\lambda^*) ∇ x x 2 L ( x , λ ∗ ) 非奇异, 利用分块矩阵的初等变换, 可得[ ∇ x x 2 L ( x , λ ∗ ) A ( x ) T A ( x ) O ] ∼ [ ∇ x x 2 L ( x , λ ∗ ) A ( x ) T O − A ( x ) [ ∇ x x 2 L ( x , λ ∗ ) ] − 1 A ( x ) T ] , \begin{bmatrix}\nabla^2_{xx}\mathcal{L}(x,\lambda^*) & A(x)^T\\A(x) & O\end{bmatrix}\sim\begin{bmatrix}\nabla^2_{xx}\mathcal{L}(x,\lambda^*) & A(x)^T\\O & -A(x)\left[\nabla^2_{xx}\mathcal{L}(x,\lambda^*)\right]^{-1}A(x)^T\end{bmatrix}, [ ∇ x x 2 L ( x , λ ∗ ) A ( x ) A ( x ) T O ] ∼ [ ∇ x x 2 L ( x , λ ∗ ) O A ( x ) T − A ( x ) [ ∇ x x 2 L ( x , λ ∗ ) ] − 1 A ( x ) T ] , 此阵的行列式不为0. 因此此系统可视作牛顿方程的良态重构(well conditioned reformulation) . 不过, 由于∇ 2 f ( x ) + ∑ i ∈ E μ k c i ( x ) ∇ 2 c i ( x ) \nabla^2f(x)+\sum_{i\in\mathcal{E}}\mu_kc_i(x)\nabla^2c_i(x) ∇ 2 f ( x ) + ∑ i ∈ E μ k c i ( x ) ∇ 2 c i ( x ) 对∇ x x 2 L ( x , λ ∗ ) \nabla_{xx}^2\mathcal{L}(x,\lambda^*) ∇ x x 2 L ( x , λ ∗ ) (也即μ k c i ( x ) \mu_kc_i(x) μ k c i ( x ) 对− λ i ∗ -\lambda_i^* − λ i ∗ )的近似可能不会很好, 所以这两个系统可能都不会得出一个比较好的搜索方向p p p . 这一事实可能就说明二次模型并不是Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) 的一个合适的近似模型, 而牛顿步可能本身就不适合作为搜索方向. 后续我们会讨论针对以上的补救措施.
如果要通过求解重构的问题计算迭代步, 我们需要求解一个n + ∣ E ∣ n+|\mathcal{E}| n + ∣ E ∣ 维而不是n n n 维的系统. 后面在下一章中讨论逐步二次规划(SQP)时我们也得求解类似的系统. 事实上,
当μ k \mu_k μ k 很大, 上述重构可视作SQP迭代步的正则化 , 其中的− ( 1 / μ k ) I -(1/\mu_k)I − ( 1 / μ k ) I 使得迭代矩阵即使A ( x ) A(x) A ( x ) 行亏秩时依然是非奇异的.
当μ k \mu_k μ k 较小, 则重构系统的第二行说明计算出的迭代步并不能较好地满足约束的线性化 . 我们是不希望这种情况发生的, 因为这样一来迭代步就不能朝着可行性改进多少, 从而全局表现不够高效.
若{ μ k } \{\mu_k\} { μ k } 趋于无穷过快, 我们就又可能丧失线性化满足时获得超线性收敛速度的机会 . 具体讨论可见下一章.
总之, 重构系统可以视作无约束极小在二次惩罚函数Q ( ⋅ ; μ k ) Q(\cdot;\mu_k) Q ( ⋅ ; μ k ) 上的应用, 也可以视作SQP方法的一个变体.
2. 非光滑精确罚函数法
有些罚函数是精确的(exact) , 即对于特定的惩罚因子, 仅做一次极小化即可得到非线性规划问题的精确解. 这一性质是很吸引人的, 因为它使得罚函数方法不依赖于惩罚因子的更新策略 . 第1节介绍的二次罚函数并不是精确的, 这是因为对任何μ \mu μ 的正值, 其极小点一般都不是原非线性规划的解. 本节我们讨论非光滑精确罚函数法.
对一般非线性规划的一种广受欢迎的非光滑罚函数是l 1 l_1 l 1 罚函数, 定义为ϕ 1 ( x ; μ ) = f ( x ) + μ ∑ i ∈ E ∣ c i ( x ) ∣ + μ ∑ i ∈ I [ c i ( x ) ] − . \phi_1(x;\mu)=f(x)+\mu\sum_{i\in\mathcal{E}}|c_i(x)|+\mu\sum_{i\in\mathcal{I}}[c_i(x)]^-. ϕ 1 ( x ; μ ) = f ( x ) + μ i ∈ E ∑ ∣ c i ( x ) ∣ + μ i ∈ I ∑ [ c i ( x ) ] − . 其称谓源于它使用的惩罚项是μ \mu μ 乘以约束违反度的l 1 l_1 l 1 范数. 注意ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 在某些x x x 上并不可微.
下面的定理揭示了l 1 l_1 l 1 罚函数的精确性.
定理3 设x ∗ x^* x ∗ 为非线性规划问题的严格局部解, 且其满足一阶必要性条件, 有Lagrange乘子λ i ∗ , i ∈ E ∪ I \lambda_i^*,i\in\mathcal{E}\cup\mathcal{I} λ i ∗ , i ∈ E ∪ I . 于是x ∗ x^* x ∗ 为ϕ 1 ( x ; μ ) , ∀ μ > μ ∗ \phi_1(x;\mu),\forall\mu>\mu^* ϕ 1 ( x ; μ ) , ∀ μ > μ ∗ 的局部极小点, 其中μ ∗ = ∥ λ ∗ ∥ ∞ = max i ∈ E ∪ I ∣ λ i ∗ ∣ . \mu^*=\Vert\lambda^*\Vert_{\infty}=\max_{i\in\mathcal{E}\cup\mathcal{I}}|\lambda_i^*|. μ ∗ = ∥ λ ∗ ∥ ∞ = i ∈ E ∪ I max ∣ λ i ∗ ∣ . 另外, 若在x ∗ x^* x ∗ 还满足二阶充分性条件, 且μ > μ ∗ \mu>\mu^* μ > μ ∗ , 则x ∗ x^* x ∗ 为ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 的严格局部极小点.
证明可见 Han S P和Mangasarian O L1 的定理4.4.
粗略地说, 在非线性规划的解x ∗ x^* x ∗ 处, 任何向不可行域的移动都会被严重地惩罚, 这样使得函数值会大于ϕ 1 ( x ∗ ; μ ) = f ( x ∗ ) \phi_1(x^*;\mu)=f(x^*) ϕ 1 ( x ∗ ; μ ) = f ( x ∗ ) (即方向导数都大于0), 强迫ϕ ( ⋅ ; μ ) \phi(\cdot;\mu) ϕ ( ⋅ ; μ ) 的极小点落在x ∗ x^* x ∗ .
例2 考虑如下单变量问题:min x , s u b j e c t  t o  x ≥ 1 , \min x,\quad\mathrm{subject\,to\,}x\ge1, min x , s u b j e c t t o x ≥ 1 , 其解为x ∗ = 1 x^*=1 x ∗ = 1 . 我们有ϕ 1 ( x ; μ ) = x + μ [ x − 1 ] − = { ( 1 − μ ) x + μ , x ≤ 1 , x x > 1. \phi_1(x;\mu)=x+\mu[x-1]^-=\left\{\begin{array}{ll}(1-\mu)x+\mu, & x\le1,\\x & x>1.\end{array}\right. ϕ 1 ( x ; μ ) = x + μ [ x − 1 ] − = { ( 1 − μ ) x + μ , x x ≤ 1 , x > 1 . 于是从下图可见, 当μ > 1 \mu>1 μ > 1 , 罚函数有极小点x ∗ = 1 x^*=1 x ∗ = 1 , 但在μ < 1 \mu<1 μ < 1 时却是个单调递增函数.
由于罚函数法通过直接极小化罚函数起作用, 所以我们需要刻画ϕ 1 \phi_1 ϕ 1 的稳定点. 即使ϕ 1 \phi_1 ϕ 1 不可微, 但它沿任何方向具有方向导数 D ( ϕ 1 ( x ; μ ) ; p ) D(\phi_1(x;\mu);p) D ( ϕ 1 ( x ; μ ) ; p ) .
定义1 一点x ^ ∈ R n \hat{x}\in\mathbb{R}^n x ^ ∈ R n 是罚函数ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 的稳定点, 若D ( ϕ 1 ( x ^ ; μ ) ; p ) ≥ 0 , ∀ p ∈ R n . D(\phi_1(\hat{x};\mu);p)\ge0,\quad\forall p\in\mathbb{R}^n. D ( ϕ 1 ( x ^ ; μ ) ; p ) ≥ 0 , ∀ p ∈ R n . 类似地, x ^ \hat{x} x ^ 为不可行度量(the measure of infeasibility) h ( x ) = ∑ i ∈ E ∣ c i ( x ) ∣ + ∑ i ∈ I [ c i ( x ) ] − h(x)=\sum_{i\in\mathcal{E}}|c_i(x)|+\sum_{i\in\mathcal{I}}[c_i(x)]^- h ( x ) = i ∈ E ∑ ∣ c i ( x ) ∣ + i ∈ I ∑ [ c i ( x ) ] − 的稳定点, 若D ( h ( x ^ ) ; p ) ≥ 0 , ∀ p ∈ R n D(h(\hat{x});p)\ge0,\forall p\in\mathbb{R}^n D ( h ( x ^ ) ; p ) ≥ 0 , ∀ p ∈ R n . 若一点不可行但对不可行度量h h h 是稳定的, 则我们称其为不可行稳定点(infeasible stationary point) .
对于例2中的函数, 我们在x ∗ = 1 x^*=1 x ∗ = 1 有D ( ϕ 1 ( x ∗ ; μ ) ; p ) = { p , p ≥ 0 , ( 1 − μ ) p , p < 0. D(\phi_1(x^*;\mu);p)=\left\{\begin{array}{ll}p, & p\ge0,\\(1-\mu)p, & p<0.\end{array}\right. D ( ϕ 1 ( x ∗ ; μ ) ; p ) = { p , ( 1 − μ ) p , p ≥ 0 , p < 0 . 于是当μ > 1 \mu>1 μ > 1 , D ( ϕ 1 ( x ∗ ; μ ) ; p ) ≥ 0 , ∀ p ∈ R D(\phi_1(x^*;\mu);p)\ge0,\forall p\in\mathbb{R} D ( ϕ 1 ( x ∗ ; μ ) ; p ) ≥ 0 , ∀ p ∈ R .
下面的结论则在一定程度上弥补了定理3的不足, 即证明了反方向: 在一定条件下, ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 的稳定点对应了原非线性规划的KKT点.
定理4 设x ^ \hat{x} x ^ 为罚函数ϕ 1 ( x ; μ ) , ∀ μ > μ ^ > 0 \phi_1(x;\mu),\forall\mu>\hat{\mu}>0 ϕ 1 ( x ; μ ) , ∀ μ > μ ^ > 0 的稳定点. 若x ^ \hat{x} x ^ 为原非线性规划的可行点, 则其为KKT点. 若不可行, 则是不可行稳定点.
证明: 若x ^ \hat{x} x ^ 可行, 于是D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p + μ ∑ i ∈ E ∣ ∇ c i ( x ^ ) T p ∣ + μ ∑ i ∈ I ∩ A ( x ^ ) [ ∇ c i ( x ^ ) T p ] − , ? ? ? D(\phi_1(\hat{x};\mu);p)=\nabla f(\hat{x})^Tp+\mu\sum_{i\in\mathcal{E}}\left|\nabla c_i(\hat{x})^Tp\right|+\mu\sum_{i\in\mathcal{I}\cap\mathcal{A}(\hat{x})}\left[\nabla c_i(\hat{x})^Tp\right]^-,??? D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p + μ i ∈ E ∑ ∣ ∣ ∇ c i ( x ^ ) T p ∣ ∣ + μ i ∈ I ∩ A ( x ^ ) ∑ [ ∇ c i ( x ^ ) T p ] − , ? ? ? 其中A ( x ^ ) \mathcal{A}(\hat{x}) A ( x ^ ) 为在x ^ \hat{x} x ^ 处的积极集. 考虑任何线性化可行方向集F ( x ^ ) \mathcal{F}(\hat{x}) F ( x ^ ) 中的p p p , 由F ( x ^ ) \mathcal{F}(\hat{x}) F ( x ^ ) 的定义, 我们有∣ ∇ c i ( x ^ ) T p ∣ + ∑ i ∈ I ∩ A ( x ^ ) [ ∇ c i ( x ^ ) T p ] − = 0 , \left|\nabla c_i(\hat{x})^Tp\right|+\sum_{i\in\mathcal{I}\cap\mathcal{A}(\hat{x})}\left[\nabla c_i(\hat{x})^Tp\right]^-=0, ∣ ∣ ∇ c i ( x ^ ) T p ∣ ∣ + i ∈ I ∩ A ( x ^ ) ∑ [ ∇ c i ( x ^ ) T p ] − = 0 , 因此由稳定性假设, 我们有0 ≤ D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p , ∀ p ∈ F ( x ^ ) . 0\le D(\phi_1(\hat{x};\mu);p)=\nabla f(\hat{x})^Tp,\quad\forall p\in\mathcal{F}(\hat{x}). 0 ≤ D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p , ∀ p ∈ F ( x ^ ) . 利用Farkas引理, 可得存在λ ^ i : λ ^ i ≥ 0 , i ∈ I ∩ A ( x ^ ) \hat{\lambda}_i:\hat{\lambda}_i\ge0,i\in\mathcal{I}\cap\mathcal{A}(\hat{x}) λ ^ i : λ ^ i ≥ 0 , i ∈ I ∩ A ( x ^ ) , 使得∇ f ( x ^ ) = ∑ i ∈ A ( x ^ ) λ ^ i ∇ c i ( x ^ ) . \nabla f(\hat{x})=\sum_{i\in\mathcal{A}(\hat{x})}\hat{\lambda}_i\nabla c_i(\hat{x}). ∇ f ( x ^ ) = i ∈ A ( x ^ ) ∑ λ ^ i ∇ c i ( x ^ ) . 这说明x ^ \hat{x} x ^ 为KKT点.
若x ^ \hat{x} x ^ 不可行, 反证, 假设存在p p p 使得D ( h ( x ^ ) ; p ) < 0 D(h(\hat{x});p)<0 D ( h ( x ^ ) ; p ) < 0 . 由0 ≤ D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p + μ D ( h ( x ^ ) ; p ) , ∀ μ 充 分 大 , 0\le D(\phi_1(\hat{x};\mu);p)=\nabla f(\hat{x})^Tp+\mu D(h(\hat{x});p),\forall\mu充分大, 0 ≤ D ( ϕ 1 ( x ^ ; μ ) ; p ) = ∇ f ( x ^ ) T p + μ D ( h ( x ^ ) ; p ) , ∀ μ 充 分 大 , 可推得∇ f ( x ^ ) T p → ∞ \nabla f(\hat{x})^Tp\to\infty ∇ f ( x ^ ) T p → ∞ , 矛盾! 证毕.
例3 再考虑例1中的问题, 这里使用l 1 l_1 l 1 罚函数,ϕ 1 ( x ; μ ) = x 1 + x 2 + μ ∣ x 1 2 + x 2 2 − 2 ∣ . \phi_1(x;\mu)=x_1+x_2+\mu|x_1^2+x_2^2-2|. ϕ 1 ( x ; μ ) = x 1 + x 2 + μ ∣ x 1 2 + x 2 2 − 2 ∣ . 下图描绘了ϕ ( x ; 2 ) \phi(x;2) ϕ ( x ; 2 ) 的等高线, 其极小点可见即为原问题的解x ∗ = ( − 1 , − 1 ) T x^*=(-1,-1)^T x ∗ = ( − 1 , − 1 ) T .
事实上由定理3, 我们知道对于所有的μ > ∣ λ ∗ ∣ = 0.5 \mu>|\lambda^*|=0.5 μ > ∣ λ ∗ ∣ = 0 . 5 , ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 的极小点都是x ∗ x^* x ∗ . 而图中等高线的尖角则体现了l 1 l_1 l 1 罚函数的不光滑性.
这些结论为基于l 1 l_1 l 1 罚函数的算法框架提供了动机.
框架2 (Classical l 1 l_1 l 1 Penalty Method)
Given μ 0 > 0 \mu_0>0 μ 0 > 0 , tolerance τ > 0 \tau>0 τ > 0 , starting point x 0 s x_0^s x 0 s ;
for k = 0 , 1 , 2 , … k=0,1,2,\ldots k = 0 , 1 , 2 , … \quad\quad Find an approximate minimizer x k x_k x k of ϕ 1 ( x ; μ k ) \phi_1(x;\mu_k) ϕ 1 ( x ; μ k ) , starting at x k s x_k^s x k s ;\quad\quad if h ( x k ) ≤ τ h(x_k)\le\tau h ( x k ) ≤ τ \quad\quad\quad\quad stop with approximate solution x k x_k x k ;\quad\quad end (if)\quad\quad Choose new penalty parameter μ k + 1 > μ k \mu_{k+1}>\mu_k μ k + 1 > μ k ;\quad\quad Choose new starting point x k + 1 s x_{k+1}^s x k + 1 s ;
end (for)
这其中对于ϕ 1 ( x ; μ k ) \phi_1(x;\mu_k) ϕ 1 ( x ; μ k ) 的极小因非光滑性而变得难以实现. 但若使用ϕ 1 ( x ; μ k ) \phi_1(x;\mu_k) ϕ 1 ( x ; μ k ) 的光滑模型近似, 再对光滑模型做极小 , 事情就变得好理解多了. 我们将在下一小节介绍, 这有点类似于逐步二次规划算法.
更新惩罚因子μ k \mu_k μ k 的最简单格式是乘以某个常数(比如5或10). 此格式有时很好用, 但也可能会影响效率; 若初始的惩罚因子μ 0 \mu_0 μ 0 过小, 则框架2可能需要更多的迭代更新才能取到一个比较合适的因子; 在迭代早期, 迭代点可能会逐渐远离解x ∗ x^* x ∗ , 这时就需要尽早终止ϕ 1 ( x ; μ k ) \phi_1(x;\mu_k) ϕ 1 ( x ; μ k ) 的极小化过程, x k s x_k^s x k s 也应该重新设置为一个先前的迭代点; 若μ k \mu_k μ k 相当大, 则极小化罚函数的困难度也会增加, 需要的迭代书也会变多. 之后我们会讨论如何选取惩罚因子.
2.1 实用l 1 l_1 l 1 罚函数法
如前所述, ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 在任何x : c i ( x ) = 0 , ∃ i ∈ E ∪ I x:c_i(x)=0,\exists i\in\mathcal{E}\cup\mathcal{I} x : c i ( x ) = 0 , ∃ i ∈ E ∪ I 都不可微. 考虑到此函数不可微的特殊性, 我们不考虑非光滑优化的技术(比如捆集法(bundle methods)), 而是充分考虑特殊性, 重新设计算法. 在无约束优化中, 我们构建ϕ 1 ( x ; μ ) \phi_1(x;\mu) ϕ 1 ( x ; μ ) 的简单模型并通过极小化模型得到迭代步. 而这一简单模型可以通过线性化约束c i c_i c i 并以二次函数近似非线性f f f 得到:q ( p ; μ ) = f ( x ) + ∇ f ( x ) T p + 1 2 p T W p + μ ∑ i ∈ E ∣ c i ( x ) + ∇ c i ( x ) T p ∣ + μ ∑ i ∈ I [ c i ( x ) + ∇ c i ( x ) T p ] − , q(p;\mu)=f(x)+\nabla f(x)^Tp+\frac{1}{2}p^TWp+\mu\sum_{i\in\mathcal{E}}|c_i(x)+\nabla c_i(x)^Tp|+\mu\sum_{i\in\mathcal{I}}[c_i(x)+\nabla c_i(x)^Tp]^-, q ( p ; μ ) = f ( x ) + ∇ f ( x ) T p + 2 1 p T W p + μ i ∈ E ∑ ∣ c i ( x ) + ∇ c i ( x ) T p ∣ + μ i ∈ I ∑ [ c i ( x ) + ∇ c i ( x ) T p ] − , 其中W W W 为对称阵, 其通常包含了f f f 和c i , i ∈ E ∪ I c_i,i\in\mathcal{E}\cup\mathcal{I} c i , i ∈ E ∪ I 的二阶导数信息. 模型q ( p ; μ ) q(p;\mu) q ( p ; μ ) 仍不光滑, 但我们可以添加人工变量, 构造光滑的二次规划问题:min p , r , s , t f ( x ) + 1 2 p T W p + ∇ f ( x ) T p + μ ∑ i ∈ E ( r i + s i ) + μ ∑ i ∈ I t i s u b j e c t  t o ∇ c i ( x ) T p + c i ( x ) = r i − s i , i ∈ E , ∇ c i ( x ) T p + c i ( x ) ≥ − t i , i ∈ I , r , s , t ≥ 0. \begin{array}{rl}\min\limits_{p,r,s,t} & f(x)+\frac{1}{2}p^TWp+\nabla f(x)^Tp+\mu\sum\limits_{i\in\mathcal{E}}(r_i+s_i)+\mu\sum\limits_{i\in\mathcal{I}}t_i\\\mathrm{subject\,to} & \nabla c_i(x)^Tp+c_i(x)=r_i-s_i,\quad i\in\mathcal{E},\\& \nabla c_i(x)^Tp+c_i(x)\ge-t_i,\quad i\in\mathcal{I},\\ & r,s,t\ge0.\end{array} p , r , s , t min s u b j e c t t o f ( x ) + 2 1 p T W p + ∇ f ( x ) T p + μ i ∈ E ∑ ( r i + s i ) + μ i ∈ I ∑ t i ∇ c i ( x ) T p + c i ( x ) = r i − s i , i ∈ E , ∇ c i ( x ) T p + c i ( x ) ≥ − t i , i ∈ I , r , s , t ≥ 0 . 此子问题可用标准的二次规划求解器 求解. 即使再添加一个盒型(box-shaped)信赖域约束 ∥ p ∥ ∞ ≤ Δ \Vert p\Vert_{\infty}\le\Delta ∥ p ∥ ∞ ≤ Δ , 它仍是一个二次规划. 这样极小化ϕ 1 \phi_1 ϕ 1 的方法与逐步二次规划联系紧密, 我们将在下一章讨论之.
选取和更新惩罚因子μ k \mu_k μ k 的策略对迭代的成功与否很关键. 我们曾提到过一种简单但不一定高效的方法, 是先选取初值, 再重复地增大它直到可行性条件满足. 在此方法的一些变体中, 每步迭代惩罚因子的选取满足μ k > ∥ λ k ∥ ∞ \mu_k>\Vert\lambda_k\Vert_{\infty} μ k > ∥ λ k ∥ ∞ , 其中λ k \lambda_k λ k 为x k x_k x k 处Lagrange乘子的估计. 此策略是基于定理2的, 但由于乘子估计可能不够精确, 且在离解不够近时往往无法得到较好的μ k \mu_k μ k , 因此这种策略也并不总是能成功.
因选取合适μ k \mu_k μ k 较为困难, 非光滑罚函数法在上世纪九十年代逐渐淡出, 从而刺激了对滤子法的发展. 相比较而言, 滤子法不需要选取惩罚因子. 不过近些年来, 又出现了对罚函数法新一轮的研究兴趣, 部分由于它们能够处理退化的问题. 而新的更新惩罚因子的方法在某些特定的情形下, 能够克服先前的困难. 具体可见下一章的算法5.
在选取初始点x k + 1 s x_{k+1}^s x k + 1 s 时需要尤其注意. 若μ k \mu_k μ k 对当前合适, 则我们可以设x k + 1 s x_{k+1}^s x k + 1 s 为ϕ 1 ( x ; μ k ) \phi_1(x;\mu_k) ϕ 1 ( x ; μ k ) 的极小点x k x_k x k . 否则应考虑选取更早些迭代的极小点.
2.2 一般的非光滑罚函数法
精确非光滑罚函数可以定义为除了l 1 l_1 l 1 范数以外的其他范数形式. 我们可以写作ϕ ( x ; μ ) = f ( x ) + μ ∥ c E ( x ) ∥ + μ ∥ [ c I ( x ) ] − ∥ , \phi(x;\mu)=f(x)+\mu\Vert c_{\mathcal{E}}(x)\Vert+\mu\Vert[c_{\mathcal{I}}(x)]^-\Vert, ϕ ( x ; μ ) = f ( x ) + μ ∥ c E ( x ) ∥ + μ ∥ [ c I ( x ) ] − ∥ , 其中∥ ⋅ ∥ \Vert\cdot\Vert ∥ ⋅ ∥ 为任意向量范数, 且所有的等式、不等式约束都分别存放于向量值函数c E , c I c_{\mathcal{E}},c_{\mathcal{I}} c E , c I 中. 框架2可用于任何此类罚函数. 我们仅需重新定义不可行性度量为h ( x ) = ∥ c E ( x ) ∥ + ∥ [ c I ( x ) ] − ∥ h(x)=\Vert c_{\mathcal{E}}(x)\Vert+\Vert[c_{\mathcal{I}}(x)]^-\Vert h ( x ) = ∥ c E ( x ) ∥ + ∥ [ c I ( x ) ] − ∥ . 事实上可以证明, 这些范数所对应的不同罚函数的极小点是一一对应 的, 证明可见Han S P和Mangasarian O L2 的定理4.2. 最常用的范数为l 1 , l ∞ , l 2 l_1,l_{\infty},l_2 l 1 , l ∞ , l 2 (无平方)范数. 对l ∞ l_{\infty} l ∞ 范数容易得到类似于上一小节的线性化重构.
对l 1 l_1 l 1 罚函数成立的理论性质对一般形式也成立. 在定理3中, 我们把不等式换成μ ≥ μ ∗ = ∥ λ ∗ ∥ D , \mu\ge\mu^*=\Vert\lambda^*\Vert_D, μ ≥ μ ∗ = ∥ λ ∗ ∥ D , 其中∥ ⋅ ∥ D \Vert\cdot\Vert_D ∥ ⋅ ∥ D 是∥ ⋅ ∥ \Vert\cdot\Vert ∥ ⋅ ∥ 的对偶范数 . 而定理4则无需修改直接可应用.
下说明此类 的罚函数若是精确的必是非光滑的. 为说明简单, 我们仅考虑只有一个等式约束c 1 ( x ) = 0 c_1(x)=0 c 1 ( x ) = 0 的情形, 考虑罚函数ϕ ( x ; μ ) = f ( x ) + μ h ( c i ( x ) ) , \phi(x;\mu)=f(x)+\mu h(c_i(x)), ϕ ( x ; μ ) = f ( x ) + μ h ( c i ( x ) ) , 其中h : R → R h:\mathbb{R}\to\mathbb{R} h : R → R 为满足h ( y ) ≥ 0 , ∀ y ∈ R ; h ( 0 ) = 0 h(y)\ge0,\forall y\in\mathbb{R};h(0)=0 h ( y ) ≥ 0 , ∀ y ∈ R ; h ( 0 ) = 0 的函数. 若h h h 连续可微, 则h h h 有一极小点在0 0 0 . 于是∇ h ( 0 ) = 0 \nabla h(0)=0 ∇ h ( 0 ) = 0 . 若x ∗ x^* x ∗ 为问题的局部解, 则c i ( x ∗ ) = 0 ⇒ ∇ h ( c 1 ( x ∗ ) ) = 0 c_i(x^*)=0\Rightarrow\nabla h(c_1(x^*))=0 c i ( x ∗ ) = 0 ⇒ ∇ h ( c 1 ( x ∗ ) ) = 0 . 若x ∗ x^* x ∗ 为ϕ ( x ; μ ) \phi(x;\mu) ϕ ( x ; μ ) 的局部极小点(只需μ \mu μ 足够大), 则有0 = ∇ ϕ ( x ∗ ; μ ) = ∇ f ( x ∗ ) + μ ∇ c i ( x ∗ ) ∇ h ( c 1 ( x ∗ ) ) = ∇ f ( x ∗ ) . 0=\nabla\phi(x^*;\mu)=\nabla f(x^*)+\mu\nabla c_i(x^*)\nabla h(c_1(x^*))=\nabla f(x^*). 0 = ∇ ϕ ( x ∗ ; μ ) = ∇ f ( x ∗ ) + μ ∇ c i ( x ∗ ) ∇ h ( c 1 ( x ∗ ) ) = ∇ f ( x ∗ ) . 然而, f f f 在约束优化问题中的解一般不是稳定点, 因此h h h 连续可微的假设错误, ϕ ( ⋅ ; μ ) \phi(\cdot;\mu) ϕ ( ⋅ ; μ ) 不可能光滑.
非光滑罚函数也可用作其他机制下计算迭代步时的价值函数 . 具体可见第十五章第四节的一般性讨论和第十八和第十九章中的具体实施.
3. 增广Lagrange函数法: 等式约束情形
下面我们讨论一种被称为乘子法the method of multipliers 或增广Lagrange函数法augmented Lagragian methods 的方法. 此法与第1节中的二次罚函数法相关, 但它通过显式引入Lagrange乘子估计 至目标函数, 减小了问题的病态程度 . 引入显式Lagrange乘子估计后的函数就被称为增广Lagrange函数(augmented Lagrangian function) . 与第2节中讨论的罚函数相反, 增广Lagrange函数极大地保留了光滑性 , 因此具体实施可调用标准的无约束或带界约束的优化软件求解.
本节我们在Lagrange乘子估计上, 用上标表示迭代指标, 下标表示分量. 而对于其他的变量, 使用下标表示迭代指标.
3.1 动机和算法框架
我们首先考虑等式约束问题. 二次罚函数Q ( x ; μ ) Q(x;\mu) Q ( x ; μ ) 以不可行度量的平方惩罚违反行为. 但我们从定理2中也看到了, Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的极小点x k x_k x k 并不满足可行性条件 c i ( x ) = 0 , i ∈ E c_i(x)=0,i\in\mathcal{E} c i ( x ) = 0 , i ∈ E , 而是近似地有c i ( x k ) ≈ − λ i ∗ / μ k , ∀ i ∈ E . c_i(x_k)\approx-\lambda_i^*/\mu_k,\quad\forall i\in\mathcal{E}. c i ( x k ) ≈ − λ i ∗ / μ k , ∀ i ∈ E . 当然, c i ( x k ) → 0 , μ k → ∞ c_i(x_k)\to0,\mu_k\to\infty c i ( x k ) → 0 , μ k → ∞ , 但考虑到条件数的问题, 我们可能会考虑能否修改函数Q ( x ; μ k ) Q(x;\mu_k) Q ( x ; μ k ) 的形式 来避免这种系统上的偏差, 即使得近似极小点无需μ k \mu_k μ k 充分大就差不多满足等式约束c i ( x ) = 0 c_i(x)=0 c i ( x ) = 0 .
增广Lagrange函数L A ( x , λ ; μ ) \mathcal{L}_A(x,\lambda;\mu) L A ( x , λ ; μ ) 正满足我们的需求. 基于定理2, 它向目标加入了Lagrange乘子λ \lambda λ 的显式估计, 即有L A ( x , λ ; μ ) = d e f f ( x ) − ∑ i ∈ E λ i c i ( x ) + μ 2 ∑ i ∈ E c i 2 ( x ) . \mathcal{L}_A(x,\lambda;\mu)\xlongequal{def}f(x)-\sum_{i\in\mathcal{E}}\lambda_ic_i(x)+\frac{\mu}{2}\sum_{i\in\mathcal{E}}c_i^2(x). L A ( x , λ ; μ ) d e f f ( x ) − i ∈ E ∑ λ i c i ( x ) + 2 μ i ∈ E ∑ c i 2 ( x ) . 以上形式, 与标准的Lagrange函数相比多了平方项, 而与二次罚函数相比则多了关于λ \lambda λ 的求和项. 从这个角度上看, 它是Lagrange函数和二次罚函数的结合 .
下面我们设计一种对x x x 极小化的算法, 其中固定惩罚因子μ \mu μ 为μ k > 0 \mu_k>0 μ k > 0 , 固定λ \lambda λ 为λ k \lambda^k λ k . 用x k x_k x k 表示L A ( x , λ k ; μ k ) \mathcal{L}_A(x,\lambda^k;\mu_k) L A ( x , λ k ; μ k ) 的近似极小点, 于是由无约束极小的最优性条件可知0 = ∇ x L A ( x k , λ k ; μ k ) = ∇ f ( x k ) − ∑ i ∈ E [ λ i k − μ k c i ( x k ) ] ∇ c i ( x k ) . 0=\nabla_x\mathcal{L}_A(x_k,\lambda^k;\mu_k)=\nabla f(x_k)-\sum_{i\in\mathcal{E}}[\lambda_i^k-\mu_kc_i(x_k)]\nabla c_i(x_k). 0 = ∇ x L A ( x k , λ k ; μ k ) = ∇ f ( x k ) − i ∈ E ∑ [ λ i k − μ k c i ( x k ) ] ∇ c i ( x k ) . 比较约束优化的一阶最优性条件, 若∇ c i ( x k ) \nabla c_i(x_k) ∇ c i ( x k ) 线性无关, 则有λ i ∗ ≈ λ i k − μ k c i ( x k ) , ∀ i ∈ E . \lambda_i^*\approx\lambda_i^k-\mu_kc_i(x_k),\quad\forall i\in\mathcal{E}. λ i ∗ ≈ λ i k − μ k c i ( x k ) , ∀ i ∈ E . 整理可得c i ( x k ) ≈ − 1 μ k ( λ i ∗ − λ i k ) , ∀ i ∈ E , c_i(x_k)\approx-\frac{1}{\mu_k}(\lambda_i^*-\lambda_i^k),\quad\forall i\in\mathcal{E}, c i ( x k ) ≈ − μ k 1 ( λ i ∗ − λ i k ) , ∀ i ∈ E , 从这可看出, 若λ k \lambda^k λ k 接近于最优乘子λ ∗ \lambda^* λ ∗ , 则x k x_k x k 处的不可行性度量将会小于( 1 / μ k ) (1/\mu_k) ( 1 / μ k ) , 而不是成比例(见定理2). 而上面的式子也为我们提供了更新当前估计λ k \lambda^k λ k 的公式:λ i k + 1 = λ i k − μ k c i ( x k ) , ∀ i ∈ E . \lambda_i^{k+1}=\lambda_i^k-\mu_kc_i(x_k),\quad\forall i\in\mathcal{E}. λ i k + 1 = λ i k − μ k c i ( x k ) , ∀ i ∈ E .
于是我们得到下述算法框架.
框架3 (Augmented Lagrangian Method-Equality Constraints)
Given μ 0 > 0 \mu_0>0 μ 0 > 0 , tolerance τ 0 > 0 \tau_0>0 τ 0 > 0 , starting points x 0 s x_0^s x 0 s and λ 0 \lambda^0 λ 0 ;
for k = 0 , 1 , 2 , … k=0,1,2,\ldots k = 0 , 1 , 2 , … \quad\quad Find an approximate minimizer x k x_k x k of L A ( ⋅ , λ k ; μ k ) \mathcal{L}_A(\cdot,\lambda^k;\mu_k) L A ( ⋅ , λ k ; μ k ) , starting at x k s x_k^s x k s , and terminating when ∥ ∇ x L A ( x k , λ k ; μ k ) ∥ ≤ τ k \Vert\nabla_x\mathcal{L}_A(x_k,\lambda^k;\mu_k)\Vert\le\tau_k ∥ ∇ x L A ( x k , λ k ; μ k ) ∥ ≤ τ k ;\quad\quad if a convergence test for the original problem is satisfied\quad\quad\quad\quad stop with approximate solution x k x_k x k ;\quad\quad end (if)\quad\quad Update Lagrange multipliers to obtain λ k + 1 \lambda^{k+1} λ k + 1 ;\quad\quad Choose new penalty perameter μ k + 1 ≥ μ k \mu_{k+1}\ge\mu_k μ k + 1 ≥ μ k ;\quad\quad Set starting point for the next iteration to x k + 1 s = x k x_{k+1}^s=x_k x k + 1 s = x k ;\quad\quad Select tolerance τ k + 1 \tau_{k+1} τ k + 1 ;
end (for)
我们通过一个例子来阐释此法可以无需将μ \mu μ 增加到∞ \infty ∞ 即可保证收敛. 于是病态的情况要比框架1有所缓解; 初始点x k + 1 s x_{k+1}^s x k + 1 s 的选取也就不那么关键; 容忍限τ k \tau_k τ k 可依据不可行性∑ i ∈ E ∣ c ( x k ) ∣ \sum_{i\in\mathcal{E}}|c(x_k)| ∑ i ∈ E ∣ c ( x k ) ∣ 选取; 若当前迭代下不可行性度量没有充分下降, 则惩罚因子μ \mu μ 可能就需要增大一些.
例4 再次考虑例1中的问题, 其增广Lagrange函数为L A ( x , λ ; μ ) = x 1 + x 2 − λ ( x 1 2 + x 2 2 − 2 ) + μ 2 ( x 1 2 + x 2 2 − 2 ) 2 . \mathcal{L}_A(x,\lambda;\mu)=x_1+x_2-\lambda(x_1^2+x_2^2-2)+\frac{\mu}{2}(x_1^2+x_2^2-2)^2. L A ( x , λ ; μ ) = x 1 + x 2 − λ ( x 1 2 + x 2 2 − 2 ) + 2 μ ( x 1 2 + x 2 2 − 2 ) 2 . 如前所述, 原问题解为x ∗ = ( − 1 , − 1 ) T x^*=(-1,-1)^T x ∗ = ( − 1 , − 1 ) T , 最优Lagrange乘子为λ ∗ = − 0.5 \lambda^*=-0.5 λ ∗ = − 0 . 5 .
假设在第k k k 步迭代, μ k = 1 \mu_k=1 μ k = 1 , λ k = − 0.4 \lambda^k=-0.4 λ k = − 0 . 4 . 增广Lagrange函数的等高线可见下图. 与之对比, μ k = 1 \mu_k=1 μ k = 1 的二次罚函数等高线图可见图1.
注意到等高线之间的跨度说明此问题的条件数与二次罚函数Q ( x ; 1 ) Q(x;1) Q ( x ; 1 ) 差不多. 但此时的极小点x k ≈ ( − 1.02 , − 1.02 ) T x_k\approx(-1.02,-1.02)^T x k ≈ ( − 1 . 0 2 , − 1 . 0 2 ) T 则更靠近解x ∗ = ( − 1 , − 1 ) T x^*=(-1,-1)^T x ∗ = ( − 1 , − 1 ) T . 这个例子表明, 将Lagrange乘子估计项包含进L A ( x , λ ; μ ) \mathcal{L}_A(x,\lambda;\mu) L A ( x , λ ; μ ) 中可以得到相较于二次罚函数法的精度提升.
3.2 增广Lagrange函数的性质
下面我们证明关于增广Lagrange函数使用和等式约束问题乘子法的两条结论.
第一条证实, 若我们有精确Lagrange乘子λ ∗ \lambda^* λ ∗ 的信息, 则原问题的解x ∗ x^* x ∗ 是L A ( x , λ ∗ ; μ ) , μ \mathcal{L}_A(x,\lambda^*;\mu),\mu L A ( x , λ ∗ ; μ ) , μ 充分大的严格极小点. 尽管我们一般不能预先知道准确的λ ∗ \lambda^* λ ∗ , 但此结论和其证明表明只要λ \lambda λ 是λ ∗ \lambda^* λ ∗ 的一个较好的估计, 我们可以通过在μ \mu μ 不是特别大时, 极小化L A ( x , λ ; μ ) \mathcal{L}_A(x,\lambda;\mu) L A ( x , λ ; μ ) 得到关于x ∗ x^* x ∗ 的一个好估计 .
定理5 令x ∗ x^* x ∗ 为原问题的局部解, 且LICQ成立, 对λ = λ ∗ \lambda=\lambda^* λ = λ ∗ 有二阶充分性条件成立. 则存在μ ˉ \bar{\mu} μ ˉ 使得对∀ μ ≥ μ ˉ \forall\mu\ge\bar{\mu} ∀ μ ≥ μ ˉ , x ∗ x^* x ∗ 为L A ( x , λ ∗ ; μ ) \mathcal{L}_A(x,\lambda^*;\mu) L A ( x , λ ∗ ; μ ) 的严格局部极小点.
证明: 我们证明x ∗ x^* x ∗ 对μ \mu μ 充分大, 满足关于L A ( x , λ ∗ ; μ ) \mathcal{L}_A(x,\lambda^*;\mu) L A ( x , λ ∗ ; μ ) 的二阶充分性条件, 即∇ x L A ( x ∗ , λ ∗ ; μ ) = 0 , ∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) 正 定 . \nabla_x\mathcal{L}_A(x^*,\lambda^*;\mu)=0,\quad\nabla^2_{xx}\mathcal{L}_A(x^*,\lambda^*;\mu)正定. ∇ x L A ( x ∗ , λ ∗ ; μ ) = 0 , ∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) 正 定 . 由于x ∗ x^* x ∗ 为原问题局部解, 且LICQ成立, 于是由KKT条件知∇ x L ( x ∗ , λ ∗ ) = 0 , c i ( x ∗ ) = 0 , ∀ i ∈ E \nabla_x\mathcal{L}(x^*,\lambda^*)=0,c_i(x^*)=0,\forall i\in\mathcal{E} ∇ x L ( x ∗ , λ ∗ ) = 0 , c i ( x ∗ ) = 0 , ∀ i ∈ E , 从而∇ x L A ( x ∗ , λ ∗ ; μ ) = ∇ f ( x ∗ ) − ∑ i ∈ E [ λ i ∗ − μ c i ( x ∗ ) ] ∇ c i ( x ∗ ) = ∇ f ( x ∗ ) − ∑ i ∈ E λ i ∗ ∇ c i ( x ∗ ) = ∇ x L ( x ∗ , λ ∗ ) = 0 , \begin{aligned}\nabla_x\mathcal{L}_A(x^*,\lambda^*;\mu)&=\nabla f(x^*)-\sum_{i\in\mathcal{E}}[\lambda_i^*-\mu c_i(x^*)]\nabla c_i(x^*)\\&=\nabla f(x^*)-\sum_{i\in\mathcal{E}}\lambda_i^*\nabla c_i(x^*)=\nabla_x\mathcal{L}(x^*,\lambda^*)=0,\end{aligned} ∇ x L A ( x ∗ , λ ∗ ; μ ) = ∇ f ( x ∗ ) − i ∈ E ∑ [ λ i ∗ − μ c i ( x ∗ ) ] ∇ c i ( x ∗ ) = ∇ f ( x ∗ ) − i ∈ E ∑ λ i ∗ ∇ c i ( x ∗ ) = ∇ x L ( x ∗ , λ ∗ ) = 0 , 这一点与μ \mu μ 无关. 对于二阶充分性条件, 定义A A A 为约束梯度矩阵, 于是∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) = ∇ x x 2 L ( x ∗ , λ ∗ ) + μ A T A . \nabla^2_{xx}\mathcal{L}_A(x^*,\lambda^*;\mu)=\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)+\mu A^TA. ∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) = ∇ x x 2 L ( x ∗ , λ ∗ ) + μ A T A . 若对于充分大μ \mu μ 二阶充分性条件不成立, 则对每个k ≥ 1 k\ge1 k ≥ 1 , 我们可选取向量w k : ∥ w k ∥ = 1 w_k:\Vert w_k\Vert=1 w k : ∥ w k ∥ = 1 使得0 ≥ w k T ∇ x x 2 L A ( x ∗ , λ ∗ ; k ) w k = w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k + k ∥ A w k ∥ 2 2 , 0\ge w_k^T\nabla^2_{xx}\mathcal{L}_A(x^*,\lambda^*;k)w_k=w_k^T\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)w_k+k\Vert Aw_k\Vert^2_2, 0 ≥ w k T ∇ x x 2 L A ( x ∗ , λ ∗ ; k ) w k = w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k + k ∥ A w k ∥ 2 2 , 因此∥ A w k ∥ 2 2 ≤ − ( 1 / k ) w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k → 0 , k → ∞ . \Vert Aw_k\Vert_2^2\le-(1/k)w_k^T\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)w_k\to0,\quad k\to\infty. ∥ A w k ∥ 2 2 ≤ − ( 1 / k ) w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k → 0 , k → ∞ . 由于{ w k } \{w_k\} { w k } 位于一紧集中, 于是存在聚点w w w . 而上面的式子说明A w = 0 Aw=0 A w = 0 . 这说明w ∈ F ( x ∗ ) w\in\mathcal{F}(x^*) w ∈ F ( x ∗ ) . 进一步, w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k ≤ − k ∥ A w k ∥ 2 2 ≤ 0 , w_k^T\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)w_k\le-k\Vert Aw_k\Vert_2^2\le0, w k T ∇ x x 2 L ( x ∗ , λ ∗ ) w k ≤ − k ∥ A w k ∥ 2 2 ≤ 0 , 取极限有w T ∇ x x 2 L ( x ∗ , λ ∗ ) w ≤ 0 w^T\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)w\le0 w T ∇ x x 2 L ( x ∗ , λ ∗ ) w ≤ 0 . 这与原问题的二阶充分性矛盾. 证毕.
第二条结论则立意于更实际的情形λ ≠ λ ∗ \lambda\ne\lambda^* λ ̸ = λ ∗ . 它给出了L A ( x , λ ; μ ) \mathcal{L}_A(x,\lambda;\mu) L A ( x , λ ; μ ) 极小点靠近x ∗ x^* x ∗ 的条件, 且给出了x k x_k x k 和更新的乘子估计λ k + 1 \lambda^{k+1} λ k + 1 分别与x ∗ , λ ∗ x^*,\lambda^* x ∗ , λ ∗ 的误差界.
定理6 设定理5的条件在x ∗ , λ ∗ x^*,\lambda^* x ∗ , λ ∗ 上成立, 且令μ ˉ \bar{\mu} μ ˉ 为定理5中的阈值. 则存在正标量δ , ϵ , M \delta,\epsilon,M δ , ϵ , M 使得以下断言成立:
对所有满足∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ \Vert\lambda^k-\lambda^*\Vert\le\mu_k\delta,\quad\mu_k\ge\bar{\mu} ∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ 的λ k , μ k \lambda^k,\mu_k λ k , μ k , 问题min x L A ( x , λ k ; μ k ) , s u b j e c t  t o  ∥ x − x ∗ ∥ ≤ ϵ \min_x\mathcal{L}_A(x,\lambda^k;\mu_k),\quad\mathrm{subject\,to\,}\Vert x-x^*\Vert\le\epsilon x min L A ( x , λ k ; μ k ) , s u b j e c t t o ∥ x − x ∗ ∥ ≤ ϵ 有唯一解x k x_k x k . 进一步地, ∥ x k − x ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k . \Vert x_k-x^*\Vert\le M\Vert\lambda^k-\lambda^*\Vert/\mu_k. ∥ x k − x ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k .
对所有满足∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ \Vert\lambda^k-\lambda^*\Vert\le\mu_k\delta,\quad\mu_k\ge\bar{\mu} ∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ 的λ k , μ k \lambda^k,\mu_k λ k , μ k , 我们有∥ λ k + 1 − λ ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k , \Vert\lambda^{k+1}-\lambda^*\Vert\le M\Vert\lambda^k-\lambda^*\Vert/\mu_k, ∥ λ k + 1 − λ ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k , 其中λ k + 1 \lambda^{k+1} λ k + 1 由公式λ i k + 1 = λ i k − μ k c i ( x k ) , ∀ i ∈ E \lambda_i^{k+1}=\lambda_i^k-\mu_kc_i(x_k),\quad\forall i\in\mathcal{E} λ i k + 1 = λ i k − μ k c i ( x k ) , ∀ i ∈ E 给出.
对所有满足∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ \Vert\lambda^k-\lambda^*\Vert\le\mu_k\delta,\quad\mu_k\ge\bar{\mu} ∥ λ k − λ ∗ ∥ ≤ μ k δ , μ k ≥ μ ˉ 的λ k , μ k \lambda^k,\mu_k λ k , μ k , 矩阵∇ x x 2 L A ( x k , λ k ; μ k ) \nabla^2_{xx}\mathcal{L}_A(x_k,\lambda^k;\mu_k) ∇ x x 2 L A ( x k , λ k ; μ k ) 正定, 约束梯度∇ c i ( x k ) , i ∈ E \nabla c_i(x_k),i\in\mathcal{E} ∇ c i ( x k ) , i ∈ E 线性无关.
证明: 以下以μ , λ , λ ~ \mu,\lambda,\tilde\lambda μ , λ , λ ~ 分别表示μ k , λ k , λ k + 1 \mu_k,\lambda^k,\lambda^{k+1} μ k , λ k , λ k + 1 . 对μ > 0 \mu>0 μ > 0 , 考虑以下以( x , λ ~ , λ , μ ) (x,\tilde\lambda,\lambda,\mu) ( x , λ ~ , λ , μ ) 为变量的系统:∇ f ( x ) − ∇ h ( x ) λ ~ = 0 , h ( x ) + ( λ − λ ~ ) / μ = 0 , \nabla f(x)-\nabla h(x)\tilde\lambda=0,\quad h(x)+(\lambda-\tilde\lambda)/\mu=0, ∇ f ( x ) − ∇ h ( x ) λ ~ = 0 , h ( x ) + ( λ − λ ~ ) / μ = 0 , 其中h ( x ) = [ c 1 ( x ) c 2 ( x ) ⋮ c m ( x ) ] , ∇ h ( x ) = [ ∇ c 1 ( x ) ∇ c 2 ( x ) ⋯ ∇ c m ( x ) ] . h(x)=\begin{bmatrix}c_1(x)\\c_2(x)\\\vdots\\c_m(x)\end{bmatrix},\quad \nabla h(x)=\begin{bmatrix}\nabla c_1(x) & \nabla c_2(x) & \cdots & \nabla c_m(x)\end{bmatrix}. h ( x ) = ⎣ ⎢ ⎢ ⎢ ⎡ c 1 ( x ) c 2 ( x ) ⋮ c m ( x ) ⎦ ⎥ ⎥ ⎥ ⎤ , ∇ h ( x ) = [ ∇ c 1 ( x ) ∇ c 2 ( x ) ⋯ ∇ c m ( x ) ] . 引入变量t ∈ R m , γ ∈ R t\in\mathbb{R}^m,\gamma\in\mathbb{R} t ∈ R m , γ ∈ R :t = ( λ − λ ∗ ) / μ , γ = 1 / μ , t=(\lambda-\lambda^*)/\mu,\quad\gamma=1/\mu, t = ( λ − λ ∗ ) / μ , γ = 1 / μ , 上述系统可写作∇ f ( x ) − ∇ h ( x ) λ ~ = 0 , h ( x ) + t + γ λ ∗ − γ λ ~ = 0. \nabla f(x)-\nabla h(x)\tilde\lambda=0,\quad h(x)+t+\gamma\lambda^*-\gamma\tilde\lambda=0. ∇ f ( x ) − ∇ h ( x ) λ ~ = 0 , h ( x ) + t + γ λ ∗ − γ λ ~ = 0 . 对t = 0 , γ ∈ [ 0 , 1 / μ ˉ ] t=0,\gamma\in[0,1/\bar{\mu}] t = 0 , γ ∈ [ 0 , 1 / μ ˉ ] , 上述系统有解x = x ∗ , λ ~ = λ ∗ x=x^*,\tilde\lambda=\lambda^* x = x ∗ , λ ~ = λ ∗ . 在此对变量( x , λ ~ ) (x,\tilde\lambda) ( x , λ ~ ) 的Jacobi矩阵为[ ∇ x x 2 L ( x ∗ , λ ∗ ) ∇ h ( x ∗ ) − ∇ h ( x ∗ ) T − γ I ] . \begin{bmatrix}\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*) & \nabla h(x^*)\\-\nabla h(x^*)^T & -\gamma I\end{bmatrix}. [ ∇ x x 2 L ( x ∗ , λ ∗ ) − ∇ h ( x ∗ ) T ∇ h ( x ∗ ) − γ I ] . 我们证明, 这一矩阵对所有γ ∈ [ 0 , 1 / μ ˉ ] \gamma\in[0,1/\bar\mu] γ ∈ [ 0 , 1 / μ ˉ ] 可逆. 显然γ = 0 \gamma=0 γ = 0 时这是成立的. 为证明这对于∀ γ ∈ ( 0 , 1 / μ ˉ ] \forall\gamma\in(0,1/\bar\mu] ∀ γ ∈ ( 0 , 1 / μ ˉ ] 亦成立, 设对某个z ∈ R n , w ∈ R m z\in\mathbb{R}^n,w\in\mathbb{R}^m z ∈ R n , w ∈ R m , 我们有[ ∇ x x 2 L ( x ∗ , λ ∗ ) ∇ h ( x ∗ ) − ∇ h ( x ∗ ) T − γ I ] [ z w ] = 0 \begin{bmatrix}\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*) & \nabla h(x^*)\\-\nabla h(x^*)^T & -\gamma I\end{bmatrix}\begin{bmatrix}z\\w\end{bmatrix}=0 [ ∇ x x 2 L ( x ∗ , λ ∗ ) − ∇ h ( x ∗ ) T ∇ h ( x ∗ ) − γ I ] [ z w ] = 0 或等价地, ∇ x x 2 L ( x ∗ , λ ∗ ) z + ∇ h ( x ∗ ) w = 0 , − ∇ h ( x ∗ ) T z − γ w = 0. \begin{aligned}\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)z+\nabla h(x^*)w&=0,\\-\nabla h(x^*)^Tz-\gamma w&=0.\end{aligned} ∇ x x 2 L ( x ∗ , λ ∗ ) z + ∇ h ( x ∗ ) w − ∇ h ( x ∗ ) T z − γ w = 0 , = 0 . 消去w w w , 得到[ ∇ x x 2 L ( x ∗ , λ ∗ ) − ( 1 / γ ) ∇ h ( x ∗ ) ∇ h ( x ∗ ) T ] z = 0. [\nabla^2_{xx}\mathcal{L}(x^*,\lambda^*)-(1/\gamma)\nabla h(x^*)\nabla h(x^*)^T]z=0. [ ∇ x x 2 L ( x ∗ , λ ∗ ) − ( 1 / γ ) ∇ h ( x ∗ ) ∇ h ( x ∗ ) T ] z = 0 . 对于γ = 1 / μ , μ ≥ μ ˉ \gamma=1/\mu,\mu\ge\bar\mu γ = 1 / μ , μ ≥ μ ˉ , 这就得出∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) z = 0 \nabla^2_{xx}\mathcal{L}_A(x^*,\lambda^*;\mu)z=0 ∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) z = 0 , 而由定理5知∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) > 0 , μ ≥ μ ˉ \nabla^2_{xx}\mathcal{L}_A(x^*,\lambda^*;\mu)>0,\mu\ge\bar\mu ∇ x x 2 L A ( x ∗ , λ ∗ ; μ ) > 0 , μ ≥ μ ˉ , 所以z = 0 ⇒ w = 0 z=0\Rightarrow w=0 z = 0 ⇒ w = 0 . 这就说明矩阵对所有γ ∈ [ 0 , 1 / μ ˉ ] \gamma\in[0,1/\bar\mu] γ ∈ [ 0 , 1 / μ ˉ ] 可逆.
由隐函数定理, 存在ϵ > 0 , δ > 0 \epsilon>0,\delta>0 ϵ > 0 , δ > 0 和定义在S ( K ; δ ) S(K;\delta) S ( K ; δ ) (其中K = { ( 0 , γ ) ∣ γ ∈ [ 0 , 1 / μ ˉ ] } K=\{(0,\gamma)\mid\gamma\in[0,1/\bar\mu]\} K = { ( 0 , γ ) ∣ γ ∈ [ 0 , 1 / μ ˉ ] } )上的连续可微函数x ^ ( t , γ ) , λ ^ ( t , γ ) \hat x(t,\gamma),\hat\lambda(t,\gamma) x ^ ( t , γ ) , λ ^ ( t , γ ) 使得( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , γ ) − λ ∗ ∣ 2 ) 1 / 2 < ϵ , ∀ ( t , γ ) ∈ S ( K ; δ ) , \left(|\hat{x}(t,\gamma)-x^*|^2+|\hat{\lambda}(t,\gamma)-\lambda^*|^2\right)^{1/2}<\epsilon,\forall(t,\gamma)\in S(K;\delta), ( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , γ ) − λ ∗ ∣ 2 ) 1 / 2 < ϵ , ∀ ( t , γ ) ∈ S ( K ; δ ) , 且满足∇ f [ x ^ ( t , γ ) ] − ∇ h [ x ^ ( t , γ ) ] λ ^ ( t , γ ) = 0 , h [ x ^ ( t , γ ) ] + t + γ λ ∗ − γ λ ^ ( t , γ ) = 0. \begin{aligned}\nabla f[\hat{x}(t,\gamma)]-\nabla h[\hat{x}(t,\gamma)]\hat{\lambda}(t,\gamma)&=0,\\h[\hat{x}(t,\gamma)]+t+\gamma\lambda^*-\gamma\hat\lambda(t,\gamma)&=0.\end{aligned} ∇ f [ x ^ ( t , γ ) ] − ∇ h [ x ^ ( t , γ ) ] λ ^ ( t , γ ) h [ x ^ ( t , γ ) ] + t + γ λ ∗ − γ λ ^ ( t , γ ) = 0 , = 0 . 显然δ , ϵ \delta,\epsilon δ , ϵ 的选取可使∇ h [ x ^ ( t , γ ) ] \nabla h[\hat{x}(t,\gamma)] ∇ h [ x ^ ( t , γ ) ] 秩为m m m 且∇ x x 2 L [ x ^ ( t , γ ) , λ ^ ( t , γ ) ] − μ ∇ h [ x ^ ( t , γ ) ] ∇ h [ x ^ ( t , γ ) ] T > 0 , ∀ ( t , γ ) ∈ S ( K ; δ ) , μ ≥ μ ˉ . \nabla^2_{xx}\mathcal{L}[\hat{x}(t,\gamma),\hat{\lambda}(t,\gamma)]-\mu\nabla h[\hat x(t,\gamma)]\nabla h[\hat x(t,\gamma)]^T>0,\forall (t,\gamma)\in S(K;\delta),\mu\ge\bar\mu. ∇ x x 2 L [ x ^ ( t , γ ) , λ ^ ( t , γ ) ] − μ ∇ h [ x ^ ( t , γ ) ] ∇ h [ x ^ ( t , γ ) ] T > 0 , ∀ ( t , γ ) ∈ S ( K ; δ ) , μ ≥ μ ˉ . 对μ ≥ μ ˉ , ∥ λ − λ ∗ ∥ ≤ δ μ \mu\ge\bar\mu,\Vert\lambda-\lambda^*\Vert\le\delta\mu μ ≥ μ ˉ , ∥ λ − λ ∗ ∥ ≤ δ μ , 定义x ( λ , μ ) = x ^ ( λ − λ ∗ μ , 1 μ ) , λ ~ ( λ , μ ) = λ ^ ( λ − λ ∗ μ , 1 μ ) . x(\lambda,\mu)=\hat{x}\left(\frac{\lambda-\lambda^*}{\mu},\frac{1}{\mu}\right),\quad\tilde\lambda(\lambda,\mu)=\hat\lambda\left(\frac{\lambda-\lambda^*}{\mu},\frac{1}{\mu}\right). x ( λ , μ ) = x ^ ( μ λ − λ ∗ , μ 1 ) , λ ~ ( λ , μ ) = λ ^ ( μ λ − λ ∗ , μ 1 ) . 于是对所有满足∥ λ − λ ∗ ∥ ≤ μ δ , μ ≥ μ ˉ \Vert\lambda-\lambda^*\Vert\le\mu\delta,\quad\mu\ge\bar{\mu} ∥ λ − λ ∗ ∥ ≤ μ δ , μ ≥ μ ˉ 的λ k , μ k \lambda^k,\mu_k λ k , μ k , 有∇ f [ x ( λ , μ ) ] − ∇ h [ x ( λ , c ) ] λ ~ ( λ , μ ) = 0 , λ ~ ( λ , μ ) = λ − μ h [ x ( λ , μ ) ] , ∇ x x 2 L [ x ( λ , μ ) , λ ~ ( λ , μ ) ] − μ ∇ h [ x ( λ , μ ) ] ∇ h [ x ( λ , μ ) ] T = ∇ x x 2 L A [ x ( λ , μ ) , λ ] > 0. \begin{aligned}\nabla f[x(\lambda,\mu)]-\nabla h[x(\lambda,c)]\tilde\lambda(\lambda,\mu)&=0,\\\tilde\lambda(\lambda,\mu)&=\lambda-\mu h[x(\lambda,\mu)],\\\nabla^2_{xx}\mathcal{L}[x(\lambda,\mu),\tilde\lambda(\lambda,\mu)]-\mu\nabla h[x(\lambda,\mu)]\nabla h[x(\lambda,\mu)]^T=\nabla^2_{xx}\mathcal{L}_A[x(\lambda,\mu),\lambda]&>0.\end{aligned} ∇ f [ x ( λ , μ ) ] − ∇ h [ x ( λ , c ) ] λ ~ ( λ , μ ) λ ~ ( λ , μ ) ∇ x x 2 L [ x ( λ , μ ) , λ ~ ( λ , μ ) ] − μ ∇ h [ x ( λ , μ ) ] ∇ h [ x ( λ , μ ) ] T = ∇ x x 2 L A [ x ( λ , μ ) , λ ] = 0 , = λ − μ h [ x ( λ , μ ) ] , > 0 . 这就证明了第三条. 而为了证明第一条和第二条, 对∇ f [ x ^ ( t , γ ) ] − ∇ h [ x ^ ( t , γ ) ] λ ^ ( t , γ ) = 0 , h [ x ^ ( t , γ ) ] + t + γ λ ∗ − γ λ ^ ( t , γ ) = 0. \begin{aligned}\nabla f[\hat{x}(t,\gamma)]-\nabla h[\hat{x}(t,\gamma)]\hat{\lambda}(t,\gamma)&=0,\\h[\hat{x}(t,\gamma)]+t+\gamma\lambda^*-\gamma\hat\lambda(t,\gamma)&=0.\end{aligned} ∇ f [ x ^ ( t , γ ) ] − ∇ h [ x ^ ( t , γ ) ] λ ^ ( t , γ ) h [ x ^ ( t , γ ) ] + t + γ λ ∗ − γ λ ^ ( t , γ ) = 0 , = 0 . 中的t , γ t,\gamma t , γ 求导, 得到[ ∇ t x ^ ( t , γ ) T ∇ γ x ^ ( t , γ ) T ∇ t λ ^ ( t , γ ) T ∇ γ λ ^ ( t , γ ) T ] = A ( t , γ ) [ O O − I λ ^ ( t , γ ) − λ ∗ ] , \begin{bmatrix}\nabla_t\hat x(t,\gamma)^T & \nabla_{\gamma}\hat x(t,\gamma)^T\\\nabla_t\hat\lambda(t,\gamma)^T & \nabla_{\gamma}\hat\lambda(t,\gamma)^T\end{bmatrix}=A(t,\gamma)\begin{bmatrix}O & O\\-I & \hat\lambda(t,\gamma)-\lambda^*\end{bmatrix}, [ ∇ t x ^ ( t , γ ) T ∇ t λ ^ ( t , γ ) T ∇ γ x ^ ( t , γ ) T ∇ γ λ ^ ( t , γ ) T ] = A ( t , γ ) [ O − I O λ ^ ( t , γ ) − λ ∗ ] , 其中A ( t , γ ) = [ ∇ x x 2 L [ x ^ ( t , γ ) , λ ^ ( t , γ ) ] − ∇ h [ x ^ ( t , γ ) ] ∇ h [ x ^ ( t , γ ) ] T − γ I ] − 1 . A(t,\gamma)=\begin{bmatrix}\nabla^2_{xx}\mathcal{L}[\hat x(t,\gamma),\hat\lambda(t,\gamma)] &- \nabla h[\hat x(t,\gamma)]\\\nabla h[\hat x(t,\gamma)]^T & -\gamma I\end{bmatrix}^{-1}. A ( t , γ ) = [ ∇ x x 2 L [ x ^ ( t , γ ) , λ ^ ( t , γ ) ] ∇ h [ x ^ ( t , γ ) ] T − ∇ h [ x ^ ( t , γ ) ] − γ I ] − 1 . 对∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] \forall(t,\gamma):|t|<\delta,\gamma\in[0,1/\bar\mu] ∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , 我们有[ x ^ ( t , γ ) − x ∗ λ ^ ( t , γ ) − λ ∗ ] = [ x ^ ( t , γ ) − x ^ ( 0 , 0 ) λ ^ ( t , γ ) − λ ^ ( 0 , 0 ) ] = ∫ 0 1 A ( ζ t , ζ γ ) [ O O − I λ ^ ( ζ t , ζ γ ) − λ ∗ ] [ t γ ]  d ζ . \begin{aligned}\begin{bmatrix}\hat x(t,\gamma)-x^*\\\hat\lambda(t,\gamma)-\lambda^*\end{bmatrix}&=\begin{bmatrix}\hat x(t,\gamma)-\hat x(0,0)\\\hat\lambda(t,\gamma)-\hat\lambda(0,0)\end{bmatrix}\\&=\int_0^1A(\zeta t,\zeta\gamma)\begin{bmatrix}O & O\\-I & \hat\lambda(\zeta t,\zeta\gamma)-\lambda^*\end{bmatrix}\begin{bmatrix}t\\\gamma\end{bmatrix}\,\mathrm{d}\zeta.\end{aligned} [ x ^ ( t , γ ) − x ∗ λ ^ ( t , γ ) − λ ∗ ] = [ x ^ ( t , γ ) − x ^ ( 0 , 0 ) λ ^ ( t , γ ) − λ ^ ( 0 , 0 ) ] = ∫ 0 1 A ( ζ t , ζ γ ) [ O − I O λ ^ ( ζ t , ζ γ ) − λ ∗ ] [ t γ ] d ζ . 由前面证得的矩阵对所有γ ∈ [ 0 , 1 / μ ˉ ] \gamma\in[0,1/\bar\mu] γ ∈ [ 0 , 1 / μ ˉ ] 可逆, 于是对充分小的δ \delta δ , A ( t , γ ) A(t,\gamma) A ( t , γ ) 在{ ( t , γ ) ∣ ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] } \{(t,\gamma)\mid|t|<\delta,\gamma\in[0,1/\bar\mu]\} { ( t , γ ) ∣ ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] } 上已知有界. 令M ˉ \bar M M ˉ 为界, 即∥ A ( t , γ ) ∥ ≤ M ˉ , ∀ ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] \Vert A(t,\gamma)\Vert\le\bar M,\forall|t|<\delta,\gamma\in[0,1/\bar\mu] ∥ A ( t , γ ) ∥ ≤ M ˉ , ∀ ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , 且进一步可取δ \delta δ 充分小以保证M ˉ δ < 1 \bar M\delta<1 M ˉ δ < 1 . 于是从上式得到( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ M ˉ ( ∣ t ∣ + max 0 ≤ ζ ≤ 1 ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ∣ γ ) . \begin{aligned}&\left(|\hat x(t,\gamma)-x^*|^2+|\hat\lambda(t,\gamma)-\lambda^*|^2\right)^{1/2}&\le\bar M\left(|t|+\max_{0\le\zeta\le1}|\hat\lambda(\zeta t,\zeta\gamma)-\lambda^*|\gamma\right).\end{aligned} ( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ M ˉ ( ∣ t ∣ + 0 ≤ ζ ≤ 1 max ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ∣ γ ) . 由此, 对∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , γ < δ \forall(t,\gamma):|t|<\delta,\gamma\in[0,1/\bar\mu],\gamma<\delta ∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , γ < δ ,∣ λ ^ ( t , γ ) − λ ∗ ∣ ≤ M ˉ ∣ t ∣ + M ˉ γ max 0 ≤ ζ ≤ 1 ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ∣ . |\hat\lambda(t,\gamma)-\lambda^*|\le\bar M|t|+\bar M\gamma\max_{0\le\zeta\le1}|\hat\lambda(\zeta t,\zeta\gamma)-\lambda^*|. ∣ λ ^ ( t , γ ) − λ ∗ ∣ ≤ M ˉ ∣ t ∣ + M ˉ γ 0 ≤ ζ ≤ 1 max ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ∣ . 将上式中的t , γ t,\gamma t , γ 换成ζ t , ζ γ , ζ ∈ [ 0 , 1 ] \zeta t,\zeta\gamma,\zeta\in[0,1] ζ t , ζ γ , ζ ∈ [ 0 , 1 ] , 得到max 0 ≤ ζ ≤ 1 ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ) ∣ ≤ M ˉ 1 − M ˉ γ ∣ t ∣ . \max_{0\le\zeta\le1}|\hat\lambda(\zeta t,\zeta\gamma)-\lambda^*)|\le\frac{\bar M}{1-\bar M\gamma}|t|. 0 ≤ ζ ≤ 1 max ∣ λ ^ ( ζ t , ζ γ ) − λ ∗ ) ∣ ≤ 1 − M ˉ γ M ˉ ∣ t ∣ . 组合起来就有, 对∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , γ < δ \forall(t,\gamma):|t|<\delta,\gamma\in[0,1/\bar\mu],\gamma<\delta ∀ ( t , γ ) : ∣ t ∣ < δ , γ ∈ [ 0 , 1 / μ ˉ ] , γ < δ ,( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ ( μ + μ 2 γ 1 − μ γ ) ∣ t ∣ ≤ M ˉ 1 − M ˉ δ ∣ t ∣ . \left(|\hat x(t,\gamma)-x^*|^2+|\hat\lambda(t,,\gamma)-\lambda^*|^2\right)^{1/2}\le\left(\mu+\frac{\mu^2\gamma}{1-\mu\gamma}\right)|t|\le\frac{\bar M}{1-\bar M\delta}|t|. ( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ ( μ + 1 − μ γ μ 2 γ ) ∣ t ∣ ≤ 1 − M ˉ δ M ˉ ∣ t ∣ . 令δ \delta δ 充分小, 我们有( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ 2 M ˉ ∣ t ∣ . \left(|\hat x(t,\gamma)-x^*|^2+|\hat\lambda(t,,\gamma)-\lambda^*|^2\right)^{1/2}\le2\bar M|t|. ( ∣ x ^ ( t , γ ) − x ∗ ∣ 2 + ∣ λ ^ ( t , , γ ) − λ ∗ ∣ 2 ) 1 / 2 ≤ 2 M ˉ ∣ t ∣ . 由t t t 的定义, 并令x ( λ , μ ) = x ^ ( t , γ ) , λ ~ ( λ , μ ) = λ ^ ( t , γ ) x(\lambda,\mu)=\hat x(t,\gamma),\tilde\lambda(\lambda,\mu)=\hat\lambda(t,\gamma) x ( λ , μ ) = x ^ ( t , γ ) , λ ~ ( λ , μ ) = λ ^ ( t , γ ) , 我们有对∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , μ > max { μ ˉ , 1 / δ } \forall(\lambda,\mu):|\lambda-\lambda^*|<\delta\mu,\mu>\max\{\bar\mu,1/\delta\} ∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , μ > max { μ ˉ , 1 / δ } , 有∣ x ( λ , μ ) − x ∗ ∣ ≤ 2 M ˉ ∣ λ − λ ∗ ∣ / μ , ∣ λ ~ ( λ , μ ) − λ ∗ ∣ ≤ 2 M ˉ ∣ λ − λ ∗ ∣ / μ . |x(\lambda,\mu)-x^*|\le2\bar M|\lambda-\lambda^*|/\mu,\quad|\tilde\lambda(\lambda,\mu)-\lambda^*|\le2\bar M|\lambda-\lambda^*|/\mu. ∣ x ( λ , μ ) − x ∗ ∣ ≤ 2 M ˉ ∣ λ − λ ∗ ∣ / μ , ∣ λ ~ ( λ , μ ) − λ ∗ ∣ ≤ 2 M ˉ ∣ λ − λ ∗ ∣ / μ . 令M = 2 M ˉ M=2\bar M M = 2 M ˉ 即可得第一条和第二条对∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , μ > max { μ ˉ , 1 / δ } \forall(\lambda,\mu):|\lambda-\lambda^*|<\delta\mu,\mu>\max\{\bar\mu,1/\delta\} ∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , μ > max { μ ˉ , 1 / δ } 是成立的. 而由于x ( ⋅ , ⋅ ) x(\cdot,\cdot) x ( ⋅ , ⋅ ) 连续可微, 因此我们也可找到M M M 使得第一条和第二条对∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , ≤ ˉ μ ≤ max { μ ˉ , 1 / δ } \forall(\lambda,\mu):|\lambda-\lambda^*|<\delta\mu,\bar\le\mu\le\max\{\bar\mu,1/\delta\} ∀ ( λ , μ ) : ∣ λ − λ ∗ ∣ < δ μ , ≤ ˉ μ ≤ max { μ ˉ , 1 / δ } 成立. 证毕.
此定理解释了增广Lagrange函数法的一些显著的性质.
∥ x k − x ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k \Vert x_k-x^*\Vert\le M\Vert\lambda^k-\lambda^*\Vert/\mu_k ∥ x k − x ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k 表示若λ k \lambda^k λ k 精确或惩罚因子μ k \mu_k μ k 很大, 则x k x_k x k 就离得x ∗ x^* x ∗ 很近. 因此这就给出了两种改进x k x_k x k 精确度的方法, 而二次罚函数法只给出了一种方法——增大惩罚因子μ k \mu_k μ k .
∥ λ k + 1 − λ ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k \Vert\lambda^{k+1}-\lambda^*\Vert\le M\Vert\lambda^k-\lambda^*\Vert/\mu_k ∥ λ k + 1 − λ ∗ ∥ ≤ M ∥ λ k − λ ∗ ∥ / μ k 则表明, 局部上我们可以通过选取充分大的μ k \mu_k μ k 保证乘子上精确度的提升.
无约束极小的二阶充分条件在第k k k 个子问题下依然是成立的, 因此使用标准的无约束极小技术是有望得到好的结果的.
4. 实用增广Lagrange函数法
本节我们讨论实用的增广Lagrange函数法, 特别地, 是要处理带不等式约束 的情形. 我们分别讨论三种方式——界约束重构、约束线性化重构和无约束重构 .
4.1 界约束重构
给定一般的非线性规划问题, 我们可以增加松弛变量s i s_i s i 将问题转化为带等式约束的问题, 即c i ( x ) − s i = 0 , s i ≥ 0 , ∀ i ∈ I . c_i(x)-s_i=0,\quad s_i\ge0,\quad\forall i\in\mathcal{I}. c i ( x ) − s i = 0 , s i ≥ 0 , ∀ i ∈ I . 而界约束l ≤ x ≤ u l\le x\le u l ≤ x ≤ u 则无需变换. 这样, 我们就可以将非线性规划写作min x ∈ R n f ( x ) , s u b j e c t  t o  c i ( x ) = 0 , i = 1 , 2 , … , m , l ≤ x ≤ u . \min\limits_{x\in\mathbb{R}^n}f(x),\quad\mathrm{subject\,to\,}c_i(x)=0,i=1,2,\ldots,m,l\le x\le u. x ∈ R n min f ( x ) , s u b j e c t t o c i ( x ) = 0 , i = 1 , 2 , … , m , l ≤ x ≤ u . 其中下界向量l l l 的一些分量可能为− ∞ -\infty − ∞ ; u u u 同理.
界约束重构的增广Lagrange函数法the bound-constrained Lagrangian methods, BCL methods 只包含等式约束, 即L A ( x , λ ; μ ) = f ( x ) − ∑ i = 1 m λ i c i ( x ) + μ 2 ∑ i = 1 m c i 2 ( x ) . \mathcal{L}_A(x,\lambda;\mu)=f(x)-\sum_{i=1}^m\lambda_ic_i(x)+\frac{\mu}{2}\sum_{i=1}^mc_i^2(x). L A ( x , λ ; μ ) = f ( x ) − i = 1 ∑ m λ i c i ( x ) + 2 μ i = 1 ∑ m c i 2 ( x ) . 而界约束则显式地加在子问题上, 于是有子问题min x L A ( x , λ ; μ ) , s u b j e c t  t o  ≤ x ≤ u . \min_x\mathcal{L}_A(x,\lambda;\mu),\quad\mathrm{subject\,to\,}\le x\le u. x min L A ( x , λ ; μ ) , s u b j e c t t o ≤ x ≤ u . 在此问题被近似求解后, 我们就更新乘子λ \lambda λ 和惩罚因子μ \mu μ , 之后重复.
一种求解带界约束重构非线性规划的技术是非线性投影梯度法 , 可见下一章. 考虑子问题的KKT条件, 我们会发现x x x 为子问题解的一阶必要条件是x − P ( x − ∇ x L A ( x , λ ; μ ) , l , u ) = 0 , x-P(x-\nabla_x\mathcal{L}_A(x,\lambda;\mu),l,u)=0, x − P ( x − ∇ x L A ( x , λ ; μ ) , l , u ) = 0 , 其中P ( g , l , u ) P(g,l,u) P ( g , l , u ) 为将g ∈ R n g\in\mathbb{R}^n g ∈ R n 投影至长方体[ l , u ] [l,u] [ l , u ] 上的投影算子, 其定义为P ( g , l , u ) i = { l i , g i ≤ l i , g i , g i ∈ ( l i , u i ) , u i , g i ≥ u i , i = 1 , 2 , … , n . P(g,l,u)_i=\left\{\begin{array}{ll}l_i, & g_i\le l_i,\\g_i, & g_i\in(l_i,u_i),\\u_i, & g_i\ge u_i,\end{array}\right.i=1,2,\ldots,n. P ( g , l , u ) i = ⎩ ⎨ ⎧ l i , g i , u i , g i ≤ l i , g i ∈ ( l i , u i ) , g i ≥ u i , i = 1 , 2 , … , n . 以下为算法表述.
算法4 (Bound-Constrained Lagrangian Method)
Choose an initial point x 0 x_0 x 0 and initial multipliers λ 0 \lambda^0 λ 0 ;
Choose convergence tolerances η ∗ \eta_* η ∗ and w ∗ w_* w ∗ ;
Set μ 0 = 10 , w 0 = 1 μ 0 , η 0 = 1 / μ 0 0.1 \mu_0=10,w_0=1\mu_0,\eta_0=1/\mu_0^{0.1} μ 0 = 1 0 , w 0 = 1 μ 0 , η 0 = 1 / μ 0 0 . 1 ;
for k = 0 , 1 , 2 , … k=0,1,2,\ldots k = 0 , 1 , 2 , … \quad\quad Find an approximate solution x k x_k x k of the subproblem such that∥ x k − P ( x k − ∇ x L A ( x k , λ k ; μ k ) , l , u ) ∥ ≤ w k ; \Vert x_k-P(x_k-\nabla_x\mathcal{L}_A(x_k,\lambda^k;\mu_k),l,u)\Vert\le w_k; ∥ x k − P ( x k − ∇ x L A ( x k , λ k ; μ k ) , l , u ) ∥ ≤ w k ; \quad\quad if ∥ c ( x k ) ∥ ≤ η k \Vert c(x_k)\Vert\le\eta_k ∥ c ( x k ) ∥ ≤ η k \quad\quad\quad\quad (test for convergence )\quad\quad\quad\quad if ∥ c ( x k ) ∥ ≤ η ∗ \Vert c(x_k)\Vert\le\eta_* ∥ c ( x k ) ∥ ≤ η ∗ and ∥ x k − P ( x k − ∇ x L A ( x k , λ k ; μ k ) , l , u ) ∥ ≤ w ∗ \Vert x_k-P(x_k-\nabla_x\mathcal{L}_A(x_k,\lambda^k;\mu_k),l,u)\Vert\le w_* ∥ x k − P ( x k − ∇ x L A ( x k , λ k ; μ k ) , l , u ) ∥ ≤ w ∗ \quad\quad\quad\quad\quad\quad stop with approximate solution x k x_k x k ;\quad\quad\quad\quad end (if)\quad\quad\quad\quad (update multipliers, tighten tolerances )\quad\quad\quad\quad λ k + 1 = λ k − μ k c ( x k ) \lambda^{k+1}=\lambda^k-\mu_kc(x_k) λ k + 1 = λ k − μ k c ( x k ) ;\quad\quad\quad\quad μ k + 1 = μ k \mu_{k+1}=\mu_k μ k + 1 = μ k ;\quad\quad\quad\quad η k + 1 = η k / μ k + 1 0.9 \eta_{k+1}=\eta_k/\mu_{k+1}^{0.9} η k + 1 = η k / μ k + 1 0 . 9 ;\quad\quad\quad\quad w k + 1 = w k / μ k + 1 w_{k+1}=w_k/\mu_{k+1} w k + 1 = w k / μ k + 1 ;\quad\quad else\quad\quad\quad\quad (increase penalty parameter, tighten tolerances )\quad\quad\quad\quad λ k + 1 = λ k \lambda^{k+1}=\lambda^k λ k + 1 = λ k ;\quad\quad\quad\quad μ k + 1 = 100 μ k \mu_{k+1}=100\mu_k μ k + 1 = 1 0 0 μ k ;\quad\quad\quad\quad η k + 1 = 1 / μ k + 1 0.1 \eta_{k+1}=1/\mu_{k+1}^{0.1} η k + 1 = 1 / μ k + 1 0 . 1 ;\quad\quad\quad\quad w k + 1 = 1 / μ k + 1 w_{k+1}=1/\mu_{k+1} w k + 1 = 1 / μ k + 1 ;\quad\quad end (if)
end (for)
算法主要分岔位于近似求解子问题后, 算法将验证约束违反是否充分下降, 即验证条件∥ c ( x k ) ∥ ≤ η k . \Vert c(x_k)\Vert\le\eta_k. ∥ c ( x k ) ∥ ≤ η k . 若此条件成立, 则不改变惩罚因子, 而Lagrange乘子估计则按公式更新, 在下一次迭代前减小w k , η k w_k,\eta_k w k , η k . 若条件不成立, 则增大惩罚因子保证下一次迭代求解子问题时会更加“关照”约束违反度. 此时就不更新Lagrange乘子, 毕竟主要任务是改进可行性.
算法4中出现的常数0.1,0.9,100在某种程度上可以任取. 软件LANCELOT使用带信赖域的投影梯度法 求解界约束非线性子问题. 此时, 投影梯度法构建增广Lagrange函数L A \mathcal{L}_A L A 的一个二次模型 , 并通过近似求解以下信赖域问题得到迭代步d d d :min d 1 2 d T [ ∇ x x 2 L ( x k , λ k ) + μ k A k T A k ] d + ∇ x L A ( x k , λ k ; μ k ) T d s u b j e c t  t o l ≤ x k + d ≤ u , ∥ d ∥ ∞ ≤ Δ , \begin{array}{rl}\min\limits_d & \frac{1}{2}d^T\left[\nabla^2_{xx}\mathcal{L}(x_k,\lambda^k)+\mu_kA_k^TA_k\right]d+\nabla_x\mathcal{L}_A(x_k,\lambda^k;\mu_k)^Td\\\mathrm{subject\,to} & l\le x_k+d\le u,\quad\Vert d\Vert_{\infty}\le\Delta,\end{array} d min s u b j e c t t o 2 1 d T [ ∇ x x 2 L ( x k , λ k ) + μ k A k T A k ] d + ∇ x L A ( x k , λ k ; μ k ) T d l ≤ x k + d ≤ u , ∥ d ∥ ∞ ≤ Δ , 其中A k = A ( x k ) A_k=A(x_k) A k = A ( x k ) , Δ \Delta Δ 为信赖域半径. 我们可以将信赖域约束写作界约束− Δ e ≤ d ≤ Δ e -\Delta e\le d\le\Delta e − Δ e ≤ d ≤ Δ e . 求解此子问题的算法每步迭代由两个阶段组成:
第一阶段, 做投影梯度线搜索以决定d d d 的哪些分量需设为它们的边界值.
第二阶段, 使用CG极小化子问题, 其中不再牵涉第一阶段中被固定的分量.
这有点类似于第十六章 二次规划的投影梯度法. 第二阶段相当于在可行多面体的某个面上做的极小化. 这一算法的好处在于, 无需计算KKT矩阵或者约束Jacobi矩阵A k A_k A k 的分解. CG迭代仅需计算矩阵-向量乘积.
需要说明的是, Lagrange函数的Hessian阵∇ x x 2 L ( x k , λ k ) \nabla^2_{xx}\mathcal{L}(x_k,\lambda^k) ∇ x x 2 L ( x k , λ k ) 可以用基于BFGS或SR1更新公式的拟牛顿近似矩阵替代. LANCELOT包也被设计成可充分利用目标函数与约束中的部分可分结构 , 以高效计算Lagrange函数的Hessian阵或拟牛顿近似矩阵, 可见第七章 .
4.2 约束线性化重构
约束线性化重构的增广Lagrange函数法linearly constrained Lagragian methods, LCL methods 的主要想法是, 在线性化 原约束的限制下, 极小化Lagrange函数(或增广Lagrange函数), 产生迭代步. 对于上一小节中的一般非线性规划min x ∈ R n f ( x ) , s u b j e c t  t o  c i ( x ) = 0 , i = 1 , 2 , … , m , l ≤ x ≤ u , \min_{x\in\mathbb{R}^n}f(x),\quad\mathrm{subject\,to\,}c_i(x)=0,i=1,2,\ldots,m,l\le x\le u, x ∈ R n min f ( x ) , s u b j e c t t o c i ( x ) = 0 , i = 1 , 2 , … , m , l ≤ x ≤ u , LCL方法的子问题就具有以下形式:min x F k ( x ) s u b j e c t  t o c ( x k ) + A k ( x − x k ) = 0 , l ≤ x ≤ u . \begin{array}{rl}\min\limits_x & F_k(x)\\\mathrm{subject\,to} & c(x_k)+A_k(x-x_k)=0,\quad l\le x\le u.\end{array} x min s u b j e c t t o F k ( x ) c ( x k ) + A k ( x − x k ) = 0 , l ≤ x ≤ u . 对F k ( x ) F_k(x) F k ( x ) 我们有许多不同的选择. 早期的LCL方法定义F k ( x ) = f ( x ) − ∑ i = 1 m λ i k c ˉ i k ( x ) , F_k(x)=f(x)-\sum_{i=1}^m\lambda_i^k\bar{c}_i^k(x), F k ( x ) = f ( x ) − i = 1 ∑ m λ i k c ˉ i k ( x ) , 其中λ k \lambda^k λ k 为当前的Lagrange乘子估计, c ˉ i k ( x ) \bar{c}_i^k(x) c ˉ i k ( x ) 为c i ( x ) c_i(x) c i ( x ) 和它在x k x_k x k 处线性化的差函数 , 即c ˉ i k ( x ) = c i ( x ) − c i ( x k ) − ∇ c i ( x k ) T ( x − x k ) . \bar{c}_i^k(x)=c_i(x)-c_i(x_k)-\nabla c_i(x_k)^T(x-x_k). c ˉ i k ( x ) = c i ( x ) − c i ( x k ) − ∇ c i ( x k ) T ( x − x k ) . 可以证明, 随着x k x_k x k 收敛于解x ∗ x^* x ∗ , 对应于子问题中等式约束的Lagrange乘子将收敛于最优乘子 . 因此, 我们可设λ k \lambda^k λ k 为前一次迭代中对应于等式约束的Lagrange乘子.
现在LCL方法定义F k F_k F k 为增广Lagrange函数F k ( x ) = f ( x ) − ∑ i = 1 m λ i k c ˉ i k ( x ) + μ 2 ∑ i = 1 m [ c ˉ i k ( x ) ] 2 . F_k(x)=f(x)-\sum_{i=1}^m\lambda_i^k\bar{c}_i^k(x)+\frac{\mu}{2}\sum_{i=1}^m[\bar c_i^k(x)]^2. F k ( x ) = f ( x ) − i = 1 ∑ m λ i k c ˉ i k ( x ) + 2 μ i = 1 ∑ m [ c ˉ i k ( x ) ] 2 . 这一定义与之前相比, 在实际中具有更好的全局收敛效果 .
可以看到, 上述F k F_k F k 与之前定义的增广Lagrange函数具有很大的相似度, 而不同在于原本的约束c i ( x ) c_i(x) c i ( x ) 被替换为了c ˉ i k ( x ) \bar c_i^k(x) c ˉ i k ( x ) , 后者仅捕捉c i c_i c i 二阶及以上的信息 . 线性化约束重构子问题与原本的增广Lagrange函数子问题的不同则在于, 前者要求新迭代点x x x 精确满足等式约束的线性化, 同时又将约束的线性部分从目标函数中抽出(这就是用c ˉ i k \bar c_i^k c ˉ i k 换c i c_i c i ). 类似于算法4的程序可用于更新惩罚因子μ \mu μ 以及调整容忍限.
因c ˉ i k ( x ) \bar c_i^k(x) c ˉ i k ( x ) 在x = x k x=x_k x = x k 处梯度为0, 于是∇ F k ( x k ) = ∇ f ( x k ) \nabla F_k(x_k)=\nabla f(x_k) ∇ F k ( x k ) = ∇ f ( x k ) . 我们也可验证F k F_k F k 的Hessian与Lagrange函数或增广Lagrange函数的Hessian也是紧密相关的. 基于这些性质, 线性化重构子问题就类似于第十八章中的SQP子问题.
MINOS包使用增广形式的模型函数, 用既约投影梯度法求解线性化子问题, 其中对F k F_k F k 的既约Hessian用拟牛顿近似. 为确保等式约束Lagrange乘子的精度, MINOS中每一次子问题的求解需要更多的目标函数值和约束函数(以及它们的梯度)值. 这要多于SQP算法或内点法. 不过, 这样一来所需求解的子问题数一般比其他方法要少一些.
4.3 无约束化重构
利用近邻点proximal point 方法, 我们可以得到带不等式约束问题的无约束化重构增广Lagrange函数子问题. 为说明简便, 假设问题无等式约束, 于是我们可以将原问题等价地写作无约束优化问题min x ∈ R n F ( x ) , \min\limits_{x\in\mathbb{R}^n}F(x), x ∈ R n min F ( x ) , 其中F ( x ) = max λ ≥ 0 { f ( x ) − ∑ i ∈ I λ i c i ( x ) } = { f ( x ) , x  i s  f e a s i b l e , ∞ , o t h e r w i s e . F(x)=\max_{\lambda\ge0}\left\{f(x)-\sum_{i\in\mathcal{I}}\lambda_ic_i(x)\right\}=\left\{\begin{array}{ll}f(x), & x\,is\,feasible,\\\infty, & otherwise.\end{array}\right. F ( x ) = λ ≥ 0 max { f ( x ) − i ∈ I ∑ λ i c i ( x ) } = { f ( x ) , ∞ , x i s f e a s i b l e , o t h e r w i s e . 由于F F F 不光滑, 直接极小化F F F 并不实际. 于是再次想到用光滑的近似模型. 我们以F ^ ( x ; λ k , μ k ) \hat F(x;\lambda^k,\mu_k) F ^ ( x ; λ k , μ k ) 代替F F F , 前者依赖于惩罚因子μ k \mu_k μ k 和Lagrange乘子估计λ k \lambda^k λ k . 其定义为F ^ ( x ; λ k , μ k ) = max λ ≥ 0 { f ( x ) − ∑ i ∈ I λ i c i ( x ) − 1 2 μ k ∑ i ∈ I ( λ i − λ i k ) 2 } . \hat F(x;\lambda^k,\mu_k)=\max_{\lambda\ge0}\left\{f(x)-\sum_{i\in\mathcal{I}}\lambda_ic_i(x)-\frac{1}{2\mu_k}\sum_{i\in\mathcal{I}}(\lambda_i-\lambda_i^k)^2\right\}. F ^ ( x ; λ k , μ k ) = λ ≥ 0 max { f ( x ) − i ∈ I ∑ λ i c i ( x ) − 2 μ k 1 i ∈ I ∑ ( λ i − λ i k ) 2 } . 其中最后一项会对λ \lambda λ 任何偏离前一次估计λ k \lambda^k λ k 的移动做出惩罚, 即, 它会使新的乘子λ \lambda λ 与前一次估计λ k \lambda^k λ k 尽可能地相近 . 因F ^ \hat F F ^ 本身的定义就是一个关于λ \lambda λ 的界约束二次规划, 因此我们有显式解 λ i = { 0 , − c i ( x ) + λ i k / μ k ≤ 0 , λ i k − μ k c i ( x ) , o t h e r w i s e . \lambda_i=\left\{\begin{array}{ll}0, & -c_i(x)+\lambda_i^k/\mu_k\le0,\\\lambda_i^k-\mu_kc_i(x), & otherwise.\end{array}\right. λ i = { 0 , λ i k − μ k c i ( x ) , − c i ( x ) + λ i k / μ k ≤ 0 , o t h e r w i s e . 注意到这可以用来更新乘子. 将此代入F ^ \hat F F ^ 得到F ^ ( x ; λ k , μ k ) = f ( x ) + ∑ i ∈ I ψ ( c i ( x ) , λ i k ; μ k ) , \hat F(x;\lambda^k,\mu_k)=f(x)+\sum_{i\in\mathcal{I}}\psi(c_i(x),\lambda_i^k;\mu_k), F ^ ( x ; λ k , μ k ) = f ( x ) + i ∈ I ∑ ψ ( c i ( x ) , λ i k ; μ k ) , 其中函数ψ \psi ψ 具有三个标量参数:ψ ( t , σ ; μ ) = d e f { − σ t + μ 2 t 2 , t − σ / μ ≤ 0 , − 1 2 μ σ 2 , o t h e r w i s e . \psi(t,\sigma;\mu)\xlongequal{def}\left\{\begin{array}{ll}-\sigma t+\frac{\mu}{2}t^2, & t-\sigma/\mu\le0,\\-\frac{1}{2\mu}\sigma^2, & otherwise.\end{array}\right. ψ ( t , σ ; μ ) d e f { − σ t + 2 μ t 2 , − 2 μ 1 σ 2 , t − σ / μ ≤ 0 , o t h e r w i s e . 因此, 对x x x 极小化F ^ ( x ; λ k , μ k ) \hat F(x;\lambda^k,\mu_k) F ^ ( x ; λ k , μ k ) 的x k x_k x k , 并依前面的显式表达更新Lagrange乘子. 比较框架3, 我们会发现F F F 扮演了L A \mathcal{L}_A L A 的角色. 本节中介绍的格式就是等式约束增广Lagrange函数法向不等式约束情形的推广 . 不过, 由于其性质还未得到验证, 此无约束化重构并不如界约束重构和约束线性化重构一般, 具有常用软件包的内嵌.
5. 不同算法的比较与软件介绍
在约束数目较小时, 人们通常使用二次罚函数法 . 事实上, 有时仅需对一个较大的μ \mu μ 做一次Q ( x ; μ ) Q(x;\mu) Q ( x ; μ ) 的极小化. 若μ \mu μ 选得不够好, 得到的解就可能不会很精确. 由于求解无约束优化的主要软件并不内嵌二次罚函数法, 因此很少有关于更新惩罚因子、调整容忍限以及选取初始点的讨论.
尽管二次罚函数更直观、简洁, 但第3节与第4节的增广Lagrange函数法通常更受青睐 . 子问题的求解通常并不太难, 且乘子估计的引入避免了病态子问题的出现. 不过二次罚函数仍然作为许多算法正则化(regularization)的一种重要手段 , 譬如SQP.
一般情形的l 1 l_1 l 1 罚函数法由Fletcher在上世纪八十年代提出. 由于它与SQP算法的共同点, 它也被称为Sl 1 l_1 l 1 QP算法.最近, 软件包KNITRO加入了使用线性规划子问题的l 1 l_1 l 1 罚函数法. 这两种方法我们将在下一章讨论.
近些年l 1 l_1 l 1 罚函数受到了大量的关注. 它已被成功用于求解一些困难的问题 , 例如带互补约束的数学规划(mathematical programs with complementarity constraints, MPCCs), 其中约束不满足标准的约束规范. 将这些问题约束吸收为罚项而不是线性化, 之后后再使用诸如SQP或内点法, 我们能够扩展这些其他方法的应用面 . 软件包SNOPT在SQP算法中使用l 1 l_1 l 1 罚函数法作为一种防护策略 , 以防二次模型不可行或无界, 亦或有无界乘子.
增广Lagrange函数法由于其简洁性, 已受多年关注. MINOS和LANCELOT则是实施增广Lagrange函数法最好的软件包 . 它们也适用于大型非线性规划问题. 一般层面上, MINOS的LCL和LANCELOT的BCL有共同的性质. 但它们在计算迭代步的子问题和求解子问题的技术上具有较大差异:
MINOS使用既约空间法处理线性化约束, 并且使用(稠密)拟牛顿近似代替Lagrange函数的Hessian. 因此, MINOS对具有较小自由度的问题是最合适的 .
LANCELOT则更适用于约束较少的情形 . 正如第4节所说, LANCELOT无需约束Jacobi矩阵A A A 的分解, 这也增强了它在大型问题上的应用能力. 它同时也提供多种Hessian近似和预处理子的选择.
PENNON软件包也基于增广Lagrange函数法, 它在处理半定矩阵约束时较有优势 .
界约束重构和无约束重构Lagrange函数法的缺陷是, 它们增加了约束的平方, 让问题变得更复杂 . 这时, 我们只有通过极小化增广Lagrange函数才能获得可行性的改善 . 相反, LCL则在约束上计算牛顿类的迭代步, 稳步改善可行性 . 因此, 不难预见, 在带线性约束的问题上MINOS比LANCELOT更具优势 .
从第3节的增广Lagrange函数也可构造光滑精确罚函数(smooth exact penalty functions) , 但这些就过于复杂了. 例如我们提过等式约束的Fletcher光滑精确罚函数:ϕ F ( x ; μ ) = f ( x ) − λ ( x ) T c ( x ) + μ 2 ∑ i ∈ E c i ( x ) 2 . \phi_F(x;\mu)=f(x)-\lambda(x)^Tc(x)+\frac{\mu}{2}\sum_{i\in\mathcal{E}}c_i(x)^2. ϕ F ( x ; μ ) = f ( x ) − λ ( x ) T c ( x ) + 2 μ i ∈ E ∑ c i ( x ) 2 . 其中Lagrange乘子估计λ ( x ) \lambda(x) λ ( x ) 为最小二乘近似:λ ( x ) = [ A ( x ) A ( x ) T ] − 1 A ( x ) ∇ f ( x ) = ( A T ) † ∇ f ( x ) . \lambda(x)=[A(x)A(x)^T]^{-1}A(x)\nabla f(x)=\left(A^T\right)^{\dagger}\nabla f(x). λ ( x ) = [ A ( x ) A ( x ) T ] − 1 A ( x ) ∇ f ( x ) = ( A T ) † ∇ f ( x ) . 这里的ϕ F \phi_F ϕ F 光滑且精确. ϕ F \phi_F ϕ F 的缺点在于需要计算λ ( x ) \lambda(x) λ ( x ) . 当A ( x ) A(x) A ( x ) 不满秩时λ ( x ) \lambda(x) λ ( x ) 不是唯一的, 且当A ( x ) A(x) A ( x ) 接近奇异时λ \lambda λ 的估计可能会变得很差 .
Han S P , Mangasarian O L . Exact penalty functions in nonlinear programming[J]. Mathematical Programming, 1979, 17(1):251-269. ↩︎
Han S P , Mangasarian O L . Exact penalty functions in nonlinear programming[J]. Mathematical Programming, 1979, 17(1):251-269. ↩︎