实用运筹学:案例、方法及应用
上QQ阅读APP看书,第一时间看更新

1.3 线性规划问题的单纯形法

1.3.1 线性规划问题的标准形式

线性规划问题的标准形式如下:

或简写成

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

非标准形式的线性规划问题,可以通过一些简单代换化为标准线性规划问题。

1. 最小值问题

目标函数为最小值问题,如,可以等价地化为最大值问题,因为

2. 不等式约束问题

形如aj1x1+aj2x2+…+ajnxnbj的不等式约束,可以通过引入所谓“松弛变量xn+1”化为等式约束aj1x1+aj2x2+…+ajnxn+xn+1=bj(其中xn+1≥0);而形如aj1x1+aj2x2+…+ajnxnbj的不等式约束,可以通过引入所谓“剩余变量xn+2”化为等式约束aj1x1+aj2x2+…+ajnxnxn+2=bj(其中xn+2≥0)。

3. 变量无符号限制问题

变量xj无非负约束条件问题,可以定义,其中,从而化为非负约束。

例1-5 将以下线性规划问题转化为标准形式。

解:z'=-z,引进松弛变量x4≥0,引进剩余变量x5≥0,并令x2=x2'-x2'',其中,x2'≥0,x2''≥0

得到以下等价的标准形式:

1.3.2 线性规划解的概念

对于线性规划的标准型:

max z=CX

rAm×n)=mn,将A按列分块,记为A=(P1,P2,…,Pn)。有以下几个线性规划问题的基与解的概念

(1)基、基变量、非基变量 A的任一非奇异m阶子矩阵B均称为线性规划的一个基;设B=(P1,P2,…,Pm),则称Pj(j=1,2,…,m)为基向量;称与其相对应的变量xjj=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 最优性检验与解的判别

对标准型的一般线性规划问题,经过变换、迭代,可将线性规划约束条件中非基变量移至方程右边,得出如下形式

将式(1-7)代入目标函数式中,整理得

,于是i=1 i=1

再令σj=cjzjj=m+1,…,n,其中σj称为检验数,则有

由于是常数,式(1-9)表明,可以用检验数σj表示目标函数中的价值系数cj

定理1-1最优解的判别定理为对应于基B的一个基可行解,对于一切j=m+1,…,n,,有检验数σj≤0,则X(0)为最优解。

事实上,在式(1-9)中,因为σj≤0,xj≥0,所以对一切xj都有zz0。因此,X(0)为最优解。

定理1-2无穷多最优解的判别定理为对应于基B的一个基可行解,对于一切j=m+1,…,n,,有检验数σj≤0,且存在某个非基变量对应的检验数σm+k=0,且存在另一个最优解,则该线性规划问题有无穷多个最优解。

证明:令决策变量为X=[x1,x2,…,xm+1,…,xm+k,…,xn]T为线性规划问题的一个最优解。则有

若让原来的非基变量仍取值为0(xm+k除外),则有

存在时,取,这时从而,我们可以得到一个可行解

X(1)也是最优解。由于X(1)X(0),它们的凸组合XX(0)+(1−α)X(1)也是最优解。

定理1-3无界解的判别定理为对应于基B的一个基可行解,存在某个非基变量对应的检验数σm+k>0,并且对应的变量系数i=1,2,…,m,则该线性规划问题有无界解(或称为无最优解)。

证明:构造一个线性规划问题的新解X(1),它的分量为

=0(j=m+1,…,n,但jm+k)

由于≤0,i=1,2,m,所以对任意的λ>0都是可行解。把x(1)代入式(1-9)中,,当λ→+∞时,由于σm+k>0,从而z→+∞。可见,该线性规划问题目标函数无界。

1.3.5 单纯形法的计算步骤与单纯形表

单纯形表求解线性规划问题的具体步骤为:

(1)找出初始可行基,确定初始基可行解,建立初始单纯形表。

(2)根据各非基变量的检验数对线性规划问题解的情况进行判别。

① 若所有非基变量xjj=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换为xkCB列的cl换为ck,得到新的单纯形表。

重复步骤(2)~(5),直到问题求解结束。

单纯形法的求解过程,就是从一个基可行解转换到另一个相邻的基可行解,每一次基变换,从几何意义上说,就是从一个顶点转换到另一个顶点。

单纯形算法的实质是将非基变量视为一组参数,并将目标函数和基变量都表示成为由非基变量表示的形式。用一个矩阵来表示单纯形法迭代中所需要的全部信息,这就是单纯形表,单纯形法基本计算步骤可以在单纯形表中来完成,如表1-4所示。

表1-4 单纯形表

例1-6 求线性规划问题:

解:引入松弛变量x3x4x5x3x4x5≥0),约束条件化成等式,将原问题进行标准化,得

(1)确定初始可行基为单位矩阵I=[P3P4P5],基变量为x3x4x5,非基变量为x1x2,则有

对应的基可行解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初始单纯形表

(2)根据

确定换入、换出变量后,以alk为主轴元素进行迭代(即高斯消元法或称为旋转运算),把xk换入基变量,对应系数列向量调成单位列向量。

在上述例题中,表1-5中非基变量对应的检验数分别为

σ1=c1z1=2−(0×1+0×4+0×0)=2

σ2=c2z2=3−(0×2+0×0+0×4)=3

因检验数大于0,max(σ1,σ2)=max(2,3)=3,对应的x2为换入变量,计算θ

x2替换x5

对应的新的基可行解

X(1)=(0,3,2,16,0)T,目标函数取值Z=9。

表1-6 例1-6单纯形表的迭代过程

进行旋转运算,得到表1-7。

表1-7 例1-6单纯形表的迭代过程

x5换入,x4换出,再次进行旋转运算,得到表1-8。

表1-8 例1-6最优单纯形表

非基变量检验数,则该线性规划具有唯一最优解,最优解是x1*=4,x2*=2,x3*=0,x4*=0,x*5=4,目标函数最优值 z*=14。

例1-7 求线性规划问题:

解:引入松弛变量x3x4,x5x3x4我,x5≥0),约束条件化成等式,将原问题进行标准化,得

建立单纯形表,并进行迭代运算,如表1-9所示。

表1-9 例1-7单纯形表的迭代过程

非基变量检验数σ3=−2,σ4=0,迭代已经得到最优解X*=(2,3,0,2,0)TZ*=16,由于σ5=0,如果以x5作为换入变量,x4作为换入变量,再次旋转运算,得表1-10。

表1-10 例1-7最优单纯形表

非基变量检验数σ3=−2,σ5=0,得到该线性规划另一最优解,X*=(4,2,0,0,1) TZ*=16,所以该线性规划具有无穷多最优解。

例1-8 求线性规划问题:

解:引入松弛变量x3x4x5x3x4x5≥0),约束条件化成等式,将原问题进行标准化,得

建立单纯形,并进行迭代运算,如表1-11所示。

表1-11 例1-8单纯形表的迭代过程

本例第2个单纯形表中,非基变量x2对应的检验数σ2>0,并且对应的变量系数ai,2′≤0(i=1,2,3),根据无界解判定定理,该线性规划问题有无界解(或无最优解)。

如果从方程角度来看,第2个表格还原为线性方程

x3=0,则

此时,若x2进基,则x1,x4,x5会和基变量x2同时增加,同时目标函数值无限增长,所以本题无界。