概述
對於非線性約束最優化問題,序列二次規劃和內點法是兩類非常重要的算法,也是大規模問題的利器。序列二次規劃方法將原始問題分解爲一系列二次規劃問題逐步求解;內點法將將約束添加到目標函數中轉換爲一系列無約束問題逐步求解。兩類算法共同思想將原始問題轉換爲可求解問題。
1. 序列二次規劃概述
2. 內點法概述
3.總結
序列二次規劃(SQP)概述
序列二次規劃(Sequential Quadratic Programming)對於非線性約束最優化問題是一個非常有效的算法,將原始問題劃分爲一系列二次規劃的子問題進行求解。
本節中介紹的SQP都屬於激活集算法,有兩種類型的激活-SQP算法,一是IQP,將原始問題轉換爲一系列不等式約束二次規劃;二是EQP,將原始問題轉換爲一系列等式約束二次規劃問題。
大部分的SQP問題分爲兩個步驟進行求解,第一步通過局部方法尋找有效集;二是通過LineSearch或者TR進行最優化。
局部SQP方法
等式約束問題
問題描述如下
思路1,KKT條件
原始問題的拉格朗日方程爲
對於等式方程問題可以採用牛頓方程進行求解,迭代步驟如下
思路2,根據當前點進行建模
對於當前點
求解框架
不等式約束問題
對於不等式約束,同理可以進行泰勒展開。
IPQ 和 EPQ
- IPQ:顧名思義將原始轉換爲一系列帶有不等式約束的二次規劃問題,該方法在實際中效果非常好,問題是對於一般的二次規劃問題求解複雜度較高,雖然可以將該次的最優解作爲下一次子問題的初始解,仍然存在熱啓動問題。
- EPQ:每次只考慮激活集,即等式約束。相對於IPQ每個子問題相對比較容易求解。
其他
最優化步驟中可以通過線搜索或者信賴域方法進行求解。
內點法
內點法和SQP方法類似對於求解大規模非線性約束非常有效。另外內點法(Interior-Point)和障礙方法(barrier methods)具有相同含義。
兩類轉換思路
內點法可以求解的問題,可以轉換爲
連續方法(continuation methods)
根據KKT條件,上述問題可以轉換
障礙方法(barrier methods)
問題可以轉換爲
最原始的轉換方式,直接轉換爲
其他
- 內點法可以從對偶問題中獲取關鍵思路
- 可以結合線搜索和信賴域方法進行求解
總結
通過本節學習可以瞭解序列二次規劃和內點法求解非線性約束最優化問題的關鍵思路。