非線性最優化
最優化的問題的一般形式是:
Minf(x) s.t. x∈X
f(x)爲目標函數,x∈En爲可行域。如果x=En,則以上最優化問題爲無約束最優化問題。
約束最優化問題通常寫爲:
Minf(x) s.t. ci(x)=0,i∈Eci(x)≥0,i∈I
其中E,I分別爲等式約束的指標集和不等式約束的指標集,ci(x)是約束函數。
無約束二次最優化
minf(x)=1/2xTHx+cTx,x∈Rn
H是對稱矩陣。
基本解法:求導然後找局部極值。
二次規劃的一般形式
minf(x)=1/2xTHx+cTx,x∈Rn s.t. Ax≤b
當H爲對稱矩陣時,被稱爲二次規劃(Quadratic Programming,QP)。
特別地,當H正定時,目標函數爲凸函數,線性約束下可行域又是凸集。上式被稱爲凸二次規劃。
問題(1):
minf(x)=1/2xTHx+cTx,x∈Rn s.t. aiTx≥bi,i∈IaiTx=bi,i∈E
二次規劃的性質
QP是一種最簡單的非線性規劃。QP有如下良好的性質,當H是半正定時:
- K-T條件是最優解的充要條件。
- 局部最優解就是全局最優解。
等式約束下的二次規劃
問題(2):minf(x)=1/2xTHx+cTx,x∈Rn s.t. Ax=b
求解方法:Lagrange乘子法,求解以下無約束二次最優化問題。
L(x,λ)=21xTHx+cTx+λT(Ax−b)
令L(x,λ)對x,λ的導數爲零,得到線性方程組:
Hx+cT+ATλ=0Ax−b=0
可解得x,即爲上式的解。
凸二次規劃的有效集方法
- 直觀解釋:
將不起作用的約束去掉,將起作用約束作爲等式約束,通過解一系列等式約束的二次規劃來實現不等式約束的優化。
- 基本原理:
若x是問題(1)的最優解,則它也是問題(3):
min21xTHx+cTx s.t. aiTx=bi,i∈I的最優解,其中I是起作用約束指標集(有效集)。反之,若x是問題(1)的可行解,又是(3)的K-T點,且相應的乘子λi≥0,則x是問題(1)的最優解。
算法步驟(迭代法):
- 設當前迭代點爲xk,它也是(1)的可行解。該點的有效集記作Ik,爲尋求xk點的迭代方向d,用乘子法求解
min21(xk+d)TH(xk+d)+cT(xk+d) s.t. aiTd=0,i∈Ik
- 若所得最優值dk=0,則xk是(3)的最優解。
- 爲判斷它是否(1)的最優解,考察對應於有效約束的乘子λi≥0是否成立。若成立,則xk是K-T點,由二次規劃性質xk是(1)的最優解。
- 若所得最優值dk=0,則取xk+1=xk+αdk,在xk+1爲可行點的條件下確定dk方向的步長αk
- 如果存在p不在Ik中,使得apxk+1=bp,則將p加入有效集
- 如果存在Ik中的指標q,使得λi<0,則xk不是最優解,從有效集中去掉q。
可行步長的選取:阻塞約束
αk=min{1,i∈/Ik,aiTdk<0minaiTdkbi−aiTxk}
αk=1時,對應約束集不影響,保持不變
αk<1時,對應約束稱爲阻塞約束,此時沿着dk運動,會被不在指標集中的約束給阻塞了,約束集因此改變。