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

相關文章
相關標籤/搜索