![实用运筹学:案例、方法及应用](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=1738950001-R70ojMEuraEo6YyYB0W0rKvbyGREpMPP-0-92d0b91b9ad280bcd5232324a26b1dc0)
或简写成
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-015-2.jpg?sign=1738950001-s9Le2qL5Aj3nUqUt4pnKZBWi7j5wlCDA-0-885612b44ce70a97dce65789dd60119a)
令
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=1738950001-D4Ivp00Ahf3SMALATpXL53lp7utEi5OF-0-1d5e14bed7ae2bc75469ffdd7073b314)
非标准形式的线性规划问题,可以通过一些简单代换化为标准线性规划问题。
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=1738950001-1PWLYuuQmiAdEEAjfGrNVlkXvShvQ1lI-0-3a46f88a0da400da3b6aa12c782685cb)
解:令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=1738950001-nBCeeH59sJEKPQIo7Sj4ZLiF5rJNCDWW-0-6236a45673b940f0cc5c1eb5b32fe5a9)
1.3.2 线性规划解的概念
对于线性规划的标准型:
max z=CX
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-1.jpg?sign=1738950001-0bAEWo0HGi3d4iZ7DbSiff8vH8mUntzV-0-e5fc3582171c530fe27ec448d28d4fdd)
设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=1738950001-DPlV4nh2lMG6IG2azsaf6ocardIwP5RQ-0-18a7218213b20c43fa99cf95322f1ddd)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-3.jpg?sign=1738950001-ZIEbDnuLtCx5eJe9wXuqotaYsnX8MCF3-0-b0079c9dbb15671cd05cb3c491f310a3)
将式(1-7)代入目标函数式中,整理得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-4.jpg?sign=1738950001-eQSRZkTrhdMmBohaD7PYPNzALvMYyYrb-0-6df12351ae8e7c138e29de3534a70f48)
令,于是i=1 i=1
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-1.jpg?sign=1738950001-RMTDRvmewHfMtHS67505fbfWOdgLwCaO-0-5198078f159a0f6cc2c472d48c6ba898)
再令σj=cj−zj,j=m+1,…,n,其中σj称为检验数,则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-2.jpg?sign=1738950001-rkVbFoI1t5dKNPjtX9jUnDSehjpJAUlZ-0-4c0e6425606cd1ceb74ef91969f29568)
由于是常数,式(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=1738950001-qd6w3YGoljcZavElhBpwiJuzZgpMwujX-0-a662d70b5d27e590339b239cb8eb1c1e)
若让原来的非基变量仍取值为0(xm+k除外),则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-8.jpg?sign=1738950001-pIdDNfTIWPQFrBSGZtEHWt9TBvZptJg5-0-78dc7c125736eb5b4d09e88e73107e2f)
存在时,取
,这时
,
从而,我们可以得到一个可行解
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-13.jpg?sign=1738950001-tir3zAfyi00xktE61BrB8b40QBiCf19n-0-b3cbb9668e663363f27d81d50d1dd5ec)
故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=1738950001-eH5cGRRk9uPHylVfkQMt2twpgsLVPVIh-0-ad4365fc6f4de56125f0d9540d4dbe35)
=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=1738950001-U0ZAI1UNvqHeGg35KOyhrmVqXW0oJiEK-0-172d5bba081136b33f74ca05cde7054e)
例1-6 求线性规划问题:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-1.jpg?sign=1738950001-CaweKF1EX30mk8goixskFzbndE3tMYxY-0-3ebb97be1c91cc850752681042f06765)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-2.jpg?sign=1738950001-e8PkIXjX8GKrCbVZCPyRVNAZpbzfsK97-0-9deceace5fb22bdbb119f6244c13a683)
(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=1738950001-4pw0gAMgIEAijBptzMIwRU3qSeI0ei1K-0-71fa8ea8fd35420befca43a87ac9ecd7)
对应的基可行解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=1738950001-kPgXwNSznxBfhfEOFczHe7ii6Qm2EA64-0-970de9ee4ddea903aaddc86969d0942a)
(2)根据
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-5.jpg?sign=1738950001-wFHDqXLOgcMNqAuZTr7rmVW9ZQX8UnZf-0-2db907583f3f1f31cf33ec73e5074f0d)
确定换入、换出变量后,以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=1738950001-crdb143CN763snDOX8guo4DLAmTIlFvU-0-08b7e910fc6f99994ac1f197920437f7)
x2替换x5
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-1.jpg?sign=1738950001-0PsLHS126ai3HkUedCsiohpAj4kZrh7H-0-88d36a5e03ac4c9700c2c6c14219cbe3)
对应的新的基可行解
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=1738950001-nuBJUGdqE2Jk7oUy1GNKSY65KyUC6WR6-0-f2f732a2cfc443cf97b35597be5cab9e)
进行旋转运算,得到表1-7。
表1-7 例1-6单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-3.jpg?sign=1738950001-LwnMZVEJwEPBX4hpYTNJmBGJdr8WuDhh-0-23f00635d5ef9dfceddbfa7167e1f89c)
x5换入,x4换出,再次进行旋转运算,得到表1-8。
表1-8 例1-6最优单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-4.jpg?sign=1738950001-Hto9Hd6LBjLLVCVvtdD4PDlPiPOKwO4c-0-87135e12c960e3459fe20b200294d89f)
非基变量检验数,
,则该线性规划具有唯一最优解,最优解是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=1738950001-XGBjiMQYs2azjpz4xNrEuZFNpv4AhTqJ-0-b1a60791cd772c0cba9fafda05e2f341)
解:引入松弛变量x3,x4,x5(x3,x4我,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-1.jpg?sign=1738950001-ZyWgSHdzBXEcgFehbPr1LBdVBqzJAs7T-0-24df0a94e99a23c64d5a6ba79841364f)
建立单纯形表,并进行迭代运算,如表1-9所示。
表1-9 例1-7单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-2.jpg?sign=1738950001-FxsaJGTVlNNFGy0VuGASA5aqJA6wkjjZ-0-18379066814c990e06ff488964e58e2b)
非基变量检验数σ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=1738950001-qfEfSzk3ryNDSlM0FGhKSwiwFUf589Yk-0-d37645a6577f8a9e26eec9d540efbd98)
非基变量检验数σ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=1738950001-LeZQj6LuHPPRPWRaiAodueLwakIkbHP2-0-95be1f652396f3f2c85c694e4f65b3db)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-1.jpg?sign=1738950001-1ZvnsiVZW73vDyh0nmnOF6xqo9f5nwBU-0-491233e972167675cb30648fdc8d32e9)
建立单纯形,并进行迭代运算,如表1-11所示。
表1-11 例1-8单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-2.jpg?sign=1738950001-g2mfnvZuzVU7o8yX9Gmq5PhYNGHXugTR-0-3f88ad313d22687b9a71f15ccf431f1e)
本例第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=1738950001-dsRwevTOKRWUA3cEJvmPddUUWZk2q4W7-0-0e348ac2792caed72016b5d2302a5e7c)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-4.jpg?sign=1738950001-M9weN6m1aeLSBwGOxZOliLhwcG4lbgsv-0-4f14019f34609ed13c7e8498318f768c)
令x3=0,则
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-5.jpg?sign=1738950001-gvzY0nA6C0yQdF3OAnL45BLWjsRXl0dC-0-0c49da02c1fc21da84f79aff8c5b3ecc)
此时,若x2进基,则x1,x4,x5会和基变量x2同时增加,同时目标函数值无限增长,所以本题无界。