让我首先讨论一下形式的约束规划问题:
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,则存在
λ∗=(λ∗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。