數值優化(Numerical Optimization)學習系列-二次規劃(Quadratic Programming)

概述

二次規劃問題是目標函數是二次的,並且約束是線性的問題。在非線性約束最優化問題中非常重要,通常作爲其他問題的子步驟存在。
1.二次規劃問題
2.二次規劃求解算法
3. 總結

二次規劃問題

標準形式

二次規劃問題的標識形式如下

minq(x)=12xTGx+xTcs.t.aTix=bi, iE aTixbi, iI
如果矩陣G爲半正定,則該問題爲凸二次規劃,否則爲非凸二次規劃。本節討論重點凸二次規劃問題。

二次規劃求解算法

等式約束二次規劃

在標準形式下,去掉不等式約束,可以得到等式約束二次規劃問題的標準形式。

minq(x)=12xTGx+xTcs.t.Ax=b
其中矩陣A一般爲行滿秩矩陣。

KKT條件

根據KKT條件可以得到,最優解應該滿足的一階條件爲

[GAAT0][xλ]=[cb]

當某搜索步驟x時,根據x=x+p 代入上式公式,可以得到搜索步長。
[GAAT0][pλ]=[gh]
其中h=Axb,g=c+Gx,p=xx ,上面矩陣就是KKT矩陣。

1.當ZTGZ 是半正定時,KKT矩陣非奇異,等式約束最優化問題有唯一的解(x,λ) ,其中Z是矩陣A的零空間,即AZ=0
2. 並且該解是全局最優解

求解算法

因此等式約束最優化問題轉換爲求解上述KKT矩陣對應的等式,常用的方法包括
1. 直接求解方程,高斯消元法等
2. Schur-Complement方法
3. 零空間方法
以上方法都是利用代數方法直接求解方程。對於問題規模比較大的問題可以採用迭代方法,例如CG或者Krylov方法,相對後者比較有效。

不等式約束問題

對於不等式約束問題,常見的思路包括有效集方法、內點法和梯度映射等方法。

KKT條件

根據二次規劃的標準形式可以得到,對應的拉格朗日方程爲

L(x,λ)=12xTGx+xTciEIλi(aTixbi)
根據有效集的定義A(x)=iEI|aTix=bi
KKT條件爲
Gx+ciA(λiai)=0aTix=bi, iEaTixbi, iIλi0

滿足上述KKT條件的解λ,x 是全局最優解

有效集算法

該算法和線性規劃的單純形算法類似,每次固定一個工作集合W ,然後求解等式約束的QP問題。對於得到的解進行約束判斷是否滿足以及存在其他最優解,否則進行換入和換出操作。
1. 對於每次迭代過程xk,Wk ,需要尋找一個最優搜索方向p,使得p=xxk,gk=Gxk+c,q(xk+p)=12pTGp+gTkp+δk 由於δkxk ,因此問題轉換爲min12pTGp+gTkp;  s.t.aTip=0
2. 問題轉換等式約束最優化問題,根據求解算法得到搜索方向pk
3. 由於不等式約束還要滿足其他不等式,因此下一個搜索點xk+1=xk+αkpk ,由於對於每個不等式都應該滿足aTi(xk+αkpk)bi ,當aTipk0 時肯定滿足,否則αkbiaTixkaTipk
4. 綜合所有的不等式約束,可以得到

αk=min(1,minaTipk0(biaTixkaTipk))

5. 當某個αk<1 時,說明被第K個不等式阻塞,說明aTipk0 ,此時可以將該不等式約束放入到工作集合中。
6. 當搜索方向p=0時,說明當前點爲最優點,從而計算對應的拉格朗日因子,如果全部大於0,則滿足所有的KKT條件,否則去掉該約束能夠繼續減小目標函數值。
綜上該算法僞代碼如下
這裏寫圖片描述
實際考慮點
1.和單純性算法類似,在算法開始,需要找到一個可行解,尋找方法類似,可以構造PhraseI或者PhraseII問題。
2.往工作集W 中添加不等式約束時,一般要求在W中的約束線性獨立。
3. 當找到最優點時,但是不滿足拉格朗日因子非負約束時,去掉約束時一般選擇絕對值較大的。

內點法

類似於線性規劃的內點法方法,計算問題的中心路徑,直到趨近於最優解。
該內點法主要針對凸二次規劃問題,形式如下

minq(x)=12xTGx+xTcs.t.Axb

KKT條件爲
GxATλ+c=0Axb0(Axb)Tλ=0λ0
添加鬆弛變量Y則有
minq(x)=12xTGx+xTcs.t.Axb

KKT條件爲
GxATλ+c=0Axyb=0yTλ=0(y,λ)0

定義度量參數爲μ=yTλm ,則問題轉換爲求解中心路徑,
F(x,y,λ;σμ)=GxATλ+cAxybYΛeσμe=0

此時可以根據牛頓法進行求解得到步長,下下一個搜索點爲(x,y,λ)+α(x,y,λ)
在實際問題中會在此基礎上改進,牛頓方程如何求解,參數λ 如何選取

梯度映射

梯度映射方法是對有效集算法的改進,不同於有效集算法,梯度映射方法每次都會選在多個參數變量加入到有效集中。但是該方法只限於求解如下問題

minq(x)=12xTGx+xTcs.t.lxμ
對於G是否正定都能求解,思路如下
1. 在某步驟x,按照最速下降法求解下一個搜索點,xk+αp ,由於約束限制,會被阻塞住,此時計算有效集。
2. 在上述有效集合的基礎上,計算一個子問題,使得q(x+)q(xk)
3. 重複上述兩個步驟。

總結

本節簡要介紹瞭如下內容
1. 二次規劃問題的形式
2. 二次規劃常用算法的求解思路。

詳細算法的實現,可以參考各個數值工具。

發佈了59 篇原創文章 · 獲贊 123 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章