CanChen
ggchen@mail.ustc.edu.cn
講完了二次線性規划,這節課主要是講了一般的非線性約束最優化怎么解。
等式約束-Lagrange-Newton
先列Lagrange方程:
然后用牛頓法求方程的根(這個迭代又被稱為Newton-Raphson迭代):
Sequential Quadratic Programming
這個問題是最泛化的優化問題了,先看看怎么根據KT條件寫出原始優化問題
這一步實際上是把一般的優化問題,轉化成了多個二次函數優化問題,循環求解。對於每個子問題,需要采用active set方法,每次只考慮等式約束,根據具體情況添加或者刪除約束。
罰函數法
實際中總是逐漸增大罰因子,求解無約束問題。這種通過求解一系列無約束問題來獲得約束最優化問題的最優解,稱之為序貫無約束極小化技術。
罰函數經典三引理:
這里的引理1是關鍵,其實也很好證明,就是根據兩個x分別是最優解,得到兩個不等式,簡單處理一下就行了。
三個引理刻畫了罰函數法動態變化的過程。
其中,第三個引理就是說,我迭代到一步,不想迭代了,這個時候實際上得到的解是把定義域擴大了之后的解。
乘子罰函數
這里實際上就是目標函數,加朗格朗日項,加罰項。使用罰函數,必須要求罰因子趨於無窮大,然而這在實際中很難辦到。這里引入朗格朗日項,讓罰因子不用趨於無窮,就能得到結果。本質是就是將乘子罰函數在迭代中尋找和拉格朗日函數的關系,從而將帶約束問題轉化為無約束問題。
這里給出了帶約束問題的二階充分條件,非常牛逼,之前只是必要條件。
障礙函數法
這個實際上通過無限限制邊界,將有約束問題轉化為無約束問題。
內點法
這個實際上是改變互補松弛條件,sz=u>0, 所以s>0,所以一定是內點。本質上還是在求解KT系統,把不等式改造成等式,還在內部,這個比較野蠻。后面凸優化就是干這個。
障礙函數法和內點法本質是一樣的。