Numerical Optimization Ch17. Penalty and Augmented Lagragian Methods

第十七章: 惩罚函数法与增广Lagrange函数法


一些重要的求解约束优化的方法 将原问题替换为一系列子问题, 在子问题中原本的约束被替换成加在目标函数上的项. 本章我们介绍属于此类的三种方法.

  • 二次罚函数法the quadratic penalty method是在目标函数上增加每个约束违反度平方的某个倍数. 这种方法比较简单、直观. 尽管它有许多的缺陷, 但实际中还是被经常使用.
  • 非光滑精确罚函数法the nonsmooth exact penalty methods是用一个(而不是一系列)无约束问题替代原本的约束问题. 使用这种罚函数, 我们可以仅利用一次无约束极小化找到解, 但随之而来, 非光滑性可能会制造一些麻烦. 此类的常见罚函数比如 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}. 对此, 二次罚函数为 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), 其中 μ > 0 \mu>0 惩罚因子(penalty parameter). 当 μ \mu 趋向于 \infty , 我们就对约束违反惩罚得愈加猛烈. 直观上, 我们很容易想到要构作一列 { μ k } : μ , k \{\mu_k\}:\mu\uparrow\infty,k\to\infty , 并对每个 k k 求得 Q ( x ; μ k ) Q(x;\mu_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} 作为算法初始的迭代点. 对于合适的 { μ k } \{\mu_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, 其解为 ( 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. 下图为 μ = 1 \mu=1 时, Q Q 的等高线图. 从图中可见 Q Q 有一差不多是 ( 1.1 , 1.1 ) T (-1.1,-1.1)^T 的极小点, 也有一接近 ( 0.3 , 0.3 ) T (0.3,0.3)^T 的极大点.
Contours of Q for mu = 1, contour spacing 0.5

而下图则对应 μ = 10 \mu=10 , 因此不再可行域 x 1 2 + x 2 2 = 2 x_1^2+x_2^2=2 的点会遭受比上图更大的惩罚. 此图中 Q Q 的极小点愈加靠近解. 同时还有一局部极大点在 ( 0 , 0 ) T (0,0)^T 附近, 且 Q Q 在出可行域后就迅速地趋向于 \infty .
Contours of Q for mu = 10, contour spacing 2

但实际情形一般没有例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, 其解为 ( 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}. 定义二次罚函数为 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, 这里 [ y ] = max ( y , 0 ) [y]^-=\max(-y,0) . 此时 Q Q 没有光只有等式约束的惩罚函数光滑, 也不如目标函数和约束函数光滑. 例如若有一个不等式约束为 x 1 0 x_1\ge0 , 则 min ( 0 , x 1 ) 2 \min(0,x_1)^2 就没有连续的二阶导数, Q Q 就不再二阶连续可微.

1.2 算法框架

基于二次罚函数的一般算法框架如下.

框架1 (Quadratic Penalty Method)
Given μ 0 > 0 \mu_0>0 , a nonnegative sequence { τ k } \{\tau_k\} with τ k 0 \tau_k\to0 , and a starting point x 0 s x_0^s ;
for k = 0 , 1 , 2 , k=0,1,2,\ldots
\quad\quad Find an approximate minimizer x k x_k of Q ( ; μ k ) Q(\cdot;\mu_k) , starting at x k s x_k^s , and terminating when x Q ( x ; μ k ) τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k ;
\quad\quad if final convergence test satisfied
\quad\quad\quad\quad stop with approximate solution x k x_k ;
\quad\quad end (if)
\quad\quad Choose new penalty parameter μ k + 1 > μ k \mu_{k+1}>\mu_k ;
\quad\quad Choose new starting point x k + 1 s x_{k+1}^s ;
end (for)

我们可以基于在每次迭代极小化罚函数的困难度自适应地选取惩罚因子序列 { μ k } \{\mu_k\} :

  • 当极小化 Q ( x ; μ k ) Q(x;\mu_k) 对某一 k k 来说比较昂贵, 我们就选取比 μ k \mu_k 稍微大一点的 μ k + 1 \mu_{k+1} , 比如 μ k + 1 = 1.5 μ k \mu_{k+1}=1.5\mu_k .
  • 若我们比较容易就能找到 Q ( x ; μ k ) Q(x;\mu_k) 的近似极小点, 我们就尝试更大幅度的增长, 比如 μ k + 1 = 10 μ k \mu_{k+1}=10\mu_k .

框架1的收敛理论给予了非负序列 { τ k } \{\tau_k\} 选取充分的自由度: 仅需 τ k 0 \tau_k\to0 , 以保证算法随着迭代, 其精度在不断提升.

正如之前讨论过的, 我们无法保证 x Q ( x ; μ k ) τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k 一定会成立. 因此实际的实施必须包括当约束违反度下降不够快, 或者当迭代点趋向于发散时, 增大惩罚因子(或存储初始点)的防护措施.

当只有等式约束时, Q ( x ; μ k ) Q(x;\mu_k) 光滑, 因此可使用无约束极小化的算法求得近似解 x k x_k . 不过, 当 μ k \mu_k 变大, Q ( x ; μ k ) Q(x;\mu_k) 的极小化会变得愈发困难(求解系统的条件数变大), 除非我们使用特殊的手段计算搜索方向.

一方面, Hessian阵 x x 2 Q ( x ; μ k ) \nabla_{xx}^2Q(x;\mu_k) 会在极小点附近变得愈发病态. 这一点就足以使得许多无约束算法(如拟牛顿法、共轭梯度法)效果变差. 而诸如牛顿法这般对Hessian条件数不敏感的算法, 则可能会遭遇较大 μ k \mu_k 带来的另外两个问题:

  1. 在我们求解线性系统计算牛顿步时, 病态的 x x 2 Q ( x ; μ k ) \nabla_{xx}^2Q(x;\mu_k) 可能会引发数值不稳定. 后面我们会指出, 这种影响并不严重, 我们可以重构牛顿方程.
  2. 即使 x x 很接近 Q ( ; μ k ) Q(\cdot;\mu_k) 的极小点, 但对于 Q ( x ; μ k ) Q(x;\mu_k) 的二阶Taylor展开仅在 x x 的一个小邻域内才是合适的. 这一点可从第二张图看出来, 其中 Q Q 在极小点附近的等高线呈现出一种"香蕉"状而不是二次函数典型的椭圆型. 由于牛顿法是基于二次模型的, 因此其产生的迭代步可能无法快速收敛到 Q ( x ; μ k ) Q(x;\mu_k) 的极小点. 对此, 我们需要谨慎地选择初始点 x k + 1 s x_{k+1}^s 或直接设置 x k + 1 s = x k x_{k+1}^s=x_k , 并选取 μ k + 1 \mu_{k+1} 只比 μ k \mu_k 大一点.

1.3 二次罚函数法的收敛性

我们在下面两个定理里介绍二次罚函数方法的一些收敛性质. 我们将讨论限制在等式约束问题.

对于第一个结果, 我们假设对每个 μ k \mu_k , 罚函数 Q ( x ; μ k ) Q(x;\mu_k) 都有(有限个)极小点.

定理1 x k x_k 为框架1中 Q ( x ; μ k ) Q(x;\mu_k) 的精确全局极小点, 且 μ k \mu_k\uparrow\infty . 则序列 { x k } \{x_k\} 的每个聚点都是原问题的全局解.

证明: 令 x ˉ \bar{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}. 由于对每个 k k , x k x_k 极小化 Q ( ; μ k ) Q(\cdot;\mu_k) , 于是 Q ( x k ; μ k ) Q ( x ˉ ; μ k ) Q(x_k;\mu_k)\le Q(\bar{x};\mu_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}). 重新整理可得 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)]. 假设 x x^* { x k } \{x_k\} 的一个聚点, 因此存在 { 1 , 2 , , n , } \{1,2,\ldots,n,\ldots\} 的无穷子列 K \mathcal{K} 使得 lim k K x k = x . \lim_{k\to\mathcal{K}}x_k=x^*. 对上面不等式两边取极限 k , k K k\to\infty,k\in\mathcal{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. 因此 c i ( x ) = 0 , i E c_i(x^*)=0,i\in\mathcal{E} , 从而 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}). 由于 x x^* 可行, 且其函数值不大于全局解 x ˉ \bar{x} 处的函数值, 因此 x x^* 也是全局解. 证毕.

此结论对带不等式的问题也成立. 但由于需要我们求每个子问题的全局极小点, 因此此性质一般并不能成立. 下一结论则允许我们不精确(但精确度要提升)极小化 Q ( ; μ k ) Q(\cdot;\mu_k) . 相较于定理1, 它表示 { x k } \{x_k\} 可能会收敛到不可行点或是KKT点. 它也说明了在一定情形下, μ k c i ( x k ) -\mu_kc_i(x_k) 可以当做Lagrange乘子 λ i \lambda_i^* 的估计. 这一点对于我们在第3节讨论增广Lagrange函数法时比较重要.

为建立定理, 我们需乐观地假设对所有 k k , x Q ( x ; μ k ) τ k \Vert\nabla_xQ(x;\mu_k)\Vert\le\tau_k 都会成立.

定理2 设框架1中的容忍限序列和惩罚因子序列满足 τ k 0 , μ k \tau_k\to0,\mu_k\uparrow\infty , 则若序列 { x k } \{x_k\} 的聚点 x x^* 不可行, 它就是函数 c ( x ) 2 \Vert c(x)\Vert^2 的稳定点. 若聚点 x x^* 可行且约束梯度 c i ( x ) \nabla c_i(x^*) 线性无关, 则 x x^* 为原问题的KKT点. 于此, 对任一收敛到 x x^* 的子列, 即 K : lim k K x k = x \forall\mathcal{K}:\lim_{k\in\mathcal{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}, 这里 λ \lambda^* 为满足等式约束原问题KKT条件的乘子.

证明: 对 Q ( x ; μ k ) Q(x;\mu_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), 于是从终止条件, 我们有 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. 利用三角不等式, 有 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]. x x^* 为迭代点序列的聚点. 于是存在无穷指标子列 K \mathcal{K} 使得 lim k K x k = x \lim_{k\in\mathcal{K}}x_k=x^* . 对上式取 k , k K k\to\infty,k\in\mathcal{K} 的极限, 可得 i E c i ( x ) c i ( x ) = 0. \sum_{i\in\mathcal{E}}c_i(x^*)\nabla c_i(x^*)=0. 我们可能有 c i ( x ) 0 c_i(x^*)\ne0 (若约束梯度 c i ( x ) \nabla c_i(x^*) 线性相关), 但这起码说明 x x^* c ( x ) 2 \Vert c(x)\Vert^2 的稳定点.

c i ( x ) \nabla c_i(x^*) 线性无关, 则 c i ( x ) = 0 , i E c_i(x^*)=0,\forall i\in\mathcal{E} , 因此 x x^* 可行. 于是KKT条件之可行性条件成立. 记约束的Jacobi阵为 A A ,向量 μ k c ( x k ) -\mu_kc(x_k) λ k \lambda_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. k K k\in\mathcal{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) 并整理可得 λ 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 , k K k\to\infty,k\in\mathcal{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^*). 又由前面取极限可知 f ( x ) A ( x ) T λ = 0 , \nabla f(x^*)-A(x^*)^T\lambda^*=0, 于是 λ \lambda^* 满足KKT条件之稳定性条件. 所以, x x^* 为原问题的KKT点, 且由唯一的Lagrange乘子 λ \lambda^* . 证毕.

需重复强调的是, 若聚点 x x^* 不可行, 则它至少是 c ( x ) 2 \Vert c(x)\Vert^2 的稳定点. 牛顿类的算法总是会陷在这种类型的点. 这有点像我们在第十一章中讨论非线性方程组的情形. 在原问题不可行时, 我们往往可以观察到二次罚函数算法收敛于 c ( x ) 2 \Vert c(x)\Vert^2 的稳定点或极小点.

若考虑不等式约束, 则 x x^* 为函数 [ c ( x ) ] 2 \Vert [c(x)]^-\Vert^2 的稳定点, 其中 [ 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. 但所谓的KKT点不一定成立, 因为此处无法估计乘子的正负.

1.4 病态与重构

我们现在来验证Hessian阵 x x 2 Q ( x ; μ k ) \nabla^2_{xx}Q(x;\mu_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 接近 Q ( ; μ k ) Q(\cdot;\mu_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 ) \nabla^2_{xx}Q(x;\mu_k) 就接近于以下两个部分的和:

  • (Lagrange项)独立于 μ k \mu_k 的矩阵; 和
  • 秩为 E |\mathcal{E}| , 且非零特征值与 μ k \mu_k 同阶的矩阵.

由于约束的数量 E |\mathcal{E}| 通常小于 n n , 因此第二项奇异. 因此整个矩阵的某些特征值会趋近常数, 而其他的则与 μ k \mu_k 同阶. 因 μ k \mu_k\to\infty , 通过条件数可知, x x 2 Q ( x ; μ k ) \nabla^2_{xx}Q(x;\mu_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). 一般来说, 不论使用何种直接计算手段, 此病态系统都会导致在 p p 上的巨大计算误差. 基于同样的原因, 除非有预处理的策略, 否则迭代计算的方法也不会有较好的表现.

不过, 我们可以重构以上牛顿方程以避免病态. 引入一个新的变量 ζ : = μ A ( x ) p \zeta:=\mu A(x)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}. x x x x^* 较近时, 此系统的系数矩阵并不会有与 μ k \mu_k 同阶的大特征值. 事实上, 当 μ k \mu_k\to\infty , 可将此系统的系数矩阵近似看做 [ 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 , λ ) \nabla^2_{xx}\mathcal{L}(x,\lambda^*) 非奇异, 利用分块矩阵的初等变换, 可得 [ 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}, 此阵的行列式不为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) x x 2 L ( x , λ ) \nabla_{xx}^2\mathcal{L}(x,\lambda^*) (也即 μ k c i ( x ) \mu_kc_i(x) λ i -\lambda_i^* )的近似可能不会很好, 所以这两个系统可能都不会得出一个比较好的搜索方向 p p . 这一事实可能就说明二次模型并不是 Q ( ; μ k ) Q(\cdot;\mu_k) 的一个合适的近似模型, 而牛顿步可能本身就不适合作为搜索方向. 后续我们会讨论针对以上的补救措施.

如果要通过求解重构的问题计算迭代步, 我们需要求解一个 n + E n+|\mathcal{E}| 维而不是 n n 维的系统. 后面在下一章中讨论逐步二次规划(SQP)时我们也得求解类似的系统. 事实上,

  • μ k \mu_k 很大, 上述重构可视作SQP迭代步的正则化, 其中的 ( 1 / μ k ) I -(1/\mu_k)I 使得迭代矩阵即使 A ( x ) A(x) 行亏秩时依然是非奇异的.
  • μ k \mu_k 较小, 则重构系统的第二行说明计算出的迭代步并不能较好地满足约束的线性化. 我们是不希望这种情况发生的, 因为这样一来迭代步就不能朝着可行性改进多少, 从而全局表现不够高效.
  • { μ k } \{\mu_k\} 趋于无穷过快, 我们就又可能丧失线性化满足时获得超线性收敛速度的机会. 具体讨论可见下一章.

总之, 重构系统可以视作无约束极小在二次惩罚函数 Q ( ; μ k ) Q(\cdot;\mu_k) 上的应用, 也可以视作SQP方法的一个变体.

2. 非光滑精确罚函数法

有些罚函数是精确的(exact), 即对于特定的惩罚因子, 仅做一次极小化即可得到非线性规划问题的精确解. 这一性质是很吸引人的, 因为它使得罚函数方法不依赖于惩罚因子的更新策略. 第1节介绍的二次罚函数并不是精确的, 这是因为对任何 μ \mu 的正值, 其极小点一般都不是原非线性规划的解. 本节我们讨论非光滑精确罚函数法.
对一般非线性规划的一种广受欢迎的非光滑罚函数是 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)]^-. 其称谓源于它使用的惩罚项是 μ \mu 乘以约束违反度的 l 1 l_1 范数. 注意 ϕ 1 ( x ; μ ) \phi_1(x;\mu) 在某些 x x 上并不可微.

下面的定理揭示了 l 1 l_1 罚函数的精确性.

定理3 x x^* 为非线性规划问题的严格局部解, 且其满足一阶必要性条件, 有Lagrange乘子 λ i , i E I \lambda_i^*,i\in\mathcal{E}\cup\mathcal{I} . 于是 x x^* ϕ 1 ( x ; μ ) , μ > μ \phi_1(x;\mu),\forall\mu>\mu^* 的局部极小点, 其中 μ = λ = max i E I λ i . \mu^*=\Vert\lambda^*\Vert_{\infty}=\max_{i\in\mathcal{E}\cup\mathcal{I}}|\lambda_i^*|. 另外, 若在 x x^* 还满足二阶充分性条件, 且 μ > μ \mu>\mu^* , 则 x x^* ϕ 1 ( x ; μ ) \phi_1(x;\mu) 的严格局部极小点.

证明可见 Han S P和Mangasarian O L1的定理4.4.

粗略地说, 在非线性规划的解 x x^* 处, 任何向不可行域的移动都会被严重地惩罚, 这样使得函数值会大于 ϕ 1 ( x ; μ ) = f ( x ) \phi_1(x^*;\mu)=f(x^*) (即方向导数都大于0), 强迫 ϕ ( ; μ ) \phi(\cdot;\mu) 的极小点落在 x x^* .

例2 考虑如下单变量问题: min x , s u b j e c t   t o   x 1 , \min x,\quad\mathrm{subject\,to\,}x\ge1, 其解为 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 \mu>1 , 罚函数有极小点 x = 1 x^*=1 , 但在 μ < 1 \mu<1 时却是个单调递增函数.
Penalty function for mu>1 and mu<1

由于罚函数法通过直接极小化罚函数起作用, 所以我们需要刻画 ϕ 1 \phi_1 的稳定点. 即使 ϕ 1 \phi_1 不可微, 但它沿任何方向具有方向导数 D ( ϕ 1 ( x ; μ ) ; p ) D(\phi_1(x;\mu);p) .

定义1 一点 x ^ R n \hat{x}\in\mathbb{R}^n 是罚函数 ϕ 1 ( x ; μ ) \phi_1(x;\mu) 的稳定点, 若 D ( ϕ 1 ( x ^ ; μ ) ; p ) 0 , p R n . D(\phi_1(\hat{x};\mu);p)\ge0,\quad\forall p\in\mathbb{R}^n. 类似地, x ^ \hat{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)]^- 的稳定点, 若 D ( h ( x ^ ) ; p ) 0 , p R n D(h(\hat{x});p)\ge0,\forall p\in\mathbb{R}^n . 若一点不可行但对不可行度量 h h 是稳定的, 则我们称其为不可行稳定点(infeasible stationary point).

对于例2中的函数, 我们在 x = 1 x^*=1 D ( ϕ 1 ( x ; μ ) ; p ) = { p , p 0 , ( 1 μ ) p , p &lt; 0. D(\phi_1(x^*;\mu);p)=\left\{\begin{array}{ll}p, &amp; p\ge0,\\(1-\mu)p, &amp; p&lt;0.\end{array}\right. 于是当 μ &gt; 1 \mu&gt;1 , D ( ϕ 1 ( x ; μ ) ; p ) 0 , p R D(\phi_1(x^*;\mu);p)\ge0,\forall p\in\mathbb{R} .

下面的结论则在一定程度上弥补了定理3的不足, 即证明了反方向: 在一定条件下, ϕ 1 ( x ; μ ) \phi_1(x;\mu) 的稳定点对应了原非线性规划的KKT点.

定理4 x ^ \hat{x} 为罚函数 ϕ 1 ( x ; μ ) , μ &gt; μ ^ &gt; 0 \phi_1(x;\mu),\forall\mu&gt;\hat{\mu}&gt;0 的稳定点. 若 x ^ \hat{x} 为原非线性规划的可行点, 则其为KKT点. 若不可行, 则是不可行稳定点.

证明: 若 x ^ \hat{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]^-,??? 其中 A ( x ^ ) \mathcal{A}(\hat{x}) 为在 x ^ \hat{x} 处的积极集. 考虑任何线性化可行方向集 F ( x ^ ) \mathcal{F}(\hat{x}) 中的 p p , 由 F ( x ^ ) \mathcal{F}(\hat{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, 因此由稳定性假设, 我们有 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}). 利用Farkas引理, 可得存在 λ ^ i : λ ^ i 0 , i I A ( x ^ ) \hat{\lambda}_i:\hat{\lambda}_i\ge0,i\in\mathcal{I}\cap\mathcal{A}(\hat{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}). 这说明 x ^ \hat{x} 为KKT点.

x ^ \hat{x} 不可行, 反证, 假设存在 p p 使得 D ( h ( x ^ ) ; p ) &lt; 0 D(h(\hat{x});p)&lt;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充分大, 可推得 f ( x ^ ) T p \nabla f(\hat{x})^Tp\to\infty , 矛盾! 证毕.

例3 再考虑例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|. 可推得 f ( x ^ ) T p \nabla f(\hat{x})^Tp\to\infty , 矛盾! 证毕.

例3 再考虑例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|. 下图描绘了 ϕ ( x ; 2 ) \phi(x;2) 的等高线, 其极小点可见即为原问题的解 x = ( 1 , 1 ) T x^*=(-1,-1)^T .
Contours of phi(x;mu) for mu=2, contour spacing 0.5

事实上由定理3, 我们知道对于所有的 μ &gt; λ = 0.5 \mu&gt;|\lambda^*|=0.5

相关文章
相关标签/搜索