最优化方法_Part3

10 对偶问题及强弱对偶定理

10.1 对偶问题的提出

  • 如果原问题是非凸问题,那么将无有效的算法求解出它的全局解。一个顺其自然的想法就是构造一个与原问题紧密的问题,并且这个问题本身就很简单,而这个简单的问题就是这一节要讨论的对偶问题;

  • 鲁棒优化、锥优化在某些情况下与对偶问题等价;

  • 解出线性规划对应的对偶问题的最优解,可以得到原问题解的性质,并且对偶单纯形法比单纯形法效率更高;

  • 通过对偶问题可以得到原问题最优解的下界。

10.2 对偶问题的构造

考虑如下约束问题(P)

minf(x)s.t.gi(x)0i=1,,mhi(x)=0i=1,,lxX

和前面的约束优化相比,原问题(P)多了一条集合约束xX,若集合X=Rn,则和前面讨论的约束问题是一样的。除此以外,X还可以是ZnZ+n{0,1}等等。

对应的对偶问题(D)的构造,本节考虑的是Lagrange对偶问题,Lagrange对偶问题的构造分三步走

  • 第一步:构造Lagrange函数

L(x,λ,μ)=f(x)+i=1mλigi(x)+i=1lμ1hi(x)

  • 第二步:构造Lagrange对偶函数

d(λ,μ)=minxX{f(x)+i=1mλigi(x)+i=1lμihi(x)}

  • 第三步:构造对偶问题(D)

maxd(λ,μ)s.t.λi0i=1,,m

10.3 原问题和对偶问题的关系

对偶问题(D)可以写为:

maxλ>0,μ minxXL(x,λ,μ)

即对偶问题可以先看做是对Lagrange函数中的x求最小,再对λ,μ求最大。

对上式换一种形式:

minxX maxλ>0,μL(x,λ,μ)

做一个简单的分析

maxλ0,μL(x,λ,μ)=max{f(x)+i=1mλigi(x)+i=1lμihi(x)}={f(x)gi(x)0,hj(x)=0,i=1,,m,j=1,,l+ others 

求最大值是很容易求到+,若hi(x)0,因为μ无符号要求,则i=1lμihi(x)将可能取到+;若gi(x)0,同理可得i=1mλigi(x)将可能取到+

  • 如果不想取到+,则gi(x)0,hj(x)=0i=1,,m,j=1,,l
  • 若要取到最大,则gi(x)=0,i=1,,mmaxλ0,uL(x,λ,μ)=f(x)

maxλ0,uL(x,λ,μ)=f(x)求最小值时,+将毫无意义,因此有:

minxX maxλ>0,μL(x,λ,μ)=minxX f(x)

在约束条件gi(x)0,hj(x)=0i=1,,m,j=1,,l下,整理即可得:

minf(x)s.t.gi(x)0i=1,,mhi(x)=0i=1,,lxX

又回到了原问题(P),因此对偶问题(D)

maxλ>0,μ minxXL(x,λ,μ)

交换下求最值的顺序即可得到原问题(P)

minxX maxλ>0,μL(x,λ,μ)

因此原问题可以看做是对Lagrange函数先对λ,μ求最大,在对x求最小。对偶问题是先对x求最小,再对λ,μ求最大。

10.4 对偶间隙【对偶间隔】

原问题(P)的最优值v(P)和对偶问题(D)的最优值v(D)的差,即v(P)v(D)

10.5 弱对偶定理

10.5.1 弱对偶定理的描述及证明

v(P)是原问题(P)的最优值,v(D)是对偶问题v(D)的最优值,则v(D)v(P),即对偶间隙v(P)v(D)0

弱对偶定理是天然成立的,由构造对偶问题的过程决定

定理的证明:

记原问题(P)的可行集S为:

S={xXgi(x)0,i=1,,m;hi(x)=0,i=1,,l}

可以得到:

SX

因此:

d(λ,μ)=minxX{f(x)+i=1mλigi(x)+i=1lμihi(x)}minxS{f(x)+i=1mλigi(x)+i=1lμihi(x)}

因为hi(x)=0,因此i=1lμihi(x)=0;因为λi0,gi(x)0,因此i=1mλigi(x)0,所以有:

minxS{f(x)+i=1mλigi(x)+i=1lμihi(x)}minxS{f(x)}

即,λ0,μ,有:

d(λ,μ)minxS{f(x)}

因此:

maxλ0,μd(λ,μ)minxS{f(x)}

即:v(D)v(P)。由证明过程也可以得出不等式:

d(λ,μ)v(D)v(P)f(x)

10.5.2 弱对偶定理的推论

(一) 推论一

假设x¯S(λ¯,μ¯),且d(λ¯,μ¯)=f(x¯),则v(P)=v(D),且x¯,(λ¯,μ¯)是问题(P)(D)的最优解。

证明

d(λ¯,μ¯)v(D)f(x¯)d(λ¯,μ¯)=v(D)=f(x¯)

d(λ¯,μ¯)v(P)f(x¯)d(λ¯,μ¯)=v(P)=f(x¯)

因此v(P)=v(D)

(二) 推论二

v(P)=,则d(λ,μ)=,(λ,μ),λ0

v(D)=+,则v(P)=+,(λ,μ),λ0,同时原问题无解。

10.6 强对偶定理

先给出结论,强对偶定理即v(D)=v(P),也即对偶间隙v(D)v(P)=0,但是强对偶定理不同于弱对偶定理,强对偶定理不是天然成立的,而是有条件的!

10.6.1 几何解释

考虑简单的原问题(P)

minf(x)s.t.g(x)0xX

构造对应的对偶问题(D)

  • 第一步:构造Lagrange函数

L(x,λ)=f(x)+λg(x)

  • 第二步:构造Lagrange对偶函数

d(λ)=minxX{f(x)+λg(x)}

  • 第三步:构造Lagrange对偶问题

maxλ0d(λ)

记:

G={(yz)|g(x)=yf(x)=z,xX}

则将n维空间中的X映射到了二维空间,将更容易做几何解释。因此原问题(P)变为:

minz s.t y0(yz)G

对偶问题(D)变为:

maxλ0d(λ)

其中,d(λ)=min{z+λy},(yz),作图分析:

如果G区域是一个圆形(凸集),则v(P)=v(D),但如果G区域不是一个圆形,如下图:

v(P)v(D),因此由图形很容易猜测,若区域G是凸集,则v(P)=v(D)。但实际上的强对偶理论要比凸集来得复杂的多,

10.6.2 强对偶定理的描述及证明

(一) 强对偶定理的描述

集合X为非空凸集,f(x)gi(x),i=1,,m是凸函数,hi(x),i=1,,l均为线性函数;

存在x^X使得:

gi(x^)<0,i=1,,m;hi(x^)=0,i=1,,l

0int h(X),其中h(X)={h1(x),,hl(x)xX}

则强对偶成立:

min{f(x)xS}=max{d(λ,μ)λ0,μ}v(P)=v(D)

(二) 定理中条件的说明

要求原问题(P)是凸问题;

存在X中的一点x^使得gi(x)严格小于0,即在画出的G区域中存在一点在z轴的左边,结合图像很容易就能理解,如果这个条件不成立的话,将找不到最优解,结合图像进行理解:

集合图像理解很容易可以得出找不到最优解的结论

定理的证明(TODO):需要利用凸集的性质,目前这块学的不好,待补充。

本小节参考资料:
【1】如何通俗地讲解对偶问题?尤其是拉格朗日对偶lagrangian duality? - 李竞宜的回答 - 知乎
【2】拉格朗日乘子的几何解释

10.7 对偶问题的性质及求解办法

10.7.1 对偶问题的性质

(一) 对偶函数一定是凹函数

证明过程:为什么拉格朗日对偶函数一定是凹函数;该博客介绍的很详细,包括不等式如何过去,比书本要好多了。

(二) 对偶问题是凸优化问题

已知对偶函数d(λ,μ),对偶问题(D)

maxλ0,μ d(λ,μ)

因为对偶函数是凹函数,对凹函数求最大相当于凸函数求最小,问题等价于:

minλ0,μ d(λ,μ)

因此对偶问题是凸优化问题。

10.7.2 对偶问题的求解

(一) 特殊问题对偶问题的求解

  • 如果原问题(P)是线性优化问题,则其对偶问题(D)仍是线性优化问题,则可以用解线性优化的办法求解对偶问题,即可以使用单纯形法和内点法;

  • 如果原问题(P)是凸二次规划问题,则其对偶问题(D)仍是凸二次规划问题,则可以使用有效集法进行求解;

  • 如果如果原问题(P)是二阶锥规划问题或半定规划问题,则其对应的对偶问题分别为二阶锥规划问题、半定规划问题,可以使用内点法进行求解。

(二) 一般问题对偶函数的求解

一般形式的函数的对偶问题将无法使用上述提到的方法,对于一般函数的对偶问题的求解有专门的方法,比较常见的是

  • 割平面法又称为外逼近法【cutting plane method】
  • 次梯度法【subgradient method】
  • bundle method

(三) 几何解释

先对问题做一个化简,记

g(x)=(g1(x)gm(x)),h(x)=(h1(x)hl(x)),λ=(λ1λm),μ=(μ1μl)

则对偶问题(D)可以写为:

{maxd(λ,μ) s.t. λi0,i=1,,m

其中,d(λ,μ)=minxX{f(x)+λTg(x)+μTh(x)},对偶问题的等价问题可以写为:

{maxd(λ,μ)s.t.λ0{maxθs.t.θf(x)+λTg(x)+μTh(x),xX ()λ0

记最优解为θ¯,则θ¯=v(D),现在关心的是θ一定能求解吗。

假设X有有限个点x1,,xN,并且N不是特别大,则()式变为:

θf(x)+λTg(xi)+μTh(xi),i=1,,N

问题变为了一个线性规划问题,可以通过单纯形法或内点法进行求解,也可以借用软件cplex进行求解,但是当N非常大或X有无穷多点时,()代表的是无穷多个线性不等式,无法通过软件进行求解并且也不可能手动去算当N非常大时,这时候应该如何来求解这个问题呢。

考虑N=5的情况,将X中的5个点代入得到5条直线,d(λ,μ)的图形如图红色所示:

可以发现起约束作用的直线只有三条,另外两条不起作用。当N=5时就已经有多余的直线了,那么当N非常大时,肯定也有多余的直线,并且不起约束作用的直线应该是很多的。因此一个很顺其自然的想法就是从无穷多个点中每次取一部分去试,直到试出最优解,外逼近法的算法就是基于这个思想,只不过要考虑的因素有很多,比如如何从X中选取子集,算法的终止条件是什么?

还是以N=5为例,原来的集合X={x1,x2,x3,x4,x5},现从X中取出两点构成X的子集记为X0,假设取出的点为x1x3,则:

X0={X1,X3}

因此对偶问题(D)变为:

{maxθ s.t. θf(x)+λTg(x)+μTh(x),xX0λ0

记现问题的最优解为θ0,则θ0θ¯,根据图像以及X的范围很容易就想明白。

两个方程,两个未知量可以解出λ0μ0,已知λ0μ0可以求解d(λ0,μ0),即求解

minxX0{f(x)+(λ0)Tg(x)+(μ0)Th(x)}

解得最优解为x0X,算出d(λ0,μ0)x0以后,就要进行判断是否算出了最优解:

  • x0是问题(P)的可行解,即g(x0)0,h(x0)=0并且(λ0)Tg(x0)=0,则f(x0)=f(x0)+λ0Tg(x0)+μ0Th(x0)=d(λ0,μ0)则强对偶成立,x0是问题(P)的最优解,λ0μ0是问题(D)的最优解。因此不需要在试其他点了,一步到位,但是一般这个条件是很难达到的。

  • d(λ0,μ0)=θ0,因为θ¯=v(D)θ0又因为d(λ0,μ0)v(D)因此d(λ0,μ0)=v(D),所以(λ0,μ0)是问题(D)的最优解。

如果上面两种情况都不满足的话,说明选取的点不够好,近似效果不行,需要重新选取点。一般重新选取点是将最优解x0加入到原先的子集X0中,即新的子集为X:=X0x0,即比之前多了一个约束条件。选取新的子集以后在重述上面的步骤,直到上述两种情况中有一种情况发生。上述的方法就为外逼近方法。

(四) 外逼近法算法实现

前面已经图文并茂的介绍了外逼近方法,这里给出算法的具体实现思路,有了前面的讲解后将非常容易的理解

  • STEP 1:选取X的非空子集X1,其中X1包含有限个元素,令k=1

  • STEP 2:求解线性规划问题

{maxθ s.t. θf(x)+λTg(x)+μT,xXkλ0

  • STEP 3:求解相应的子问题minf(x)+λkTg(x)+μkTh(x)xX记其最优解为xk,最优值为d(λk,μk)

  • STEP 4:

    • 情况1 —— 若xk是原问题(P)的可行解,且λkTg(xk)=0,则算法终止,其中xk(λk,μk)分别是原问题(P)和对偶问题(D)的最优值,且最优值相等;
    • 情况2 —— 若θk=d(λk,μk),则算法终止,其中(λk,μk)是对偶问题(D)的最优解,最优值为θk,若情况1和情况2均没发生,则转STEP 5;
  • STEP 5:Xk+1:=Xk{xk},k:=k+1,转STEP 2。

(五) 其他说明

  1. X的子集合X1必须包含(P)的一个可行点,若xX1,并且x是问题(P)的可行点,则有:θf(x)+λTg(x)+μTh(x)f(x)因此要求子集合包含问题(P)的可行点是为了给θ一个上界,如果X1选取不恰当,很容易得到+

  2. X包含无穷多点,在迭代过程中生成的子集Xk去掉多余的点,提高算法效率。

算法的缺点:在最优解的位置具有不稳定性,无法判断解的最优性。

11 线性规划

11.1 线性优化研究的问题

线性优化研究的问题具有以下特点:

  • 目标函数为决策变量的线性函数

  • 约束条件为线性等式或线性不等式约束

11.1.1 线性优化的标准型

线性优化问题的标准型具有以下形式,记该问题为(LP)

{mincTx s.t. Ax=bx0

其中,cRnARm×nbRm,通常来说都是假设系数矩阵A行满秩,即rank(A)=m,行满秩即无多余约束条件,且不存在方程组无解的情况。

11.1.2 非标准型和标准型之间的转换

并非所有的线性优化问题都是标准的线性优化问题,但是只要是线性优化问题就一定可以化为标准型。

  • 不是求解最小值问题,转换形式如下:

maxdTxmindTx

  • 约束条件为不等式,转换形式如下:

aiTxbi{aiTx+s=bis0,aiTxbi{aiTxs=bis0

其中,s松弛变量

  • 决策变量无符号要求,转换形式如下:

xi=xi+xi,xi+0,xi0

11.2 可行集与多面体的性质

11.2.1 可行集

线性优化的可行集:

S={xAx=b,x0}

并且可行集是一个多面体

11.2.2 多面体的性质
  • 极点(extreme point):给出凸集C,若xC不能表示成C中另外两点的凸组合,则称xC的极点。

  • 方向(recession direction):给出凸集C,若非零向量d满足对于任意的xC均有x+λdC,λ>0,则称d为集合C的方向。

  • 极方向(extreme direction):若方向d不能表示成另外两个方向的正线性组合,即不存在λ1>0,λ2>0,使得d=λ1d1+λ2d2,则称dC的极方向。

11.3 极点的刻画

11.3.1 定理

考虑多面体S={xAx=b,x0},这里假设ARm×n行满秩,xSS的极点,当且仅当x可以表示为(B1b0),其中A=(B,N)B可逆且B1b>0

说明

A=(B,N)是将A中的列重新进行了排列,将A中线性无关的列组成矩阵B,剩余的列组成矩阵N。对A进行分块以后相应的对x也需要进行分块,x的分块表示为(xBxN),因此Ax=b可表示为

(B,N)(xBxN)=bBxB+NxN=b

因此如果给了xN一组值,BN已知,则xB的值就可以求解出来。如果想要求解一组简单的值,可以令

xN=0

因此

BxB=b

又知B可逆,因此可以得到

xB=B1b

可得方程的一个解为

(xBxN)

后面的定理中将不再说明矩阵A的分解。

11.3.2 证明

证明略,具体参考视频和转载的知乎笔记。

11.4 方向的刻画

d为方向,由前面的定义可知x+λdS,则满足

(11-4-1)A(x+λd)=b

因为xS,则满足

Ax=b

(1141)式可得

Ad=0

且满足x+λd0,因此d0,否则若d0,当λ非常大的时候,x+λd0,因此d是集合S的方向等价为

Ad=0,d0

11.5 极方向的刻画

11.5.1 定理

考虑多面体S={xAx=b,x0},这里假设ARm×n行满秩,dRnS的极方向当且仅当存在矩阵A的分解A=(B,N),使得

d=t(B1ajej)

其中,t>0,B1aj0aj为矩阵N的第j列,ejRnm的第j个分量为1,其余分量为0的向量,且极方向有限多个。

说明:t>0,B1aj0,即d>0

11.5.2 证明

略,具体证明过程请参考视频和转载笔记。

11.6 可行集的其他表示

可行集的表示除了S={xAx=b,x0}还有另外的方式。假设S的极点为x1,,xk,极方向为d1,,dl,则xS当且仅当x具有如下形式

x=i=1kλixi+j=1lμjdj

其中i=1kλi=1,λi0,i=1,,k,μj0,j=1,,l

即可行集中的点可以表示为极点的凸组合加极方向的非负组合,这个定理结合图形很容易理解,这里暂时不做证明。

11.7 单纯形法

因为可行集有另外一种表示,因此问题(LP)可以等价为:

{mincT(i=1kλixi+j=1lμjdj) s.t i=1kλi=1,λi0,i=1,,k,μj0,j=1,,l

{mincT(i=1kλixi)+cT(j=1lμjdj) s.t i=1kλi=1,λi0,i=1,,k,μj0,j=1,,l

当选取了极点和极方向以后,问题就转换为了关于λi,μi的线性问题了。

  • 若存在某个j使得cTdj<0,因为μj可以取任意大,因此v(LP)=

  • cTdj<0,因为μj可以取任意大,因此要使得目标函数最小,则μj=0,问题转换为

{mincT(i=1kλixi)+cT(j=1lμjdj) s.t i=1kλi=1,λi0,i=1,,k,μj0,j=1,,l

mini=1,,kcTxi

因此最小值在极点处取到;即线性优化问题(LP)有最优解,当且仅当cTdj0,j=1,,l,并且若有最优解,则必在某个极点取到。

如果极点非常多,一个一个将极点带进去进行比较求最小,时间成本将非常高,因此就有了单纯形法。单纯形法的基本思想是找到找到一个极点x¯,判断极点x¯是否为最优解,若x¯不是,则寻找一个更优的极点,避免遍历所有的极点。因此问题的关键是如何判断当前极点是否为最优解,如果不是,如何选取更优的极点。

11.7.1 如何判断最优解

xS,对A做了一个相应的分块以后, 对xc也做一个相应的分块

x=(xBxN),c=(cBcN)

因此Ax=b即:

(B,N)(xBxN)=BxB+NxN=b

解得

xB=B1bB1NxN

若对xS,cTx0恒成立,则x¯是最优解,即:

cTxcTx¯=[cBTcNT][xBxN][cBTcNT][B1b0]=cBTxB+cNTxNcBTB1b=cBTB1bcBTB1NxN+cNTxNcBTB1b=(cNTcBTB1N)xN()

因为xN0,因此有:

cNTcBTB1N0,则()式大于等于0恒成立,即x¯是最优解。

11.7.2 如何选取下一个极点

cNTcBTB1N0不成立,即存在某个分量小于0,设第j个分量小于0,即cjcBTBaj<0,记

dj=(B1ajej)

cTdj=(cBT,cNT)(B1ajej)=cjcBTB1aj<0

rj=B1aj

如果rj0,则dj0,由前面的定理可知dj为极方向,但是

cT(x¯+λdj)=cTx¯+λcTdj

优化问题无解。

如果rj0不成立,则dj不为极方向,不可以沿着这个方向走任意远,需要在约束条件内走最远,即要满足

x¯+λdj=(B1b0)+λ(B1ajej)=(B1bB1ajλej)0

恒成立。因为λej0,因此只需关心B1bB1aj0是否成立即可,记

b=B1b

b¯λrj0

因此每个分量都需要大于等于0,即

[b¯1λrj1b¯mλrjm]0

b¯iλrji0,i=1,,m

可以得到

λmin{b¯irjirji>0}

因此

λ=min{b¯irjirji>0}

下一个更优的极点为

x=x¯+λdj

总结:

若从x¯=(B1b0)出发满足cNTcBTB1N0,则当前解即为最优解,如果不满足,下一个选取的极点为x¯+λdj,其中

d¯j=(B1ajej),λ=min{b¯irjirji>0}

12 等式约束的二次规划问题

12.1 等式约束的二次规划问题描述

考虑如下的等式约束的二次规划问题(QP)

{min12xTQx+cTx s.t aiTxbi=0,iI={1,,m}

也可以写为:

{min12xTQx+cTx s.t Ax=b

其中,A=(a1TamT)b=(b1bm)

假设Q0ARm×nrank(A)=m,对于等式约束问题,常用的有KKT法、变量消去法、零空间法等,这一节暂时只会介绍前两种。

12.2 等式约束求解方法

12.2.1 KKT法

(一) KKT法的原理

因为问题(QP)是凸问题,因此KKT点即为最优解,KKT条件为:

{Qx+c+ATλ=0Ax=b

将KKT条件写成矩阵乘积的形式,即:

(QATA0)(xλ)=(cb)

(QATA0)可逆,则解唯一,其中xn维的,λm维的,因此解的是n+m个变量,

(二) KKT法的缺点

nm都非常大的话,求解问题将非常复杂。

12.2.2 变量消去法

(一) 变量消去法的原理

为了克服KKT法的缺点就有了变量消去法,所谓变量消去法就是将x的通解表示出来,在代入目标函数中,可以将求解n个变量的问题转化为求解nm个变量。

和线性优化中相同的处理方式,对矩阵A进行分块:

A=(AB,AN)

其中,ABRm×mANRm×(nm)rank(AB)=m。对矩阵A进行相应的分块以后,需要对x,Q,c也进行相应的分块:

x=(xBxN),Q=(QBBQBNQNBQNN),c=x=(cBcN)

因此上述等式二次规划问题等价于:

{minf(x)=12(xBTQBBxB+xBTQBNxN+xNTQNBxB+xNTQNNxN)+cBTxB+cNTxN s.t ABxB+ANxN=b

因为

Ax=(AB,AN)(xBxN)=bABxB+ANxN=b

又因为矩阵AB可逆,因此可得:

xB=AB1bAB1ANxN

xB代入x中,得:

x=(AB1bAB1ANxNxN)=(AB1b0)+(AB1ANEnm)xN

可以理解为(AB1b0)为方程Ax=b的特解,(AB1ANEnm)xN为方程Ax=b的基础解系。

xB的表达式代入f(x)中可得:

f^(xN)=12xNT(QNNANTAB1QBNQNBAB1AN+ANTAB1QBBAB1AN)xN+[bTAB1(QBNQBBAB1AN)+(cNTcBTAB1AN)]xN+12bTAB1QBBAB1b+cBTAB1b

(QP)

Q^N=QNNANTAB1QBNQNBAB1AN+ANTAB1QBBAB1AN

r^N=bTAB1(QBNQBBAB1AN)+(cNTcBTAB1AN)

δ^=12bTAB1QBBAB1b+cBTAB1b

则转换为对应的无约束优化问题为:

min{f^(xN)=12xNTQ^NxN+r^NxN+δ^}

Q^N是正定矩阵,则问题(QP)是凸问题,有唯一解,令

f^(xN)=0Q^NxN+r^N=0

解得:

xN=Q^N1r^N

因此:

x=(xBxN)=(AB1b+AB1ANQ^N1r^NQ^N1r^N)

即为问题(QP)的最优解。最优解满足KKT条件,则对应的Lagrange乘子满足:

Qxr+ATλ=0

(QBBQBNQNBQNN)(xBxN)+(rBrN)+(ABTANT)λ=(00)

得到:

λ=AB1(QBBxB+QBNrN+rB)

由于xNnm维的,而xn维,变量个数从原来的n个变为nm个,因此该方法被称为变量消去法。

(二) 变量消去法的优缺点

  • 方法的优点:

    • 直接消去法简单、直观。
  • 方法的缺点:

    • AB接近一奇异矩阵的时候解会非常的不稳定。

13 不等式约束的二次规划问题

上一节学习了等式约束的二次规划问题,介绍了变量消去法和KKT法两种求解的方法,但是一般的求解问题中都是带有不等式约束的,因此这一节将学习不等式约束的二次规划问题。

13.1 一般的二次规划问题

前面介绍了等式约束的二次规划的求解方法,求解的问题有可能是带有不等式约束的,考虑如下问题,记为(QP)

{min12xTQx+cTx s.t aiTxbi0iI={1,,m}aiTxbi=0iE={m+1,,m+l}

13.2 最优解的性质

性质一:最优解为KKT点。

性质二:假设x是问题(QP)的最优解,x对应的有效指标集:

I(x)={iaiTx=bi,iI}

x是等式约束二次规划(QP)问题的最优解,(QP)问题为:

{min12xTQx+cTx s.t aiTxbi0iI(x)aiTxbi=0iE

性质2证明

因为x是问题(QP)的最优解,则满足KKT条件,即:

{Qx+c+iEIλiai=0(1)λi0iI(2)aiTxbi0iI(3)aiTxbi=0iE(4)λi(aiTxbi)=0iI(5)

由互补松弛条件可知:

λi=0,iImathcalI(x)

因此,上式的(1)式可以改写为:

Qx+c+iEI(x)λiai=0

因此上述KKT条件可以改写为:

{Qx+c+iEI(x)λiai=0(1)λi0iI(x)(2)aiTxbi0iI(x)(3)aiTxbi=0iE(4)λi(aiTxbi)=0iI(x)(5)

即问题(QP)的KKT条件,即x是问题(QP)的KKT点。

由一般的二次规划问题的最优解可求等式约束的二次规划问题的最优解,等式约束的二次规划问题很容易可以通过变量消去法、零空间法或KKT法求得。很容易想如果知道了问题(QP)的最优解,能否知道问题(QP)的最优解呢?

13.3 定理

13.3.1 定理内容

x¯是问题(QP)的可行点,找到x¯对应的有效指标集I(x¯),求解问题(QP)

{min12xTQx+cTx s.t aiTxbi0iI(x¯)E

x¯是问题(QP)的最优解,设λ¯是相应的乘子,若λ¯i0,iI(x¯),则x¯是问题(QP)的最优解。

13.3.2 定理证明

证明暂略,请参考视频讲解或者转载的笔记。

13.4 有效集法思路

有上述的定理就会想,如果对应的λ¯i0不成立,那么如何确定(QP)问题的最优解呢?这就有了有效集法。

假设x0是问题(QP)的可行点,I(x0)x0对应的有效指标集,若对应的等式二次规划问题(QP0)

{min12xTQx+cTx s.t aiTxbi0iI=(x0)E

的最优解为x^0,考虑以下两种情况:

13.4.1 情况一:x^0=x0
  1. λi00,iI(x0),这种情况就很好,由前面的定理可得x0就是问题(QP)的最优解;

  2. 若存在pI(x0),λp0<0,由前面的Lagrange乘子的意义可得,当乘子小于0的时候,右端项增大,目标函数的值将增大。在问题(QP)中原来只要求apTxbp0,而在(QP0)问题中要求apTxbp=0,相当于右端项变大了,目标函数值将变大,这在求最小值问题中是不合理的,因此在x0的有效集中需要将这一点去除。记x1:=x0I(x1)=I(x0) {p},重新求对应等式二次规划问题的最优解。有效指标集中对应的Lagrange乘子可能很多小于0,这时候排除掉最小的即可,即排除掉扰动最大的点,对算法改进的也就越多。

13.4.2 情况二
  1. x^0是问题(QP)的可行解,则记x1:=x^0,产生新的迭代点和有效指标集x1,在求解对应二次规划问题的可行解;

  2. x^0不是问题(QP)的可行解,则一定是违反了一些不等式约束。

比如图上的x^0就违反了约束条件1,但是为什么仍然会找到x^0,那肯定是因为x^0处的函数值比x0的小,因此d=x^0x0是函数值下降方向。既然是下降方向,那肯定是沿着下降方向下降的越多越好,但是又不能超过边界,设沿着d方向走α>0步,则要取到最优解α越大越好,并且在可行域内,则x0+αd满足问题(QP)的约束条件,即:

{aiT(x0+αd)bi0iE(1)aiT(x0+αd)bi0iII(x0)(2)aiT(x0+αd)bi0iI(x0)(3)

其中对条件(1)(3)是天然成立的,因此只需考虑(2)的情况即可,即:

aiT(x0+αd)bi0,iTI(x0)

做一个变形得:

αaiTdbiaiTx0,iTI(x0)

如果

aiTd0

因为

biaiTx00,iTI(x0)

不等式天然成立,现考虑aiTd>0的情况,两边同除以aiTd得:

αbiaiTx0aiTd,iTI(x0)

αmin{biaiTx0aiTd,iII(x0),aiTd>0}

最优解在等号处取得,记

α=αmin{biaiTx0aiTd,iII(x0),aiTd>0}=bqαqTx0aqTd

构造新的迭代点

x1=x0+αd

及可行集

I(x1)=I(x0){q}

在求解对应的二次规划问题,直到情况一的1成立

13.5 有效集法算法梳理

前面已经很详细的介绍了有效集方法的实现思路,这里给出具体的算法步骤

  • STEP 1:给定问题(QP)的可行点x0,对应的有效指标集I(x0)k:=0

  • STEP 2:求解下面对应的等式二次规划问题(QPk),得到最优值x^k

{min12xTQx+cTx s.t aiTxbi=0,iI(xk)E

  • STEP 3:若x^k=xk,考虑对应的乘子λk,若λik0,iI(x),则算法终止,x即为最优解,否则计算λpk:=min{λik,iI(xk)},令k:=k+1

  • STEP 4:若x^kxk

    • 情况1:x^k是问题(QP)的可行点,则令xk+1=x^k,更新有效指标集I(xk+1)
    • 情况2:x^k不是问题(QP)的可行点,则计算

α=αmin{biaiTx0aiTd,iII(x0),aiTd>0}=bqαqTx0aqTd

其中,dk=x^kxk,令

xk+1=xk+αkdk,I(xk+1)=I(xk){q},k:=k+1

转STEP 2。


【1】数值优化| 对偶问题及强弱对偶定理数值优化 |对偶问题的性质及求解办法
【2】最优化| 线性优化
【3】数值优化| 不等式约束的二次规划问题
【4】数值优化| 等式约束的二次规划问题
【5】数值优化| 不等式约束的二次规划问题

posted @   博客侦探  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示