1. 程式人生 > >最優化理論與KKT條件

最優化理論與KKT條件

看著內容挺好的,轉載一下

原文:http://jacoxu.com/?p=78


1. 最優化理論(Optimization Theory)

最優化理論是研究函式在給定一組約束條件下的最小值(或者最大值)的數學問題. 一般而言, 一個最優化問題具有如下的基本形式:

min.:f(x)

s.t.:gi(x)0,i=1,2,...,p,hj(x)=0,k=1,2,...,q,xΩRn

其中.

f(x)為目標函式, gi(x)0,i=1,2,,p 為不等式約束條件, hj(x)=0,k=1,2,,q為等式約束條件.

在很多情況下, 不等式約束條件可以通過引入新的變數而轉化為等式約束條件, 因此最優化問題的一般形式可以簡化為僅僅包含等式約束條件的形式

min.:f(x)s.t.:g(x)=0

最優化問題可以根據目標函式和約束條件的型別進行分類:

1). 如果目標函式和約束條件都為變數的線性函式, 稱該最優化問題為線性規劃;

2). 如果目標函式為變數的二次函式, 約束條件為變數的線性函式, 稱該最優化問題為二次規劃;

3). 如果目標函式或者約束條件為變數的非線性函式, 稱該最優化問題為非線性規劃.

2. KKT(Karush-Kuhn-Tucker)

KTT條件是指在滿足一些有規則的條件下, 一個非線性規劃(Nonlinear Programming)問題能有最優化解法的一個必要和充分條件. 這是一個廣義化拉格朗日乘數的成果. 一般地, 一個最優化數學模型的列標準形式參考開頭的式子, 所謂 Karush-Kuhn-Tucker 最優化條件,就是指上式的最優點x必須滿足下面的條件:

1). 約束條件滿足gi(x)0,i=1,2,,p, 以及,hj(x)=0,j=1,2,,q

2). f(x)+i=1pμigi(x)+j=1qλjhj(x)=0, 其中

為梯度運算元;

3). λj0且不等式約束條件滿足μi0,μigi(x)=0,i=1,2,,p

KKT最優化條件是Karush[1939]以及Kuhn和Tucker[1951]先後獨立發表出來的. 這組最優化條件在Kuhn和Tucker發表之後才逐漸受到重視, 因此許多書只記載成「Kuhn-Tucker 最優化條件 (Kuhn-Tucker conditions)」.

KKT條件第一項是說最優點x必須滿足所有等式及不等式限制條件, 也就是說最優點必須是一個可行解, 這一點自然是毋庸置疑的. 第二項表明在最優點x, f必須是gihj的線性組合, μiλj都叫作拉格朗日乘子. 所不同的是不等式限制條件有方向性, 所以每一個μi都必須大於或等於零, 而等式限制條件沒有方向性,所以λj沒有符號的限制, 其符號要視等式限制條件的寫法而定.

3. 關於duality

一位博友對duality的總結很通俗易懂, http://blog.pluskid.org/?p=702 這裡就不再重複複述了.