讓我首先討論一下形式的約束規劃問題:
minf(x),s. t. x∈Rnci(x)=0,i∈E={1,2,…,l}ci(x)≤0,i∈I={l+1,l+2,…,l+m}
本文中我們不深究一般約束規劃問題的最優性性條件的證明,僅給出部分常用定理。 後續我們也僅針對凸優化問題做詳細討論。
基本概念
無約束規劃問題的討論詳見此文,這裏介紹了局部解與全局解得概念。約束規劃問題解得概念與之類似,此處省略。但要注意這裏存在可行域的問題。記上述約束規劃問題的可行域爲:
D={x|ci(x)=0,i∈E,ci(x)≤0,i∈I}
設 x^ 是一般約束問題的可行點,當 i∈I 時,對某個約束,若 ci(x^)=0 ,則稱 ci(x^)≤0 爲 x^ 處的有效約束(active constraint);若 ci(x^)<0 ,則稱 ci(x^)≤0 爲 x^ 處的非有效約束。定義
I(x^)={i|ci(x^)=0,i∈I}
爲
x^ 處的
有效集(active set)。
局部解的必要條件
一階必要條件
考慮上述約束規劃問題,這裏我們假設 f(x),ci(x),(i=1,2,…,l+m) 是連續可微函數。由於時間有限,這裏對可行點(feasible point)、可行方向(feasible direction)、線性化錐、約束限制條件(constraint qualification)、Farkas引理 等概念、定理不作介紹。我們引進Lagrange函數:
L(x,λ)=f(x)+∑i=1l+mλici(x)
定理 1(約束問題局部解的一階必要條件):
設約束問題中
f(x),ci(x),(i=1,2,…,l+m) 具有連續可微的一階偏導數,若
x∗ 是該約束問題的局部解,並且在
x∗ 處約束限制條件成立,則存在
λ∗=(λ∗1,λ∗2,…,λ∗l+m)T 使得:
∇xL(x∗,λ∗)=∇f(x∗)+∑i=1l+mλ∗i∇ci(x∗)=0
其中
ci(x∗)=0,i∈E={1,2,…,l}ci(x∗)≤0,i∈I={l+1,l+2,…,l+m}λ∗i≥0,i∈I={l+1,l+2,…,l+m}λ∗ici(x∗)=0,i∈I={l+1,l+2,…,l+m}
上述一階必要條件被稱爲
Kuhn-Tucker條件,或簡稱K-T條件;滿足上式的點爲
K-T點;稱
λ∗ 爲
x∗ 處的
Lagrange乘子(Lagrange Multiplier)。
約束限制條件成立的充分條件
定理 2:
若在前述約束優化問題的局部解 x∗ 處下述兩條件之一成立:
- ci(x),i∈E∪I(x∗) 是線性函數;
- ∇ci(x∗),i∈E∪I(x∗) 線性無關;
則在 x∗ 處約束限制條件成立。此時必存在 λ∗ 使得 K-T 條件成立。
二階充分條件
這裏給出一般約束問題的二階充分條件,不作證明。
定理 3:(約束問題的二階充分條件)
考慮上述約束問題,設 f(x),ci(x),(i∈E∪I) 具有連續的二階偏導數,若存在 x∗ 滿足下列條件:
- K-T條件成立 (參考定理 1),且 λ∗i 和 ci(x∗)(i∈I) 不同時爲0 (嚴格鬆弛互補條件);
- 對於任意的 d∈M 有
dT∇2xL(x∗,λ∗)d>0
其中 M={d∈Rn|d≠0,∇ci(x∗)Td=0,i∈E∪I(x∗)} .
則 x∗ 是約束問題的嚴格局部解。
凸優化問題
對於一般的非線性規劃,若目標函數是凸函數,約束集合 D 是凸集,則稱改非線性規劃是凸規劃。顯然,若上述約束規劃中只含有不等式約束,又 ci(x)(i∈I) 是凸函數,則約束集 D 是凸集。對於混合約束問題,若 ci(x)(i∈E) 是線性函數, ci(x)(i∈I) 是凸函數,則 D 是凸集。
定理 4: 凸規劃的局部解必是全局解。
定理 5 : 設目標函數 f(x) 和約束函數 ci(x) 一階連續可微,並且 ci(x)(i∈E) 是線性函數, ci(x)(i∈I) 是凸函數。若凸規劃的可行點 x∗ 是K-T點,則 x∗ 必是全局解。
二次規劃問題
一般的約束規劃問題求解非常困難,從下面開始我們將僅討論凸二次規劃問題的求解方法。考慮如下約束優化問題:
mins. t. {f(x)=12xTGx+rTx},x∈Rnci(x)=αTix−bi=0,i∈E={1,2,…,l}ci(x)=αTix−bi≤0,i∈I={l+1,l+2,…,l+m}
其中
G 爲
n×n 對稱矩陣,
r,αi(i∈E∪I) 爲
n 維實向量,
bi(i∈E∪I) 爲實數,稱上述問題爲
二次規劃(quadratic programming)問題,過
G 爲(正定)半正定矩陣,則稱上述問題爲(嚴格)
凸二次規劃(convex quadratic programming)。
下面討論凸二次規劃問題解得條件:
定理 6: x∗ 是上述凸二次規劃問題的全局最優解得充分必要條件是:x∗ 是K-T點,即存在 λ∗=(λ∗1,λ∗2,…,λ∗l+m) 使得:
Gx∗+r+∑i=1l+mλ∗iαi=0αTix∗−bi=0,i∈EαTix∗−bi≤0,i∈Iλ∗i≥0,i∈Iλ∗i(αTix∗−bi)=0,i∈I
(嚴格)凸二次規劃問題的局部解均是全局最優解。
定理 7: 若 x∗ 是上述凸二次規劃的全局最優解,則 x∗ 是如下等式約束二次規劃問題
min{f(x)=12xTGx+rTx},x∈Rns. t. ci(x)=αTix−bi=0,i∈E∪I(x∗)
的全局最優解。
求解二次規劃問題
等式約束二次規劃問題的條件
本節討論如下只有等式約束的二次規劃問題:
min{f(x)=12xTGx+rTx}s. t. Ax=b
的求解方法, 其中
A=(α1,α2,…,αn) ,
αi,b=(b1,b2,…,bm)T 是
m 維列向量且
rank(A)=m ,即矩陣是行滿秩的。當上述問題中矩陣
G 爲正定或半正定矩陣時,此極值問題可以轉換成解線性方程組的問題。
定理 8:
當上述問題中的矩陣 G 是半正定(正定)矩陣時,局部解 x∗ 是全局最優解,這是 λ∗ 爲相應的乘子的充分必要條件是:x∗,λ∗ 是線性方程組
(GAATO)(xλ)=(−rb)
該定理的證明只需要考慮Lagrange函數:
L(x,λ)=12xTGx+rTx+λT(Ax−b) 。
有效集法
有效集法,顧名思義,就是通過求解有限個等式約束二次規劃問題來得到一般約束二次規劃問題的解。時間問題,這裏我們不對有效集算法的一般原理進行闡述,僅介紹其算法步驟。
對於上述一般凸二級規劃問題:
- 取初始可行點 x1 ,即 x1 滿足:
αTix1−bi=0,i∈E,αTix1−bi≤0,i∈I
確定 x1 處的有效約束指標集 I(x1)={i|αTix1−bi=0,i∈I}
置 k=1 。
- 求解等式二次規劃問題
min12dTGd+∇f(xk)Tds. t. αTid=0,i∈E∪I(xk)
得到 dk 。
- 若 dk=0 , 則計算相應的乘子 λk 。 若 λki≥0,∀i∈I(xk) 則停止計算(xk 爲一般二次規劃的解, λk 爲相應的乘子);否則求:
λkq=min{λki|i∈I(xk)}
並置 xk+1=xk , I(xk+1)=I(xk)−{q} , k:=k+1 ,轉至步驟2。
- 若 dk≠0 則計算
α^k=min{bi−αTixkαTidk∣∣∣αTidk>0,i∉I(xk)}=bp−αTpxkαTpdk
取 αk=min{α^k,1} ,置 xk+1=xk+αkdk 。如果 αk=α^k ,則置 I(xk+1)=I(xk)+{p} ;否則置 I(xk+1)=I(xk) , 置k:=k+1 ,轉至步驟2。