在學習過程中,一直糾結於KKT條件到底是怎么來的,然后翻閱資料,發現這個博主寫的很好,就給引用過來了。
一、帶等式約束的優化問題
帶等式約束的優化問題是指我們有個求最大值或者最小值的目標函數,同時,針對該目標函數我們還有一些約束條件,這些約束條件是等式。
該問題的形式化描述如下:
求解上述問題一般有兩種方法,一種是消元法,就是把這些等式聯立,然后求解即可。也就是多元一次方程組的求解了。之類不多說了。另一種方法是拉格朗日乘數法,這是高等數學里面提供的一種方法。這是一種尋找多元函數在其變量受到一個或者多個條件的約束的時候,求極值的方法。該方法將一個有nn個變量和kk個等式約束條件的最優化問題,轉換成一個有n+kn+k個變量的方程組求解問題。該方法會引入一組未知數,這些未知數稱為拉格朗日乘子(或者算子、乘數等)。對上式進行拉格朗日乘數法轉換得到一個新的函數:
這個時候對上述轉換后的方程求解其極值點會包含原問題所有的極值點,但是不保證每個極值點都是原問題的極值點。這個理論上有證明這里忽略了。因此,當轉換后的公式只包含一個極值點的時候,我們可以對上市求偏導后聯立方程,得到的結果就是原來結果的極值點。上式中的未知數包含了所有的xx和\lambdaλ: