1、线性规划理论与模型应用,北京工业大学应用数理学院,束金龙 闻人凯科学出版社,第一章 线性规划,主要内容,1.1 引言1.2 线性规划模型1.3 线性规划解的定义集图解法1.4 线性规划的单纯形法1.5 退化情况的处理1.6 两阶段法1.7 改进的单纯形法,1.1引言,线性规划(Linear Programming)问题, 简称LP问题,是运筹学(Operations Research)中最基本, 也是最重要的内容, 被广泛地应用于军事决策、企业管理、工程设计、交通运输等领域. 特别是经济领域应用更为广泛, 有资料称, 在对500家有相当效益的公司所作的评述中, 有85%的公司都曾应用了线性规划
2、。对线性规划贡献最大的应属美国数学家丹齐格(G.B.Dantzig), 他在1947年提出了求解线性规划问题的单纯形法(Simplex Method), 同时给出了许多很有价值的相关理论, 为线性规划奠定了理论基础. 1953年, G.B.Dantzig又提出了改进单纯形法, 较之于基本单纯形法, 改进单纯形法更适用于大规模线性规划问题的计算机实现. 1954年Lemke提出了对偶单纯形法(Dual Simplex Method)。,G.B.Dantzig的单纯形法有两个缺陷, 其一、如果线性规划问题是退化的, 算法有可能出现迭代点之间的循环而导致算法计算失败; 为避免出现循环, 相继出现了字
3、典序方法, 摄动方法, 特别在1976年, R.G.Bland提出了避免出现循环的最小指标原则, 使循环问题得以解决, 也使线性规划的理论更加完善。单纯形法的第二个缺陷是, 1972年, V.Klee和G.Minmty构造了一个例子, 发现单纯形法的迭代次数是指数次运算. 一般认为求解一个问题的算法, 运算次数如果是问题规模的多项式函数称为多项式算法, 则这一问题可有效地用计算机进行求解, 而单纯形法不是多项式算法. V.Klee和G.Minmty的例子使单纯形法受到了严重的挑战, 也提出了一个新的问题-有无求解线性规划问题的多项式算法。,线性规划发展过程,1979年, 前苏联青年数学家哈奇安
4、(Khanchiyan)提出了求解线性规划问题一个新算法-椭球算法, 并在理论上证明了该算法是一个多项式算法. 这一结果在全世界引起了极大轰动,被认为是线性规划理论上的历史突破. 然而在实际计算中, 该算法并没有象理论上对单纯形法所表现出的优越性, 椭球算法的数值实验是失败的. 但哈奇扬的贡献在于他给出了求解线性规划多项式算法的存在性问题1984年, 在美国AT&T公司Bell实验室工作的印度数学家卡马卡(N.Karmarkar)又提出了一个求解线性规划问题多项式算法-Karmarkar算法, Karmarkar算法本质上属于内点法, 该算法不仅在理论上可证明收敛速度优于单纯形法, 而且对于一
5、些实际大规模线性规划问题的计算效果也确实优于单纯形法(据Bell实验室等机构报告).,线性规划发展过程,1980年前后,出现求解线性规划的有效集法(Active Set Method),在理论上有效集法与单纯形法是本质上等价的, 各有优缺点, 可起到相互补充的作用. 但有效集法的思想在非线性规划的一些算法中是非常重要的。中小规模甚至大型的线性规划问题,多使用单纯形法,但对超大型线性规划问题应使用卡马卡算法。本课程主要介绍单纯形法。,线性规划发展过程,1.2 线性规划模型,建立线性规划模型的三个步骤所解决实际问题中影响最终目标的因素中确定决策变量;确定目标函数;根据决策变量所受的限制条件确定决策
6、变量所应满足的约束条件。如果目标函数是线性函数,约束条件均为线性不等式或等式,则称该为线性规划模型;如果目标函数和约束条件至少有一个非线性函数则称为非线性规划模型。,例1 生产安排模型,某工厂生产I、II两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示。,线性规划模型,该工厂生产一单位产品I可获利2元,生产产品II可获利3元,问如何安排生产获利最大?,解:本问题是目标最大化问题;1)决策变量,设x1, x2为产品I、II的生产数量;2)目标函数,2x1+3x2;3)约束条件,设备限制: x1+2x2 8原材料A限制: 4x1 16原材料B限制: 4x2 12基本要求:
7、x1 0 , x2 0,线性规划模型,该模型记为如下形式max z=2x1+3x2s.t.x1+2x2 84x1 164x2 12 x1 , x2 0其中max表示本问题是最大值问题(用min表示最小值问题), s.t.(subject to的缩写)表示约束条件。,线性规划模型,例2 食谱问题,设有n种食物, 各含m种营养素, 第j种食物中第i种营养素的含量为aij,n食物价格分别为c1, c2, , cn, 请确定食谱中n种食物的数量x1, x2, , xn, 要求食谱中m种营养素的含量分别不低于b1, b2,bm情况下使费用最低。解:本问题是目标最小化问题;1)决策变量食物的数量x1, x
8、2, , xn ;2)目标函数c1x1+c2x2 + +cnxn ;3)约束条件,第i种营养素的含量不低于bi ,即ai1x1+ai2x2 + +ainxn bii=1, 2, , m。,线性规划模型,该模型记为min z=c1x1+c2x2 + +cnxn s.t. a11x1+a12x2 + +a1nxn b1 a21x1+a22x2 + +a2nxn b2 am1x1+am2x2 + +amnxn bmx1 , x2, xn 0,线性规划模型,例3 运输问题要从甲地运蔬菜2000吨,从乙地运蔬菜1100吨;分别供应A城1700吨、B城1100吨、C城200吨、 D城100吨。已知每吨运费
9、如下表格所示,如何调派可使总运费最省?,线性规划模型,解:决策变量:设x11、x12、x13、x14分别表示甲地调往A、B、C、D城的蔬菜数量;x21、x22、x23、x24分别表示乙地调往A、B、C、D城的蔬菜数量。总运费:z=21x11+25x12+7x13+15x14+51x21+51x22+37x23+15x24从甲乙两地分别调往A、B、C、D城的蔬菜数量总和分别等于2000吨和1100吨,即x11+x12+x13 +x14 =2000x21+x22+x23 +x24 =1100 运到A、B、C、D城的蔬菜数量应分别为1700吨、 1100吨、 200吨、 100吨,即x11+x21
10、= 1700x12+x22 = 1100x13+x23 = 200x14+x24 = 100,线性规划模型,该模型可以表示为minz=21x11+25x12+7x13+15x14+51x21+51x22+37x23+15x24s.t.x11+x12+x13 +x14 =2000x21+x22+x23 +x24 =1100x11+x21 = 1700x12+x22 = 1100x13+x23 = 200x14+x24 = 100 xij 0 (i=1,2; j=1,2,3,4)运输问题是一类特殊的线性规划问题,第3章将专门讨论。,线性规划模型,例4 截料问题现有15米长的钢管若干,生产产品需要4
11、米、5米、7米长钢管各为100、150、120根,问如何截取才使原材料最省?此类问题需要先确定原材料钢管截取为产品钢管的各种方案,然后再确定决策变量(则是各个方案采用的数量),原材料钢管的截取方案如表中所示,线性规划模型,解:设按第i种方案截取xi根原料,i=1,2,3,7,得模型如下:minz= x1 + x2 + x3 + x4 + x5 + x6 + x7 s.t.2x1 + x2 + x3 120x2 +3x3 + 2x4 + x6 1502x3 +x5 + 2x6 + 3x7 100xi 0(i=1,2,7)且为整数。此类问题成为整数线性规划问题称为整数规划问题,线性规划模型,线性规
12、划标准形及解的基本概念,如前所述的模型,可归纳出如下形式的问题min(或max)z= c1 x1 + c2x2 + + cn xn s.t.a11x1+a12x2+a1nxn (=、)b1a21x1+a22x2+a2nxn (=、)b2 am1x1+am2x2+amnxn (=、)bmxj 0 (j=1,2,n)此形式为线性规划问题的一般形式,线性规划标准型及解的基本概念,为便于讨论,我们约定线性规划的标准形式如下minz= c1 x1 + c2x2 + + cn xns.t.a11x1+a12x2+a1nxn = b1a21x1+a22x2+a2nxn = b2 am1x1+am2x2+am
13、nxn = bmxi 0 (i=1,2,n)(并bi全为非负值, i=1,2,m). 也可表示为如下紧凑型式,线性规划标准型及解的基本概念,记行向量c=(c1,c2,cn)称为目标函数的系数向量,列向量x=(x1,x2,xn)T称为决策向量,b=(b 1, b 2, bm) T称为右端向量,矩阵,称为系数矩阵,矩阵形式的线性规划标准形为(其中b0 ):,一般形式转换为标准形,目标函数是求最大值max z=c1x1 +c2x2+ cn xn应转换为求最小值问题, 令z= - z即目标系数乘以-1为min z= - z= -c1 x1 c2x2 cn xn如果右端项bim),其秩为m,B是矩阵A中
14、的一个mm阶满秩子阵,称B是线性规划问题的一个基阵或简称为基。不妨设B由前m列构成:,线性规划解的定义,B中的每一列Aj称为基向量,与基向量Aj对应的变量称为基变量,其他的变量称为非基变量,在约束方程中,令所有非基变量的值为0,即xm+1 = xm+2 = = xn =0则从方程组Ax=b可求得基变量的唯一解 xB = (x1, x2, , xm)T=B-1b称x= (x1, x2, , xm , 0, , 0)T为线性规划问题的基解,显然基解的个数不超过 个,当基解满足0时称为基可行解。,线性规划解的定义,概念小结可行解:满足约束方程和非负条件;可行域:所有可行解构成的点集;基阵:约束系数矩
15、阵中一个满秩子阵;基变量:基阵的列对应的决策变量,其它称为非基变量;基解:在确定的基下令非基变量为0所确定的解;基可行解:既是基解又是可行解;,线性规划解的定义,线性规划可行域的极点与基可行解的关系凸集如果集合C中任意两个点其连线上所有点均在集合C中,称C为凸集。其数学表述为任取x(1) C和x(2) C,对所有0 1,均有 x(1) +(1- )x(2) C极点(顶点)称x为C的极点,如果存在x(1)C和x(2) C使得x= x(1) +(1- ) x(2) (0 1),当且仅当x(1)= x(2)=x时成立。凸集的示意图,线性规划解的定义,定理1.1 若线性规划问题存在可行解,则可行域D必
16、是凸集。证:设x(1)D和x(2)D,即Ax(1)=b,x(1)0;Ax(2) =b , x(2)0,任取0 1,对于x=x(1)+(1-)x(2)则有 Ax= A(x(1)+(1-)x(2) )= A x(1)+(1-)Ax(2)= b + (1- )b=b因 0, (1-) 0,x(1)0,x(2)0,所以x=x(1)+(1-)x(2) 0,线性规划解的性质,引理1.1 线性规划问题的可行解x=(x1, x2, , xn)T为基可行解的充要条件是x的正分量对应的系数矩阵中列向量线性无关。证:必要性、基变量对应的子阵满秩,结论显然成立;充分性、不妨设正分量为前r个x1, x2, , xr 对
17、应的列向量A1, A2, , Ar线性无关,显然rm。若r=m,对应的列向量构成基阵,x=(x1, x2, , xr, 0, ,0)T是基解;若rm,因A的秩为m,所以可在后n-r的列中找出m-r个列向量与A1, A2, , Ar线性无关构成基阵,对应的解也就是基解,同时满足非负条件。,线性规划解的性质,定理1.2 x是线性规划问题的基可行解的充要条件是可行域D的极点。证:必要性、设x=(x1, x2, , xr, 0, ,0)T是基可行解,若不是可行域D的极点,则存在两个不同的可行解x(1)、x(2)D和01使x= x(1)+(1-)x(2) ,因 xr+1 = = xn=0,显然代入方程A
18、x=b, 则有两式相减,则有因A1, A2, , Ar线性无关所以必有x(1)=x(2)成立,矛盾。,线性规划解的性质,充分性、设x是可行域D的极点,不失一般性假设前r个分量为正,若A1, A2, , Ar线性无关,由引理1.1可知x是基可行解;若A1, A2, , Ar线性相关可推出矛盾,如果线性相关则存在一组不全为零的d1, d2, , dr使 d1A1+d2A2+drAr=0取x(1) =(x1+d1, x2+ d2, , xr+ dr, 0, ,0)Tx(2) =(x1- d1, x2- d2, , xr- dr, 0, ,0)T并令 则有x(1)0,x(2)0,Ax(1) =b,Ax
19、(2) =b,x=(x(1) + x(2)/2与x是可行域D的极点矛盾。,线性规划解的性质,图解法及解的各种情况,例1.3 用图解法求解下列线性规划问题,解:在二维平面坐标中,每个线性不等式约束的点集是一个半平面(由一条直线分界),通常一个二维线性规划问题的可行域如果是有界的,则是一个多边形围成的区域。本例可行域如图:,图解法,作出问题的可行域在可行域内作出目标函数等值线中的一条直线2x1+5x2=k标出目标函数的梯度方向,并沿梯度方向向最大值移动,到可行域的临界点取最大值。本题在(2,3)取到最大值19本题特点:可行域有界,有唯一的解,且是基可行解,图解法,例1.5 求解下列线性规划问题,图
20、解法,作出问题的可行域在可行域内作出目标函数等值线中的一条直线x1+2x2=k标出目标函数的梯度方向,并沿梯度方向向最大值移动,到边界线x1+2x2=5本题存在最优解(2,3/2)到(5,0)线段上所有点均是最优解。本题特点:可行域有界,有无穷个的最优解,图解法,例1.6 求解下列线性规划问题,作出问题的可行域作出目标函数等值线中的一条直线x1-x2=k沿目标函数梯度方向向最大值移动本题特点:可行域无界,无有限最优解,此时称问题无解,图解法,例1.7 求解下列线性规划问题,作出问题的可行域作出目标函数等值线中的一条直线x1-x2=k沿目标函数梯度方向向最小值移动在(0,1/2)取到最小值-1/
21、2。本题特点:可行域无界,有唯一的最优解,图解法,例1.8 求解下列线性规划问题,作出问题的可行域,显然,-x1+2x22、x1-2x22、x10,x20的交集为下部黄色区域,x2 3为上部黄色区域,因而本题的可行域是空集。本题特点:可行域为空,问题无解,线性规划的解的几种情况,有解有唯一最优解有无穷个最优解无解无有限解可行域为空集在有最优解情况下,无论有唯一解还是有无穷个解,最优值必在某个极点上取到。从而有以下定理。,线性规划的解的几种情况,定理1.3 若线性规划问题有最优解,一定存在一个基可行解是最优解(即最优解必在极点取到)。证:设x是最优解, 考虑x的正分量,不妨设为x=(x1, x2
22、, , xr, 0, ,0)T,若x不是基可行解,由引理1.1正分量对应的列向量A1, A2, , Ar线性相关。 我们的证明思想是:根据A1, A2, , Ar线性相关性,找到一个新的最优解其正分量个数比x至少减少一个,如果新的最优解正分量对应的列向量还线性相关我们还可以再找一个新的最优解其正分量个数又可以减少一个,,直到找到的最优解正分量对应的列向量是线性无关,即是基可行解为止。,线性规划的解的几种情况,类似定理1.2证明,如果A1, A2, , Ar线性相关可以找到两个不等的可行解x(1) =(x1+d1, x2+d2, , xr+dr, 0, ,0)Tx(2) =(x1- d1, x2
23、-d2, , xr-dr, 0, ,0)T其中 ,使x=(x(1) + x(2)/2,注意到x(1)和 x(2)中至少有一个非零分量比x少,因为x是最优解,所以cx(1) =c(x+d)=cx+cdcxcx(2) =c(x -d)=cx-cdcx因而cd=0,即cx(1) =cx(2) =cx。即存在一个最优解其正分量个数减少一个,定理得证。,作业,P36 20,21,最优性条件考虑线性规划问题,1.4 线性规划单纯形法,其中rank(A)=m,记 A=(A1,A2,An),为便于讨论设A的前m列线性无关,将A划分为A=(B,N),这里B=(A1,A2,Am)N=(Am+1,Am+2,An)相
24、应的记,则 Ax=b等价于BxB+NxN=b因B可逆,则有xB +B-1NxN=B-1b, xB = B-1bB-1NxN展开成如下形式:,最优性条件,目标函数为:,令xN=0,则xB=B-1b,z=cBB-1b,则1) 如果xB=B-1b0,则,最优性条件,2) 如果CNCBB-1N0,则对任何可行点x,均有,从而x*是最优解。,定理1.4 线性规划(LP)问题的基可行解为最优解的充要条件是其检验数0。在基B下,记Yj=B-1Aj =(y1j, y2j, ymj)T,则,最优性条件,从而目标函数也可以用另一种表示方式:,其中对应于基变量的检验数满足:(i=1,2,m),2. 基可行解的转换,
25、当某基可行解不满足最优性条件时,我们将寻求另一个新的基可行解,其目标函数值将有一定改善。设当前基可行解不是最优解,则有某个k0,则新的解为:,而新解必须必须满足非负性,即x0,显然如果yik0必有xi 0; 如果yik0则xk=必须满足,在新的解中xk变为基变量,xr=0变为非基变量,而原基矩阵的第r列Ar列由第k列Ak代替,可以很容易证明替换之后新矩阵仍是满秩,即仍构成基矩阵。,定理1.5 设xB=B-1b0,xN=0为当前基可行解,设检验数k0, 则存在,基可行解的转换,其目标函数值改变了k。,定理1.5给出了一个基可行解不是最优解的条件和得到另一个新基可行解的方法(其目标函数将有所改善)
26、。检验数k0是表明当前基可行解不是最优解,xk将成为新的基变量;确定也就决定了出基变量xr和新的基可行解。通常这一基可行解之间的转换可通过表上作业进行。,基可行解的转换,3. 单纯形表格,前述的求解方法可通过被称为单纯形表格法的过程完成。为方便起见,设前m个决策变量为基变量,以下表格对应初始基可行解,单纯形表格,首先在表格最下一行找最小的检验数k,如果k0,则当前基本可行解为最优解;如果k0,则称此解为非退化的,否则称为退化的。如果线性规划问题至少有一个基可行解是退化的,则称此问题是退化的。在使用单纯形法求解线性规划时,如果所有基可行解均是非退化的,则每次的0,从而目标函数值总有改善,则经过有
27、限此的迭代,就一定可求出最优解或确定问题无有限最优解。如果问题是退化的,当某次迭代的基可行解是退化的,即存在基变量xr=0,而相应的系数如果yrk0,则会出现=0,从而调入的基变量xk=0,此时目标函数值的改变量k =0;以后的基可行解中又会存在某基变量为0,如此有可能出现无限循环现象。下面给出一个退化的例子,1.5 退化情形的处理,例1.8 用单纯形法求解如下问题,退化情形的处理,解:使用单纯形表格求解,x5,x6 ,x7取为初始基变量,x1进基变量,x5出基变量,主元y11,第1次迭代之后,退化情形的处理,x2进基变量,x6出基变量,主元y22 ,第2次迭代之后,x3进基变量,x1出基变量
28、,主元y13,第3次迭代之后,退化情形的处理,x4进基变量,x2出基变量,主元y24 ,第4次迭代之后,x5进基变量,x3出基变量,主元y15,第5次迭代之后,退化情形的处理,x6进基变量,x4出基变量,主元y26 ,第6次迭代之后,第6次迭代之后又回到初始表格,出现循环!,为避免迭代过程出现循环可采用如下方法:Bland法则 进基与出基变量的确定法则设当前基可行解的基变量为进基变量的选择,不取检验数最小的为进基变量,而取k=min j | j 0出基变量的选择,当也有多个同时达到最小值时,取其中下标最小者r为出基变量。即,退化情形的处理,定理1.7 遵守Bland规则(或最小指标规则)的单纯
29、形法不会发生循环.,证明: 反证法, 假设遵守Bland规则的单纯形法仍发生循环,考虑在循环过程中调入又调出基的x的基变量集,设xk*为调入调出集中下标最大者, 并设其在第s次迭代被调入, 在第t次迭代又被调出, 记第t次迭代时基矩阵为B(t), 基变量指标集FB(t) =f1, f2, , fm,非基变量指标集为FN(t) ,则fr=k* ,设第t次迭代调入变量为xk(kFN(t),相应的主元所在列为Yk;第s次迭代时的基矩阵为B(s),检验数记为(s)则有令d=(d1, d2, , dn)T定义如下:,退化情形的处理,则有Ad=Ak - B(s)Yk= Ak - B(s) B(s)-1Ak
30、 =0,注意到第t次迭代时xk为入基变量,因而k(t)k*时,因xk*为调入调出集中下标最大者,则xj或者始终在基中,此时j(s)=0,或者始终在基外,此时由dj=0,因而有j(s) dj=0;当j=k*=fr时,xk*为第s次迭代时的入基变量,所以j(s) =k*(s) 0成立。当jk*=fr时,可证 j(s) 0且dj 0。(1) 先证j(s) 0,如果xj是第s次迭代时没有进入基的非基变量,由Bland规则1),有j(s) 0,如果xj是第s次迭代时的基变量,则有j(s)=0;,退化情形的处理,(2) 再证dj0,如果xj是第t次迭代时没有进入基的非基变量,则有dj=0,如果xj是第t次
31、迭代时的基变量,则有某个fi=jFB(t),注意到在循环过程中每步确定的必然为0,因yrk为主元,由Bland规则2),对一切fifr, 必然yik0, 即总之当j0,从而原问题无可行解。,使基变量的检验数为0得到初始单纯形表,例1.11 求解下列线性规划问题,两阶段法,解:化为线性规划问题的标准形,利用单纯形表求解过程如下:,两阶段法,显然,此时以求出最优解x=(3,2)T,原问题最优值5,但非基变量3=0,此时将x 3调入基目标函数仍取最优值5,见如下表,两阶段法,以上两个表格确定的基可行解均是最优解,因此这两个解之间连线的所有点均是最优解,目标函数值均是5,即最优解有两种表现方式:,两阶
32、段法,例1.12 求解下列线性规划问题,两阶段法,解:化为线性规划问题的标准形,单纯形表格迭代过程如下:,两阶段法,最优解为x=(0, 2)T,最优值z*=-2,非基变量x1的检验数1=0,且Y10,从而x1可无限增大,最优值仍是z*=-2,即以下射线上的点均是最优解。x=(,+2)T,0,作业,P36 23-10,11,12,13, 14 26,1.7 改进单纯形法,基本单纯形法最大的优点是对较小的线性规划问题可在单纯形表上进行计算。1953年,G.B.Dantzig提出了改进单纯形法,较之于基本单纯形法,改进的单纯形法算法更为紧凑,更适合应用新的计算技术如LU分解,更适用于在计算机上实现。
33、改进单纯形法是以基矩阵的逆阵B-1为迭代阵而设计的一个算法,简单的可叙述为, 首先由B-1计算检验数j,jFN,检验最优性条件或找到入基变量xq,不是象基本单纯形法那样需要所有的yj,jFN,只要计算yq= B-1Aq,求出步长并同时得到出基变量, 此后修正B-1进行下次迭代。改进单纯形法除迭代阵B-1外,均是在原始数据上进行计算,从某种意义上可减少积累误差。,改进单纯形法,1.迭代过程设x(k)是第k次迭代时的基可行解,基变量、非基变量指标集分别为FB=f1,fm,FN=fm+1,fn基矩阵、非基矩阵分别为,B的逆矩阵记为,改进单纯形法,相应于基分别将x, c划分为xB, xN, cB, cN, 检验数为j, j=1, 2, , n, 目标函数, 约束方程分别等价于,如果对所有jFN,均有j 0,则当前基可行解为最优基可行解;否则存在q0,原问题无可行解;若z=0,则由指标集F形成cB,计算检验数j=cj - cBB-1Aj,令flag=2,转2)进入第二阶段;若flag=2(第二阶段),则xB= ,xN =0为最优解,z为最优值,结束计算。求进基变量 q=minj|j 0, ,改进单纯形法,求出基变量 计算yq= B-1Aq,如果所有yiq0则原问题无有限解(必然flag=2),结束计算;否则求步长,更新解及迭代阵,调整基变量指标集 Fr=q,转2)。,