概述
二次規劃問題是目標函數是二次的,並且約束是線性的問題。在非線性約束最優化問題中非常重要,通常作爲其他問題的子步驟存在。
1.二次規劃問題
2.二次規劃求解算法
3. 總結
二次規劃問題
標準形式
二次規劃問題的標識形式如下
二次規劃求解算法
等式約束二次規劃
在標準形式下,去掉不等式約束,可以得到等式約束二次規劃問題的標準形式。
KKT條件
根據KKT條件可以得到,最優解應該滿足的一階條件爲
當某搜索步驟x時,根據
1.當
ZTGZ 是半正定時,KKT矩陣非奇異,等式約束最優化問題有唯一的解(x∗,λ∗) ,其中Z是矩陣A的零空間,即AZ=0
2. 並且該解是全局最優解
求解算法
因此等式約束最優化問題轉換爲求解上述KKT矩陣對應的等式,常用的方法包括
1. 直接求解方程,高斯消元法等
2. Schur-Complement方法
3. 零空間方法
以上方法都是利用代數方法直接求解方程。對於問題規模比較大的問題可以採用迭代方法,例如CG或者Krylov方法,相對後者比較有效。
不等式約束問題
對於不等式約束問題,常見的思路包括有效集方法、內點法和梯度映射等方法。
KKT條件
根據二次規劃的標準形式可以得到,對應的拉格朗日方程爲
KKT條件爲
滿足上述KKT條件的解
(λ∗,x∗) 是全局最優解
有效集算法
該算法和線性規劃的單純形算法類似,每次固定一個工作集合
1. 對於每次迭代過程
2. 問題轉換等式約束最優化問題,根據求解算法得到搜索方向
3. 由於不等式約束還要滿足其他不等式,因此下一個搜索點
4. 綜合所有的不等式約束,可以得到
5. 當某個
6. 當搜索方向p=0時,說明當前點爲最優點,從而計算對應的拉格朗日因子,如果全部大於0,則滿足所有的KKT條件,否則去掉該約束能夠繼續減小目標函數值。
綜上該算法僞代碼如下
實際考慮點
1.和單純性算法類似,在算法開始,需要找到一個可行解,尋找方法類似,可以構造PhraseI或者PhraseII問題。
2.往工作集
3. 當找到最優點時,但是不滿足拉格朗日因子非負約束時,去掉約束時一般選擇絕對值較大的。
內點法
類似於線性規劃的內點法方法,計算問題的中心路徑,直到趨近於最優解。
該內點法主要針對凸二次規劃問題,形式如下
KKT條件爲
KKT條件爲
定義度量參數爲
此時可以根據牛頓法進行求解得到步長,下下一個搜索點爲
在實際問題中會在此基礎上改進,牛頓方程如何求解,參數
梯度映射
梯度映射方法是對有效集算法的改進,不同於有效集算法,梯度映射方法每次都會選在多個參數變量加入到有效集中。但是該方法只限於求解如下問題
1. 在某步驟x,按照最速下降法求解下一個搜索點,
2. 在上述有效集合的基礎上,計算一個子問題,使得
3. 重複上述兩個步驟。
總結
本節簡要介紹瞭如下內容
1. 二次規劃問題的形式
2. 二次規劃常用算法的求解思路。
詳細算法的實現,可以參考各個數值工具。