![实用运筹学:案例、方法及应用](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=1739252846-TAi9pulkXbQOINUEoKTbzDQ0wnQxhmri-0-e6435916b846bab191c6210f8d925e9b)
或简写成
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-015-2.jpg?sign=1739252846-tIIsfjtN1N4PqKwb0yOLulf86xqyPHAF-0-f795104abc500b4cfd835d08b5196b11)
令
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=1739252846-OJ8YoUxbqHGVl46XExeC1IfylL7VNQVr-0-6ccc0fdcb2319b6330f15add70074433)
非标准形式的线性规划问题,可以通过一些简单代换化为标准线性规划问题。
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=1739252846-LMovMhnd9kdzwrr64OObZ9zgoqM8vLcl-0-e697851d097f9bcadcd1e5a88a3f0fb1)
解:令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=1739252846-cagyf8kTA6sutGwWoPjtE7285UPxBdeo-0-af040db34ce1ab1c55845cc63542fe66)
1.3.2 线性规划解的概念
对于线性规划的标准型:
max z=CX
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-1.jpg?sign=1739252846-VefQZOkHLwaeZLilySnTGhescGKyaTSw-0-048eb97e99d87b9fc7f15026845c532d)
设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=1739252846-cjYDR8oWC3GgxpDREy4li9XMETK96PfL-0-470409b7b22a6c72509e15c3ed6809ef)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-3.jpg?sign=1739252846-seFV5Sxt1WZx1OJjzo1yAL0y2Is3o0oU-0-2fa7354f58e91a77b5ed73048e4f6432)
将式(1-7)代入目标函数式中,整理得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-017-4.jpg?sign=1739252846-0NRLv4ASb7lK7bT43Kvek6KxukNaXMnV-0-fbd27090a5f1933fb8522c2dd6a96e49)
令,于是i=1 i=1
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-1.jpg?sign=1739252846-OjbzBAaBvG2bGxEUV7tTmP7Zqk1y4eMK-0-a187cdd75ab746fb655e2372bfece9da)
再令σj=cj−zj,j=m+1,…,n,其中σj称为检验数,则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-2.jpg?sign=1739252846-mjHJBfoPaRc9RzI1ToFiFjoY6Y4u6Hwm-0-b58f3a53c90ea171de7b20699189614f)
由于是常数,式(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=1739252846-Dk8iMhLxfyaHgyLywK383KxrKwOAClv9-0-d99b5d25f83118e3314634c24a3beb95)
若让原来的非基变量仍取值为0(xm+k除外),则有
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-8.jpg?sign=1739252846-tSCNuXEkan8URjYlI4fIVqOCjj2its76-0-e915d49fd6f11c7558bc5f19806921a8)
存在时,取
,这时
,
从而,我们可以得到一个可行解
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-018-13.jpg?sign=1739252846-pKuQ8QpPsyiDgPDir3m5BYCabioZo23T-0-58a184603117e699db402ce5625cb1a7)
故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=1739252846-lWuyTQHMugHHuju5St263BszQCC0WjHj-0-42177786df0958d55340e63cef7dd103)
=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=1739252846-6aCFqCCrNUPGAmBoJ06NGMqFicJkBWal-0-6de577eef980bd2dca28a12c71a9fd7e)
例1-6 求线性规划问题:
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-1.jpg?sign=1739252846-DaBfOpqi0Cod1GexaaWWxCNbR4neb4xg-0-0a2f0e22406a3e5c5a9aa5ffa538e4d2)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-2.jpg?sign=1739252846-RUTEHGnzay5QIYFhHmrfnzFUmHZsIJR6-0-c73ea653df94b9b0ac01518f7abd45d1)
(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=1739252846-jH4g0OvSP1dUJotisFstNulZSwuxhCON-0-1b7d43cef93e926334893b8e4e8a6919)
对应的基可行解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=1739252846-SxLs9hDz9lXYxw7pTH1JNuOgDpFwwFgD-0-9d67382a1621ecf95e53752adaea821b)
(2)根据
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-020-5.jpg?sign=1739252846-QiRZ7SYKKX2NtIZ8qVXsdochKoRMmxiT-0-e148aa93a418aca637c0f9d2a7e26fc6)
确定换入、换出变量后,以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=1739252846-qO1s0R2XfIyYlgCH80ncJ0LB8UhQnyay-0-3e35d575debe1c85e17256ffc159086a)
x2替换x5
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-1.jpg?sign=1739252846-xboEhh2LhptLmGmotjSXhjF59FdCe0lc-0-ebb18b40e01d032a1627808c0001a319)
对应的新的基可行解
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=1739252846-HAUBHDRuYcYXVeoZblNeHmhObGlqvZ7m-0-06def821ba1ab398bf6a6eb5beab94d3)
进行旋转运算,得到表1-7。
表1-7 例1-6单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-3.jpg?sign=1739252846-xOX2M6JGtIQysTuWW8mzHzErXoBHQRLq-0-3a75b17e3450f7f0d252a8f4bcb06cc3)
x5换入,x4换出,再次进行旋转运算,得到表1-8。
表1-8 例1-6最优单纯形表
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-021-4.jpg?sign=1739252846-0TkL1ffhxKfQVYI7LajsQearPNSCSKE1-0-a6adf3249d74965acd9f363872fbe099)
非基变量检验数,
,则该线性规划具有唯一最优解,最优解是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=1739252846-n70NmGkQOEBwmTgseC7xhHxlfn6fB4xB-0-e7e63c34bdddb5a92102e6f9f3dfd7b8)
解:引入松弛变量x3,x4,x5(x3,x4我,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-1.jpg?sign=1739252846-QxF6bhOCCbjF7sokAeBbZkCIup5uRRxN-0-354c647ff01b0c9c5f973ec6a1045856)
建立单纯形表,并进行迭代运算,如表1-9所示。
表1-9 例1-7单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-022-2.jpg?sign=1739252846-wWCFcuYznyFqlt6xgk2wmFs8POwWUiJJ-0-c666f100b75673c7a8414cac450c6862)
非基变量检验数σ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=1739252846-KZYc3htJeyk8cfsZmAXdZQPq6qQAY9aq-0-af6fce82d75e2754477063e599ca4253)
非基变量检验数σ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=1739252846-4u1GUMcKz20ADggUzoaC6csY9tIk7dot-0-9adcbb824b01325741a4794abb8bce9d)
解:引入松弛变量x3,x4,x5(x3,x4,x5≥0),约束条件化成等式,将原问题进行标准化,得
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-1.jpg?sign=1739252846-WQsIVP7UTnC4tPTke7EWOjVrecQyBcmA-0-f5a91a3f7fba2cee9efc4e9d51d6641c)
建立单纯形,并进行迭代运算,如表1-11所示。
表1-11 例1-8单纯形表的迭代过程
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-2.jpg?sign=1739252846-axuHAtQdTSi1s9Y5qD7RHBOlaf4QMsFh-0-d66dd92816a38c7e46b2fe673d442c2d)
本例第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=1739252846-5jrSqMWtfkXTBxxDEpl7C15AJFfkrPT3-0-be30b8debebc7f32ee97cabd8448cc05)
即
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-4.jpg?sign=1739252846-tHXYMY8TeaoCp5roogFYciZMlCFJ3g9A-0-a1d00fb2ad82e0bce8c729feb38aa411)
令x3=0,则
![](https://epubservercos.yuewen.com/6A829A/17329060305733706/epubprivate/OEBPS/Images/39022-00-023-5.jpg?sign=1739252846-weSzmnK6OnUaAvPY8uFxDTdJenQuGnvo-0-35ff026432ad45edd918e7e7e4b8463b)
此时,若x2进基,则x1,x4,x5会和基变量x2同时增加,同时目标函数值无限增长,所以本题无界。