最優化方法三:等式約束優化、不等式約束優化、拉格朗日乘子法證明、KKT條件

1 等式約束優化問題

等式約束問題如下:

                                                 

求解方法包括:消元法、拉格朗日乘子法。

1、消元法

通過等式約束條件消去一個變量,得到其他變量關於該變量的表達式代入目標函數,轉化爲無約束的極值求解問題,具體過程如下:

                                             

得到無約束的極值問題即可通過:一階導數=0求駐點,Hession矩陣判定極值點。

2、拉格朗日乘子法

消元法大部分情況下很難適用,比如等式約束爲高次耦合非線性,難以消去其中一個變量。拉格朗日乘子法適用於多維、高次、非線性約束方程。

拉格朗日乘子法(二維問題):

                                            

三個方程三個未知數,聯立該方程即可求解最優的x_1,x_2

拉格朗日乘子法(多維問題):

                                           

得到的方程組,方程個數與未知變量個數相同,可以求解得出。

2 不等式約束優化問題與KKT條件

求解思路是對非線性約束條件引入鬆弛變量,轉化爲等式約束,二維問題如下:     

注意,引入鬆弛變量v^2是爲了確保非負,這樣滿足約束函數小於等於0的條件。

多維問題如下:

                                         

引入鬆弛變量的作用是爲了將不等式約束轉化爲等式約束,原理是:鬆弛變量是等高線負值,將不等式約束的取值面改爲等式約束的取值曲線,但要滿足不等式約束條件。

KKT條件:上述方法問題在於求解出來的解可能不滿足原不等式約束條件,即解落於參數區域外。下面介紹通用的KKT條件:

KKT條件給出了不等式約束條件的優化問題,存在極值點的必要條件,即通過判定該條件來判定解是否存在,並利用KKT條件求解極值。必要條件如下: 

                                    

KKT條件證明:

                                    

KKT條件應用說明:

                                     

3 拉格朗日乘子法證明

如果極值點存在,則極值點滿足目標函數在約束曲線的切線方向方向導數爲0,如下:

                                           

爲什麼?因爲方向導數代表了曲面梯度在曲線切向方向的分量,梯度是曲面在該點上升的方向,如果曲面梯度與曲線切線向量乘積不爲0,即梯度與曲線切線不垂直,則在該曲線上,沿着負梯度方向走,必然能找見更小的點。

同時易得:極值點滿足約束函數再約束曲線切線方向的導數爲0(二維函數),如下:

 

則對比上述兩個方程切線矢量的係數可以得到:

                                            

                                            

4 KKT計算實例

對於如下非線性規劃問題:

                                            

                                            

                                           

 

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