二次規劃問題的KKT 條件求解方法

專欄文章彙總


文章結構如下:

1: 等式約束優化問題

2: 不等式約束優化問題

3: 一個例子


注:本文來自臺灣周志成老師《線性代數》及其博客

Karush-Kuhn-Tucker (KKT)條件是非線性規劃(nonlinear programming)最佳解的必要條件。KKT條件將Lagrange乘數法(Lagrange multipliers)所處理涉及等式的約束優化問題推廣至不等式。在實際應用上,KKT條件(方程組)一般不存在代數解,許多優化算法可供數值計算選用。這篇短文從Lagrange乘數法推導KKT條件並舉一個簡單的例子說明解法。


1: 等式約束優化問題

給定一個目標函數 [公式] ,我們希望找到 [公式] ,在滿足約束條件 [公式] 的前提下,使得 [公式] 有最小值。這個約束優化問題記爲

[公式]
爲方便分析,假設 [公式][公式] 是連續可導函數。Lagrange乘數法是等式約束優化問題的典型解法。定義Lagrangian函數

[公式]
其中 [公式] 稱爲Lagrange乘數。Lagrange乘數法將原本的約束優化問題轉換成等價的無約束優化問題

[公式]
計算 [公式][公式][公式] 的偏導數並設爲零,可得最優解的必要條件:

[公式]
其中第一式爲定常方程式(stationary equation),第二式爲約束條件。解開上面 [公式] 個方程式可得 [公式] 的stationary point [公式] 以及 [公式] 的值(正負數皆可能)。


2: 不等式約束優化問題

接下來我們將約束等式 [公式] 推廣爲不等式 [公式] 。考慮這個問題

[公式]
約束不等式 [公式] 稱爲原始可行性(primal feasibility),據此我們定義可行域(feasible region) [公式] 。假設 [公式] 爲滿足約束條件的最佳解,分開兩種情況討論:

(1) [公式] ,最佳解位於 [公式] 的內部,稱爲內部解(interior solution),這時約束條件是無效的(inactive);

(2) [公式] ,最佳解落在 [公式] 的邊界,稱爲邊界解(boundary solution),此時約束條件是有效的(active)。

這兩種情況的最佳解具有不同的必要條件。

(1)內部解:在約束條件無效的情形下, [公式] 不起作用,約束優化問題退化爲無約束優化問題,因此駐點 [公式] 滿足 [公式][公式]

(2)邊界解:在約束條件有效的情形下,約束不等式變成等式 [公式] ,這與前述Lagrange乘數法的情況相同。我們可以證明駐點 [公式] 發生於 [公式] ,換句話說,存在 [公式] 使得 [公式] ,但這裏 [公式] 的正負號是有其意義的。因爲我們希望最小化 [公式] ,梯度 [公式] (函數 [公式] 在點 [公式] 的最陡上升方向)應該指向可行域 [公式] 的內部(因爲你的最優解最小值是在邊界取得的),但 [公式] 指向 [公式] 的外部(即 [公式] 的區域,因爲你的約束是小於等於0),因此 [公式] ,稱爲對偶可行性(dual feasibility)

因此,不論是內部解或邊界解, [公式] 恆成立,稱爲互補鬆弛性(complementary slackness)。整合上述兩種情況,最佳解的必要條件包括Lagrangian函數 [公式] 的定常方程式、原始可行性、對偶可行性,以及互補鬆弛性:

[公式]
這些條件合稱爲Karush-Kuhn-Tucker (KKT)條件。如果我們要最大化 [公式] 且受限於 [公式] ,那麼對偶可行性要改成 [公式]

上面結果可推廣至多個約束等式與約束不等式的情況。考慮標準約束優化問題(或稱非線性規劃):

[公式]

定義Lagrangian 函數

[公式]
其中 [公式] 是對應 [公式] 的Lagrange乘數, [公式] $是對應 [公式] 的Lagrange乘數(或稱KKT乘數)。KKT條件包括

[公式]

注:感謝評論區 追夢的lin 提出,在使用KKT條件時需要滿足Regularity conditions (or constraint qualifications),維基在第三部分有了介紹:Karush-Kuhn-Tucker conditions 。比較常見的是Linearity constraint qualification (LCQ),即約束條件是仿射函數。

3: 一個例子

考慮這個問題

[公式]
其中 [公式] 爲實數。寫出Lagrangigan函數

[公式]
KKT 方程組如下:

[公式]
求偏導可得 [公式][公式] ,分別解出 [公式][公式] 。代入約束等式 [公式][公式] 。合併上面結果,

[公式]
最後再加入約束不等式 [公式][公式] 。底下分開三種情況討論。

(1) [公式] :不難驗證 [公式] 滿足所有的KKT條件,約束不等式是無效的, [公式] 是內部解,目標函數的極小值是 [公式]

(2) [公式] :如同1, [公式] 滿足所有的KKT條件, [公式] 是邊界解,因爲 [公式]

(3) [公式] :這時約束不等式是有效的, [公式] ,則 [公式][公式] ,目標函數的極小值是 [公式]


4: 參考文獻

周志成:《線性代數》,國立交通大學出版社

Karush-Kuhn-Tucker (KKT) 條件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章