最優化方法三:等式約束優化、不等式約束優化、拉格朗日乘子法證明、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計算實例

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

                                             

                                             

                                            


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM