线性规划(LP)
mins.t.c1x1+⋅+cnxna11x1+⋯+a1nxn≤b1am1x1+⋅+ammxn≤bmx1,⋯,xn≥0
形式化定义
mins.t.cTxAx≤bx≥0
标准LP问题
从实际中总结出来的LP形式不完全一样
- 目标函数是最大值或最小值
- 约束条件是等式约束或不等式约束
- 变量有上界或下界或无界
mins.t.z=cTxAx=bx≥0
标准化
- 目标函数的转换:maxz→min(−z)
- 约束条件的转换(引入松弛变量xn+i)
j=1∑naijxj≤bij=1∑naijxj≥bi⇒{∑j=1naijxj+xn+i=bixn+1≥0⇒⎩⎪⎨⎪⎧−∑j=1naijxj+xn+i=−bi∑j=1naijxj−xn+i=bixn+1≥0
a≤xi≤bxi自由变量xi≤0⇔⎩⎪⎨⎪⎧xi′=xi−axi′+xn+i=b−axi′≥0⇔{xi=xi′−xi′′xi′,xi′′≥0⇔{xi′=−xixi′≥0
基本性质
- 可行解:称满足线性规划的约束条件的解x=(x1,x2,⋯,xn)T,为线性规划问题的可行解
- 可行域:所有可行解组成的集合称为可行域,记为D
- 可行域为凸集
- D=∅,无解或不可行
- D=∅,但目标函数在D上无上界,无解
- D=∅,且目标函数有限的最优解,有最优解
- 最优解:满足线性规划目标函数的可行解,且是目标函数达到最小的可行解
- 基:设A=(aij)mn是约束方程组的系数矩阵,其秩为m(m<n),若B是矩阵A中m×n阶非奇异子阵,则B是基
- 基向量:B的列向量pi为线性规划问题的基向量
- 基变量:与基向量pi对应的决策变量xi为线性规划问题的基变量
- 非基变量:与基变量相反的基变量
最优基本可行解
在线性规划中,设矩阵A的秩为m,又假设A=[B,N],其中B是m阶可逆矩阵,如果A的前m列是线性相关的,可以通过基本变换,使前m列成为线性无关,x可以记作
x=[xBxN]
其中xB为B中的列对应,xN为N的列对应,这样可以改写Ax=b为
[B,N][xBxN]BxB+NxN=b=b
两边同乘B−1,移项后可以得到
xB=B−1b−B−1NxN
令xN=0,得到解
x=[xBxN]=[B−1b0]
- 基本解:称上述x为方程组Ax=b的一个基本解
- 基矩阵:B,简称为基
- 基变量:xB的各分量
- 一组基:基变量的全体xB1,xB2,⋯,xBn
- 非基变量:xN的各分量
如果B−1b≥0,则
- 基本可行解:称x为方程组Ax=b,x≥0的基本可行解
- 一组可行基:基变量的全体xB1,xB2,⋯,xBn
- 可行基矩阵:称B为可行基矩阵
- 非退化的:若B−1b>0,即基变量的取值均为正数,则基本可行解是非退化的
- 可退化的基本可行解:满足B−1b≥0且至少有一个分量是零
基本可行解的存在问题
- 定理:如果Ax=b,x≥0有可行解,则一定存在基本可行解,其中A是m×n矩阵,A的秩为s
- 定理:令K={x∣Ax=b,x≥0},A是m×n矩阵,A的秩为m,则K的极点集与Ax=b,x≥0的基本可行解集等价
- 定理:如果线性规划存在有限最优解,则目标函数的最优值可在某个极点上达到
当线性规划问题存在最优解时,一定存在一个基本可行解,且它是最优解,线性规划问题变为求最优基本可行解
单纯性方法
由基本可行解的存在可知道,求解线性规划问题归结于找最优基本可行解,单纯性的方法的基本思想,就是从一个基本可行解出发,求一个使目标函数值所有改善的基本可行解,这样不断的改善基本可行解,力图达到最优基本可行解,考虑问题
mins.t.fdefcxAx=bx≥0
- A是m×n矩阵,秩为m
- c是n维行向量
- x是n维列向量
- b≥0是m维列向量
- 符号def表示右端的表达式是左端的定义式,也就是目标函数f的具体形式就是cx
记
A=(p1p2⋯pn)
现在通过列调换之后,将A分解为(B,N),使得B是基矩阵,N是非基矩阵,设
x(0)=[B−1b0]
是基本可行解,则在x(0)处的目标函数值
f0=cx(0)=(cBcN)[B−1b0]=cBB−1b
- cB是c中与基变量对应的分量组成的m维行向量
- cN是c中与非基变量对应的分量组成的n−m维行向量
设
x=[xBxN]
是任一一个可行解,由Ax=b得到
xB=B−1b−B−1NxN
在点x处的目标函数值为
f=cx=(cBcN)[xBxN]=cBxB+cNxN=cB(B−1b−B−1NxN)+cNxN=cB−1b−(cBB−1N−cN)xN=f0−i∈R∑(cBB−1pi−ci)xi=f0−i∈R∑(zi−ci)xi
zi=cBB−1pi
由上面的式子可以知道,选取适当的自由未知量xi,(i∈R)就有可能使得
i∈R∑(zi−ci)xi>0
从而得到使目标函数值减小的新的基本可行解,为此
- 在原来的n−m个非基变量中,使得n−m−1个变量仍然取0
- 令一个非基变量xk增大(即取正值),来实现目的
我们需要找到方法来确定下标k,当xi,(i∈R)取值相同时,zi−ci(正数)越大,目标函数值下降越多,因此选择xk,使得
zk−ck=i∈Rmax(zi−ci)
假设zk−ck>0,xk由零变为正数后,得到方程组Ax=b的解
xB=B−1b−B−1pkxk=b−ykxk
- b,yk是m维列向量
- b=B−1b
- yk=B−1pk
xB=⎣⎢⎢⎢⎡xB1xB2⋮xBm⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡b1b2⋮bm⎦⎥⎥⎥⎤−⎣⎢⎢⎢⎡y1ky2k⋮ymk⎦⎥⎥⎥⎤xkxN=(0⋯0xk0⋯0)T
得到新的点,目标函数值为
f=f0−(zk−ck)xk
那么如何确定xk的取值呢
- xk取值越大函数值下降越多
- xk的取值受到可行性的限制,不能无限增大
- 对于某个i
- 当yik≤0时,xk取任何正值时,总成立xBi≥0
- 当yik>0时,为保证
xBi=bi−yikxk≥0
就需要
xk≤yikbi
所以,为了使得xB≥0,则使
xk=min(yikbi∣∣∣yik>0)=yrkbr
原来的基变量xBi=0,得到新的可行解
xN=(xBi⋯xBr−10xBr+10⋯xk0⋯0)T
这个解一定是基本可行解,经过上述的转换
- xk由原来的非基变量变成了基变量
- xBr由原来的基变量变成了非基变量
- 目标函数值减少了(zk−ck)xk
重复以上过程,就可以进一步改善基本可行解,直到所有的(zi−ci)均为非正数,即任意的非基变量取正值都不能使得目标函数值减小为止
在线性规划中,通常称zi−ci为判别数或检验数
- 在极小化问题中,对于某个基本可行解,所有zi−ci≤0,则这个基本可行解使最优解
- 在极大化问题中,对于某个基本可行解,所有zi−ci≥0,则这个基本可行解使最优解
zi−ci=cBB−1pi−ci,j=1,⋯,n
单纯形方法步骤
首先要确定一个初始基本可行解,设初始基为B
- 解BxB=b,求得xB=B−1b=b,令xN=0,计算目标函数值f=cBxB
- 求单纯性乘子w,解wB=cB,得到w=cBB−1,对于所有非基变量,计算判别数zj−cj=wpi−ci,令
zk−ck=i∈Rmax(zi−ci)
若zk−ck≤0,则对于所有非基变量zi−ci≤0对应基变量的判别数总是零,因此停止计算,线性基本可行解即为最优解
- 解Byk=pk,得到yk=B−1pk,若yk≤0,即yk的每个分量均为非正数,则停止计算,问题不存在有限最优解
- 确定下标r,使得
yrkbr=min(yikbi∣∣∣yik>0)
- xBr为离基变量,xk为进基变量,用pk替换pBr,得到新的基矩阵B,返回步骤一
单纯形方法收敛性
令
zk=ck=max(zj−cj)
每次迭代都会是一下三种情况
- zk−ck≥0,这时现行基本解可行解就是最优解
- zk−ck>0且yk≤0,无界情形
- zk−ck>0且y>0,可以求出新的可行解,若xk=yrkbr>0,则函数值下降
当极小化线性规划问题存在最优解的时候,对于非退化情形,每次迭代中,均有:
xB=B−1b=b>0
从而,自然的
xk=yrkbr>0
对于非退化情形,经过迭代,函数值减小,每次迭代得到的基本可行解互不相同,基本解个数有限,所有有限次迭代必能达到最优解
对于非退化问题,单纯性方法经有限次迭代能达到最优基本可行解,或得出无界结论
单纯形方法表格法
- A:写作(B,N)
- x:写作[xBxN]
- c:写作(cB,cN)
线性规划可以等价形式
mins.t.ff−cBxB−cNxN=0BxB+NxN=bxB≥0,xN≥0
对上诉条件2两端乘B−1得到,等于对方程组进行行变换,将基变量的系数变为单位矩阵
xB+B−1NxN=B−1b
利用cB左乘两端,加到条件1上,可以得到
f+0⋅xB+(cBB−1N−cN)xN=cBB−1b
线性规划可以等价形式
mins.t.fxB+B−1NxN=B−1bf+0⋅xB+(cBB−1N−cN)xN=cBB−1bxB≥0,xN≥0
化为表格
|
f |
xb |
xN |
右端 |
| xB |
0 |
Im |
B−1N |
B−1b |
| f |
1 |
0 |
cBB−1N−cN |
cBB−1b |
其中
- B−1N:B−1(pN1,pN2,⋯,pNn−m)=(yN1,yN2,⋅,yNn−m)
- B−1b:(b1,b2,⋅,bm)T
令xN=0,则基变量xB=B−1b
cBB−1N−cN=cBB−1(pN1,pN2,⋯,pNn−m)−(cN1,cN2,⋯,cNn−m)=(zN1,zN2,⋯,zNn−m)−(cN1,cN2,⋯,cNn−m)=(zN1−cN1,zN2−cNZ,⋯,zNn−m−cNn−m)
从而可以得到
|
xB1 |
⋯ |
xBr |
⋯ |
xBm |
⋯ |
xj |
⋯ |
xk |
|
|
| xB1 |
1 |
⋯ |
0 |
⋯ |
0 |
⋯ |
y1j |
⋯ |
y1k |
⋯ |
b1 |
| ⋮ |
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
| xBr |
0 |
⋯ |
1 |
⋯ |
0 |
⋯ |
yrj |
⋯ |
yrk |
⋯ |
br |
| ⋮ |
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
|
⋮ |
| xBm |
0 |
⋯ |
0 |
⋯ |
1 |
⋯ |
ymj |
⋯ |
ymk |
⋯ |
bm |
| f |
0 |
⋯ |
0 |
⋯ |
0 |
⋯ |
zj−cj |
⋯ |
zk−ck |
⋯ |
cBb |
假设b=B−1b≥0,则上表已经有一个基本可行解,即
xB=b,xn=0
- 若cB−1N−cN≤0,则现行基本解为最优解
- 若cB−1N−cN>0,需用主元消去法求改进的基本可行解
- 如果在表的最后一行中,有zk−ck=max(zj−cj),则选择xk,所对应的列为主列
- 令yrkbr=min(yikbi∣∣∣yik>0),则第r行为主行
- 主列和主行交叉处的元素yrk称为主元
- 用主元yrk除第r行(主行),再把r行的若干倍分布加到各行,使主列中个元素(除r行)为0
- 也就是把主列化为单位向量,xk由非基变量变成基变量,xBr由基变量变成非基变量
- 基变量的系数矩阵B在表中总是单位矩阵,因此右端列b就是新的基变量取值
- 然后进行下一次迭代即可
两阶段法
使用单纯形方法,需要给定一个初始基本可行解,我们需要直到怎么求初始基本可行解,考虑下面的线性规划标准形问题
mins.t.cTxAx≤bx≥0
- 若A中包含m阶单位矩阵,则初始基本可行解可以立刻得到
- A=[Im,N]
- x=[xBxN]=[b0]
- 若A中不包含m阶单位矩阵,则采用以下方法
设A中不包含m阶单位矩阵,为了使约束方程的系数矩阵中含有m阶单位矩阵,将每一格方程增加一个非负变量,令
Ax+xa=bx≥0,xa≥0
即
(A,Im)[xxa]=bx≥0,xa≥0
显然
[xxa]=[0b]
是一个基本可行解,上述的意义在于,从(A,Im)[xxa]=b已知的基本可行解出发,能够求出一个使xa=0的基本可行解,那么就可以得到原来线性规划问题的基本可行解
向量xa≥0称为人工变量
- 松弛变量:将不等式约束改为等式约束,改写前后问题等价
- 人工变量:改变了原来约束条件,改写前后问题不等价
两阶段法·第一阶段
- 利用单纯形方法消去人工变量
- 把人工变量都变成非基变量
- 求出原来的问题的基本可行解
mins.t.eTxaAx+xa=bx,xa≥0
- e=(1,1,⋯,1)T,分量全是1的m维列向量
- xa=(xn+1,xn+2,⋯,xn+m)T,人工变量构成的m维列向量
x=0,xa=b是线性规划的一个基本可行解,目标函数在可行域上有下降,则必然存在最优基本可行解
求解线性规划,设得到的最优基本可行解是(xT,xaT)T,此时必有下列三种情形之一
- xaT=0,此时线性规划无可行解
- xaT=0且xa的分量都是非基变量,此时m个基变量都是原来的变量,则[xxa]=[x0]是线性规划的基本可行解,则x=x是原线性规划的一个基本可行解
- xaT=0且xa的分量都是基变量,可用主元消去法
- 把原变量中非基变量引进基,替换出基变量中的人工变量,再开始二阶法的第二阶段
两阶段法·第二阶段
- 将第一阶段的解,带入回去
- 对于刚刚引入的人工变量的列,可以直接除去
- 第一阶段的基变量,对应第二阶段的基变量,其等式的值即为第一阶段解的值
单纯性方法退化情景
在非退化的情形下,单纯性方法经过有限次迭代必然达到最优解。但是对于非退化情形(B−1b≥0且至少有一个分量是0),即使最优解存在,也有可能求不出最优解,出现循环现象
摄动法
考虑以下线性规划问题
mins.t.cxAx=bx≥0
让向量b向右摄动,即
b(ε)=b+j=1∑nεjpj
- ε是充分小的正数
- εj表示ε的j次方
- pj是矩阵A的第j列
问题转化为
mins.t.cxAx=b(ε)x≥0
定理:对于线性规划问题,存在实数ε1>0,使得当0<ε<ε1时,摄动问题是非退化的。
证明:按照之前,A的秩是m,因此它能分解为[B,N],其中B可逆,x可以分解为x=[xBxN],由Ax=b(ε)得到
xB=B−1b(ε)−B−1NxN=B−1(b+j=1∑nεjpj)−B−1NxN=B−1b+j=1∑nεjB−1pj−B−1NxN=b+j=1∑nεjyj−B−1NxN
把上式按照分量写出
xBi=b+εBi+j∈R∑yijεj−j∈R∑yijxi,i=1,⋯,m
在基B下,基本解是
xBixj=b+εBi+j∈R∑yijεj,i=1,⋯,m=0,j∈R
- 定理:设对于充分小的ε>0,x^(ε)是线性规划的基本可行解,则x^(0)是原来线性规划的基本可行解
- 推论:设对于充分小的ε>0,x^(ε)是线性规划的最优解,则x^(0)是原来的最优解
- 定理:若线性规划没有可行解,则原来线性规划也没有可行解
- 定理:若对于充分小的ε>0线性规划是无界问题则原来线性规划也是无界问题
摄动法算法
摄动法与一般单纯形方法的差别主要在于主行的选择,这种方法是按照
yrkbi(ε)=min{yikbi(ε)∣∣∣yik>0}
确定主行,关键是确定最小比值,由于bi(ε)/yik是ε的多项式,即
yikbi(ε)=yikbi+j=1∑nyikyijεj
ε是充分小的正数,该多项式值的大小主要决定于低次项,为了确定最小比值,只需要从ε的零次项开始,逐项比较幂的系数
- 首先比较零此项:bi/yik(yik>0)
- 再比较一次项系数,再比较二次项系数
算法:
I0={r∣∣∣yrkbr=min{yikbi∣∣yik>0}}
若I0只有一个元素r,则xBr为离基变量
Ij={r∣∣∣yrkyrj=i∈Ij−1min{yikyij}}
若Ij只有一个元素r,则xBr为离基变量
- 置j:=j+1转上一步骤
Bland规则
- 选下标最小的正检验数zj−cj,所对应的非基变量xNr作为进基变量
- 离基变量xl的确定:如果同时有几个yikbi达到最小,就选其中下标最小的那个基变量作为离基变量。
r=min{r∣∣∣yrkbr=min{yikbi∣∣yik>0}}
- Bland规则的优点是简单易行,但缺点是只考虑最小下标,而不考虑目标函数值下降的快慢。故其效率比字典序或原来单纯形法低
- 在实际中,退化是常见的,但退化不一定产生循环。事实上,产生循环是较罕见的。
对偶理论
线性规划中普遍存在配对现象,即对每一个线性规划问题,都存在另一个与它有密切关系的线性规划问题。
对称形式的对偶
mins.t.cxAx≥bx≥0
maxs.t.wbwA≤cw≥0
|
原问题 |
对偶问题 |
| 目标函数 |
c与x的内积 |
b与2的内积 |
| 不等式约束 |
Ax≥b,m个不等式 |
wA≥c,n个不等式 |
| 分量不等式约束 |
Aix≥bi |
wpj≥cj |
| 变量约束 |
xj≥0 |
wj≥0 |
例:
mins.t.x1−x2x1+x2≥5x1−2x2≥1x1,x2≥0⇓maxs.t.5w1+w2w1+w2≥1w1−2w2≥−1w1,w2≥0
非对称形式的对偶
mins.t.cxAx=bx≥0
先将上式写成等价形式
mins.t.cxAx≥b−Ax≥−bx≥0⇓mins.t.cx[A−A]x≥[b−b]x≥0
根据对称对偶的定义,对偶问题为
maxs.t.ub−vbuA−vA≤cu,v≥0
令w=u−v,w没有非负限制,得到
maxs.t.wbwA≤c
与原问题不同的是,对偶问题没有变量的正负号限制,称为非对称对偶
对偶问题一般情形
实际中线性问题一般含有≥,≤,=等几种约束条件
mins.t.cxA1x≥b1A2x=b2A3x≤b3x≥0
先引入松弛变量,写为等价形式
mins.t.cxA1x−xs=b1A2x=b2A3x+xt=b3x,xs,xt≥0⇓mins.t.cx+0⋅xs+0⋅xt⎣⎡A1A2A3−Im10000−Im3⎦⎤⎣⎡xxsxt⎦⎤=⎣⎡b1b2b3⎦⎤x,xs,xt≥0
根据对称对偶的定义,对偶问题为
maxs.t.w1b1+w2b2+w3b3w1A1+w2A2+w3A3≤cw1≥0w3≤0w2无限制A1x≥b1A3x≤b3A2x=b2
- 原问题中约束A1x≥b1对应的对偶变量w1有非负限制
- 原问题中约束A2x=b2对应的对偶变量w1没有限制
- 原问题中约束A3x≤b3对应的对偶变量w1有非正限制
上述三种形式的对偶中,原问题和对偶问题是相对的,相互对偶的两个问题中,任何一个问题均可作为原问题,另一个作为对偶问题
对偶问题总结
|
原问题 |
对偶问题 |
| 问题 |
极大化:max |
极小化:min |
| 问题 |
极小化:min |
极大化:max |
| 系数·右端向量 |
系数:c,右端向量:b |
系数:b,右端向量:c |
| 变量约束 |
minAx≥b,maxAx≤b |
w≥0 |
| 变量约束 |
minAx≤b,maxAx≥b |
w≤0 |
| 变量约束 |
= |
无限制 |
| 不等式约束 |
minx≥0,maxx≤0 |
wA≤0不等式 |
| 不等式约束 |
minx≤0,maxx≥0 |
wA≥0不等式 |
| 不等式约束 |
无限制变量 |
=等式 |
对偶定理
定理:设x(0)和w(0)分别是原问题和对偶问题的可行解,则cx(0)≥w(0)b
j=1∑ncjxj主问题函数值≤i=1∑mbiyi≤对偶问题函数值
也就是原问题的目标函数值大于对偶函数值,就原问题和对偶问题的可行解而言,对于对偶问题中的两个问题,每一个问题的任何一个可行解处的目标函数值,都给出另一个问题的目标函数值的界
- 极小化问题给出极大化的目标函数值的上界
- 极大化问题给出极小化的目标函数值的下界
推论:若x(0)和w(0)分别是原问题和对偶问题的可行解,且cx(0)=w(0)b,则x(0)和w(0)分别是原问题和对偶问题的最优解
推论:原问题和对偶问题有最优解的充要条件是它们同时具有可行解
推论:若线性规划(对称对偶)存在一个对应基B的最优基本可行解,则单纯形乘子w=cBB−1是对偶问题的一个最优解
推论:
原问题的目标函数在可行域上无下界,则对偶问题无可行解对偶问题的目标函数在可行域上无上界,则原问题无可行解
定理;设原问题和对偶问题存在最优解,则另一个问题也存在最优解,且两个问题的目标函数的最优值相等
互补松弛性质
定理:设x(0)和w(0)分别是原问题和对偶问题的可行解(对称对偶),那么x(0)和w(0)都是最优解的充要条件是,对所有i和j,下列关系成立
xj(0)>0w(0)pj<cjwi(0)>0Aix(0)>bj⇒w(0)pj=cj⇒xj(0)=0⇒Aix(0)=bj⇒wi(0)=0
定理:设x(0)和w(0)分别是原问题和对偶问题的可行解(非对称对偶),那么x(0)和w(0)都是最优解的充要条件是,对所有j,下列关系成立
xj(0)>0w(0)pj<cj⇒w(0)pj=cj⇒xj(0)=0
强互补松弛定理
若对称对偶问题存在最优解,则必存在满足强互补松弛条件的最优解,即存在最优解(x,xs)和(w,ws),使得由对应分量构成的所有二元数值{(xj,wm+j),xn+i,wi ∣ j=1,2,⋯,n;i=1,2,⋯,m}中,每个二元数组均包含一个正数,其中wm+j和xn+i分别是松弛变量ws和xs的第j个和第i个分量
参考文献
- 最优化 - 理论与算法丨陈宝林丨第二版丨7-302-11376-9