KKT條件理解


在學習過程中,一直糾結於KKT條件到底是怎么來的,然后翻閱資料,發現這個博主寫的很好,就給引用過來了。

 

一、帶等式約束的優化問題

帶等式約束的優化問題是指我們有個求最大值或者最小值的目標函數,同時,針對該目標函數我們還有一些約束條件,這些約束條件是等式。

該問題的形式化描述如下:

 

 

 

 

求解上述問題一般有兩種方法,一種是消元法,就是把這些等式聯立,然后求解即可。也就是多元一次方程組的求解了。之類不多說了。另一種方法是拉格朗日乘數法,這是高等數學里面提供的一種方法。這是一種尋找多元函數在其變量受到一個或者多個條件的約束的時候,求極值的方法。該方法將一個有nn個變量和kk個等式約束條件的最優化問題,轉換成一個有n+kn+k個變量的方程組求解問題。該方法會引入一組未知數,這些未知數稱為拉格朗日乘子(或者算子、乘數等)。對上式進行拉格朗日乘數法轉換得到一個新的函數:

 

 

 

這個時候對上述轉換后的方程求解其極值點會包含原問題所有的極值點,但是不保證每個極值點都是原問題的極值點。這個理論上有證明這里忽略了。因此,當轉換后的公式只包含一個極值點的時候,我們可以對上市求偏導后聯立方程,得到的結果就是原來結果的極值點。上式中的未知數包含了所有的xx和\lambdaλ:

 

 

​​

拉格朗日乘數法有很強的幾何意義,也可以用來解釋為何這樣做可以求出最終結果。

二、帶不等式約束的最優化問題

與拉格朗日乘法類似,如果最優化問題的約束是不等式,那么我們可以使用KKT條件來求解。KKT條件就是拉格朗日乘數法在帶不等式約束優化問題上的推廣

假設我們有如下的最優化問題:

 

 

那么該問題的拉格朗日函數為:

 

 KKT條件是指一組條件,它是一組解成為原問題最優解的必要條件。如果原問題是凸問題,那么這個條件也是充分條件。K.K.T.條件包括平穩條件、互補松弛條件、對偶可行性條件、原問題可行性條件等幾類。上述問題的KKT條件如下:

 

 

 

原文轉自:https://www.datalearner.com/blog/1051551326031522


免責聲明!

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



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