拉格朗日乘子法和KKT條件
1. 拉格朗日乘子(Lagrange Multiplier)法
假設函數z=f(x,y),求該函數的最小值,如果沒有約束條件,則可以表示為minf(x,y),要求出minf(x,y)很簡單,根據Fermat定理,分別對x和y求導數並讓其等於0,如果是凸函數,則求出來的點就是函數取得最小值的點,該點的函數值即f(x,y)的最小值。
如果有等式約束條件g(x,y)=c,g(x,y)=c為(x,y)平面上的一條曲線,想象f(x,y)的等高線下降,當等高線和g(x,y)=c有交點時,滿足約束條件,但肯定不是最優值,因為還可以繼續下降。只有當下降到f(x,y)和g(x,y)=c相切時,這時兩條曲線的切點處的f(x,y)的值才是最優值,如下圖所示。
由上圖可知,在切點處,兩條曲線擁有共線的法向量,所以兩條曲線的梯度(Gradient)成正比,即,相當於把目標函數和約束條件寫成一個函數,然後對該函數求導等於0,即可求得最優值。如果約束條件有多個,方法也是一樣的。
所以,對於這類問題可以表示為:
解決的方法是將目標函數和約束條件寫成一個式子:
分別對xi求導數並讓其等於0,可求得最優值。
2. KKT條件
以上是等式約束,如果是不等式約束的話,問題變成了:
可以想象,多個約束條件構成了一個區域,這個區域就是自變量的範圍。最優值肯定在這個區域的某一個頂點處取得,此時和這個頂點相關的約束條件等於0,和這個頂點不相關的約束條件(即不需要考慮的約束條件)不等於0。如下圖所示,g1(x)、g2(x)、g3(x)圍成了一個區域,最優值在g1(x)和g3(x)的交點處取得,此時g2(x)不需要考慮,則g1(x)和g3(x)的值為0,前面的系數可以不為0,g2(x)不為0,前面的系數必須為0。
因此,同樣的可以把目標函數和約束條件寫成一個式子:
對於,要麽b=0,要麽g(xi)=0,所以必須有。
如果同時存在等式約束和不等式約束,則
那麽最優值必須滿足以下3個條件:
(1) L對xi求導等於0;
(2);
(3)。
以上就是KKT條件。
拉格朗日乘子法和KKT條件