![实用运筹学:案例、方法及应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/704/32009704/b_32009704.jpg)
1.3 线性规划问题的单纯形法
1.3.1 线性规划问题的标准形式
线性规划问题的标准形式如下:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-015-1.jpg?sign=1739290070-5VTZj50Crq3PSJySk4FtlQxxelexlEYS-0-f7d0ae04b266bf6f93321a0d9c1a7546)
或简写成
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-015-2.jpg?sign=1739290070-fLxHCV4YvPeLjPBUKMiAFY1BALxbPUfr-0-824548ea710bb3d0a140372de4e0ab3b)
令
A=(aij)m×n,
aj=(a1j,a2j,…,amj)T,
C=(c1,c2,…,cn),
b=(b1,b2,…,bm)T,
X=(x1,x2,…,xn)T
则上述标准线性规划问题可以用矩阵形式表示:
max z=CX
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-016-1.jpg?sign=1739290070-MDwwK1lkv1TPzuUIqQK3Pg4wPzWEPUCY-0-8a36505fe7ef31956401b47f7e1b8f97)
非标准形式的线性规划问题,可以通过一些简单代换化为标准线性规划问题。
1. 最小值问题
目标函数为最小值问题,如,可以等价地化为最大值问题,因为
。
2. 不等式约束问题
形如aj1x1+aj2x2+…+ajnxn≤bj的不等式约束,可以通过引入所谓“松弛变量xn+1”化为等式约束aj1x1+aj2x2+…+ajnxn+xn+1=bj(其中xn+1≥0);而形如aj1x1+aj2x2+…+ajnxn≥bj的不等式约束,可以通过引入所谓“剩余变量xn+2”化为等式约束aj1x1+aj2x2+…+ajnxn−xn+2=bj(其中xn+2≥0)。
3. 变量无符号限制问题
变量xj无非负约束条件问题,可以定义,其中
,从而化为非负约束。
例1-5 将以下线性规划问题转化为标准形式。
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-016-6.jpg?sign=1739290070-PfIO48xLZp08SwxaIMhA67ARABVYNkHu-0-40e960ece7322e07bfbb04da1923c894)
解:令z'=-z,引进松弛变量x4≥0,引进剩余变量x5≥0,并令x2=x2'-x2'',其中,x2'≥0,x2''≥0
得到以下等价的标准形式:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-016-7.jpg?sign=1739290070-fdpAOo0FkpOTrfXTqIvg4ggYNugMNmZt-0-d87a2df87338853e0d972bddd3a1d5f9)
1.3.2 线性规划解的概念
对于线性规划的标准型:
max z=CX
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-1.jpg?sign=1739290070-aZZTs5OM5h1HInHaBAkbV0iWPtPz3PgC-0-ee9130a560f978dabbc6de6c7ce8f674)
设r(Am×n)=m<n,将A按列分块,记为A=(P1,P2,…,Pn)。有以下几个线性规划问题的基与解的概念。
(1)基、基变量、非基变量 A的任一非奇异m阶子矩阵B均称为线性规划的一个基;设B=(P1,P2,…,Pm),则称Pj(j=1,2,…,m)为基向量;称与其相对应的变量xj(j=1,2,…,m)为基变量;其余的变量称为非基变量。
(2)基(本)解、基(本)可行解、最优解 设B是线性规划的一个基,在AX=b中,令非基变量取零时由AX=b求出的解称为线性规划对应于基B的基(本)解,记为XB;若XB≥0,则称XB为基(本)可行解,且基B为可行基;使目标函数取到最大值的基(本)可行解称为最优解。
(3)退化的基本解 若基本解中有基变量值为0,则称之为退化的基(本)解。类似地,有退化的基本可行解和退化的基本最优解。
1.3.3 单纯形法的基本思想
线性规划的有效算法是单纯形法(Simplex Method),它是由美国运筹学家丹捷格于1947年首创的。若线性规划问题存在最优解,则必存在某一个基本可行解为最优解,所以对于给定的线性规划问题,其求解思路为:从可行域中的一个基可行解出发,判别它是否是最优解,如果不是,寻找下一个基可行解,并且努力使目标函数得到改进;如此迭代下去,直到找到最优解或判定问题无解为止。
1.3.4 最优性检验与解的判别
对标准型的一般线性规划问题,经过变换、迭代,可将线性规划约束条件中非基变量移至方程右边,得出如下形式
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-2.jpg?sign=1739290070-lvhuNGB4tt0EBCoo2H2S6Z4tTy02iBo2-0-110009cecf47ad84c9f739fa613b3084)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-3.jpg?sign=1739290070-fEVJHs3LTYnJvsOV5V9bt7j7iMuml9Fv-0-c7d9944addeb6a5ba9db19fe7119655a)
将式(1-7)代入目标函数式中,整理得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-4.jpg?sign=1739290070-OpqziCurmKCBVgjyGE8uPvij6csvsURs-0-fcae38fbf9d65bbfdee3253199580f26)
令,于是i=1 i=1
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-1.jpg?sign=1739290070-umCOzKSzhvaon3Z5YH8bxAR9QajF3kwn-0-da3f7770d19c6656e4a2de7902724312)
再令σj=cj−zj,j=m+1,…,n,其中σj称为检验数,则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-2.jpg?sign=1739290070-vWCkHuyspgsoQbTmmLKf6qVnZaiP9rW4-0-0f113a5dd0d3bf4d06219f465f2c8fb2)
由于是常数,式(1-9)表明,可以用检验数σj表示目标函数中的价值系数cj。
定理1-1最优解的判别定理 若为对应于基B的一个基可行解,对于一切j=m+1,…,n,,有检验数σj≤0,则X(0)为最优解。
事实上,在式(1-9)中,因为σj≤0,xj≥0,所以对一切xj都有z≤z0。因此,X(0)为最优解。
定理1-2无穷多最优解的判别定理 若为对应于基B的一个基可行解,对于一切j=m+1,…,n,,有检验数σj≤0,且存在某个非基变量对应的检验数σm+k=0,且存在另一个最优解,则该线性规划问题有无穷多个最优解。
证明:令决策变量为X=[x1,x2,…,xm+1,…,xm+k,…,xn]T,为线性规划问题的一个最优解。则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-7.jpg?sign=1739290070-EFTkoBT98Q70FlRLVMIyf5Gkq5LTiqHn-0-b28a0de56c4fa8c94b62269f8c450e78)
若让原来的非基变量仍取值为0(xm+k除外),则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-8.jpg?sign=1739290070-bvlMlU5RbhlneeiVmCh1z4AfejLVTyBo-0-c82332b42ab972940ccc76e68d9e267a)
存在时,取
,这时
,
从而,我们可以得到一个可行解
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-13.jpg?sign=1739290070-2Tnv9lkRvONGxKCYPTyn8Qq45ZSemeQF-0-6855d22dd595cee7974906943a5f0ea6)
故X(1)也是最优解。由于X(1)≠X(0),它们的凸组合X=αX(0)+(1−α)X(1)也是最优解。
定理1-3无界解的判别定理 若为对应于基B的一个基可行解,存在某个非基变量对应的检验数σm+k>0,并且对应的变量系数
,i=1,2,…,m,则该线性规划问题有无界解(或称为无最优解)。
证明:构造一个线性规划问题的新解X(1),它的分量为
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-16.jpg?sign=1739290070-7VXdGYw3ne1j3Sl6rTTOGjhy4NN4k7JE-0-3ff457b9630a6dfdd8349e0bc298e69a)
=0(j=m+1,…,n,但j≠m+k)
由于≤0,i=1,2,m,所以对任意的λ>0都是可行解。把x(1)代入式(1-9)中,
,当λ→+∞时,由于σm+k>0,从而z→+∞。可见,该线性规划问题目标函数无界。
1.3.5 单纯形法的计算步骤与单纯形表
单纯形表求解线性规划问题的具体步骤为:
(1)找出初始可行基,确定初始基可行解,建立初始单纯形表。
(2)根据各非基变量的检验数对线性规划问题解的情况进行判别。
① 若所有非基变量xj(j=m+1,…,n)的检验数σj≤0,则已得到最优解,问题求解完成。否则转入下一步。
② 若存在非基变量xj,其检验数σj>0,但对i=1,2,…,m,有ai,j≤0,则此问题为无界解,停止计算。否则转入下一步。
(3)根据max(σj≥0)=σk,确定xk为换入变量。如果有两个或多个相同的最大值,选取下标最小的非基变量xk为换入变量。
(4)按θ规则,计算,确定x1为换出变量。如果有两个或多个相同的最小值,选取下标最小的基变量为换出变量。
(5)以alk为主元素进行迭代(运用矩阵的初等行变换),把xk所对应的列向量Pk=(a1k,a2x,…,alk,…,amk)T转变为第l个元素为1的向量(0 … 0 1 0… 0)T。同时,将XB列的xl换为xk,CB列的cl换为ck,得到新的单纯形表。
重复步骤(2)~(5),直到问题求解结束。
单纯形法的求解过程,就是从一个基可行解转换到另一个相邻的基可行解,每一次基变换,从几何意义上说,就是从一个顶点转换到另一个顶点。
单纯形算法的实质是将非基变量视为一组参数,并将目标函数和基变量都表示成为由非基变量表示的形式。用一个矩阵来表示单纯形法迭代中所需要的全部信息,这就是单纯形表,单纯形法基本计算步骤可以在单纯形表中来完成,如表1-4所示。
表1-4 单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-019-5.jpg?sign=1739290070-TWWnjt5CxaqcEZufOa9ci4IWs8xXvqkg-0-154eed67ffd419effb7b2c31f514be70)
例1-6 求线性规划问题:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-1.jpg?sign=1739290070-lxES38ql8DUR6HSI21VQtFh9ktgFPFhv-0-a6d8cea7f1b586615b65c5d770cf83c3)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-2.jpg?sign=1739290070-CWinuMh7dqSNstGLHkGQGlEHSwHTEU9d-0-cf9de835d3109733772d052d8fb749e2)
(1)确定初始可行基为单位矩阵I=[P3,P4,P5],基变量为x3,x4,x5,非基变量为x1,x2,则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-3.jpg?sign=1739290070-CUl0NDEDNzDErbL9zGEe2nVpOFOQevh6-0-516c13e6d3ebef3d16be4f7893a6a13b)
对应的基可行解X(0)=(x1,x2,x3,x4,x5)=(0,0,8,16,12)T,目标值Z=2×0+3×0+0×8+0×16+0×12=0。将例题求解过程列成单纯形表表格形式,如表1-5~表1-8所示。
表1-5 例1-6初始单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-4.jpg?sign=1739290070-NZXkpLa8mNsfQicI0w0E8kgL2dyOVE5g-0-1d41623f5f775a35c5dfebccf1e8cc68)
(2)根据
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-5.jpg?sign=1739290070-YKHkoRxilIYjTmGzZzFLymwGDyUJpSUK-0-26e28c595e5f802536f4a4147c3caa11)
确定换入、换出变量后,以alk为主轴元素进行迭代(即高斯消元法或称为旋转运算),把xk换入基变量,对应系数列向量调成单位列向量。
在上述例题中,表1-5中非基变量对应的检验数分别为
σ1=c1−z1=2−(0×1+0×4+0×0)=2
σ2=c2−z2=3−(0×2+0×0+0×4)=3
因检验数大于0,max(σ1,σ2)=max(2,3)=3,对应的x2为换入变量,计算θ,
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-6.jpg?sign=1739290070-pYDS4r3xRYAHVCgWc3xO4K9W5GQX3bsi-0-8b81f5f83c2dc211b25ea1b49367f730)
x2替换x5
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-1.jpg?sign=1739290070-vvbnRhcwmmUwBUXiSLqE8ADtlZ1i32AJ-0-a46020a55ce2dc9f8998ff5543049988)
对应的新的基可行解
X(1)=(0,3,2,16,0)T,目标函数取值Z=9。
表1-6 例1-6单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-2.jpg?sign=1739290070-EXKE7Ahr2uHc3JQZJWcYSrHElU6gw805-0-a83d4e12fa478ffcb73899e7a714cf6c)
进行旋转运算,得到表1-7。
表1-7 例1-6单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-3.jpg?sign=1739290070-2XL1L2m4t6ZLSZzO2A8GvA0rzU3g6bfF-0-62e0ed946b0bc402d1bbb09eda812545)
x5换入,x4换出,再次进行旋转运算,得到表1-8。
表1-8 例1-6最优单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-4.jpg?sign=1739290070-0RXR8X3e7uFkpa8A4FRZO361S0YdQhKK-0-9d27baef2c9c7faf0863c9b150e4188b)
非基变量检验数,
,则该线性规划具有唯一最优解,最优解是x1*=4,x2*=2,x3*=0,x4*=0,x*5=4,目标函数最优值 z*=14。
例1-7 求线性规划问题:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-7.jpg?sign=1739290070-ZimI6D7KT6MkWvpmFPf0cGivb91Bv5t8-0-c355993627dab8cf105f14ae568f24da)
解:引入松弛变量x3,x4,x5(x3,x4我,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-1.jpg?sign=1739290070-m1rFJ5c634CSfuGNVzWC0BERX8a58nUy-0-55aa47d43c1517c4b7aef8acc04e0db0)
建立单纯形表,并进行迭代运算,如表1-9所示。
表1-9 例1-7单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-2.jpg?sign=1739290070-NO8NhYN3PvRD1WP3qATukrI85kFlaOsu-0-79cb6add64b03eaf4b50d61f757af799)
非基变量检验数σ3=−2,σ4=0,迭代已经得到最优解X*=(2,3,0,2,0)T,Z*=16,由于σ5=0,如果以x5作为换入变量,x4作为换入变量,再次旋转运算,得表1-10。
表1-10 例1-7最优单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-3.jpg?sign=1739290070-71Z1in8Y6QxCPKJddrzuc4dbFJkNziRm-0-4fc9866245e9333433a4035c0d0dc805)
非基变量检验数σ3=−2,σ5=0,得到该线性规划另一最优解,X*=(4,2,0,0,1) T,Z*=16,所以该线性规划具有无穷多最优解。
例1-8 求线性规划问题:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-4.jpg?sign=1739290070-ketcoebUPdRazUxgxJnXIv16M6GP7VPL-0-ae46f11bcd5aa08fad938849e4d61a66)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-1.jpg?sign=1739290070-hyT49YwD3fV4zXCcvIFPfOYdA88BnvqM-0-876e0b24941ea61a47262d5cb4737199)
建立单纯形,并进行迭代运算,如表1-11所示。
表1-11 例1-8单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-2.jpg?sign=1739290070-Vi9TomJjOKAxHeOJafDluOtr7ykDWjOm-0-461e7e49764df3627382f05654014014)
本例第2个单纯形表中,非基变量x2对应的检验数σ2>0,并且对应的变量系数ai,2′≤0(i=1,2,3),根据无界解判定定理,该线性规划问题有无界解(或无最优解)。
如果从方程角度来看,第2个表格还原为线性方程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-3.jpg?sign=1739290070-xcTixyg6Ypw8YxKUI5ugvN7afKl5lrKp-0-9ba4c99746f1bdea8b51c520f6922a4e)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-4.jpg?sign=1739290070-Umus1iesLC8h8dqzyPdpS9o67xE1WkKk-0-a617179fa2e58d81478d5c2e712e9d0e)
令x3=0,则
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-5.jpg?sign=1739290070-ycMJXT45p71MeZpDnckQSaSrFMqpiMyW-0-1631a3516ca66bfaf4a8a34209a57e9a)
此时,若x2进基,则x1,x4,x5会和基变量x2同时增加,同时目标函数值无限增长,所以本题无界。