第一节 线性规划及其单纯形求解方法
一、线性规划数学模型
(一)线性规划之实例
线性规划研究的问题主要有两类:一是某项任务确定后,如何统筹安排, 以最少的人力、物力和财力去完成该项任务;二是面对一定数量的人力、物力和财力资源,如何安排使用,使得完成的任务最多。实际上,这是一个问题的两个方面,它们都属于最优规划的范畴。以下,我们列举线性规划问题之若干实例,供读者研究。
- 运输问题 假设某种物资(譬如煤炭、钢铁、石油等)有 m 个产地,n 个销地。第 i 产地的产量为 ai(i=1,2,⋯⋯,m),第 j 销地的需求
m n
量为b j (j = 1,2, ,n),它们满足产销平衡条件∑a i = ∑b j 。如果产地
i=1 j=1
I 到销地 j 的单位物资的运费为 cij 试问如何安排该种物资调运计划,才能使总运费达到最小?
设 xij 表示由产地 i 供给销地 j 的物资数量,则上述问题可以表述为
求一组实值变量 xij(i=1,2,⋯,m;j=1,2,⋯,n),使其满足:
m
∑xij = b j
i=1
( j = 1,
2, , n)
n
∑xij = a i (i = 1, 2, , m)
j=1
而且使:
xij≥0 (i = 1, 2, , m; j = 1,
2, , n)
m n
z = ∑∑cij xij → min
i=1 j= 1
- 资源利用问题 假设某地区拥有 m 种资源,其中,第 i 种资源在规划期内的限额为 bi(i=1,2,⋯,m)。这 m 种资源可用来生产 n 种产品,其中, 生产单位数量的第 j 种产品需要消耗的第 i 种资源的数量为 aij(i=1,2,⋯,
m;j=1,2,⋯,n),第 j 种产品的单价为 cj(j=1,2,⋯,n)。试问如何安排这几种产品的生产计划,才能使规划期内资源利用的总产值达到最大?设第 j 种产品的生产数量为 xj(j=1,2,⋯,n),则上述资源利用问题
就是:
在约束条件
n
∑aij x j ≤bi (i = 1, 2, , m)
j= 1
x ≥ 0 ( j = 1, 2, , n)
j
下,求一组实数变量 xj(j=1,2,⋯,n),使
Z = ∑cj x j → max
j= 1
- 合理下料问题 用某种原材料切割零件 A1,A2,⋯,Am 的毛坯,现已设计出在一块原材料上有 B1,B2,⋯,Bn 种不同的下料方式,如用 Bj 下料方式可得 Ai 种零件 aij 个,设 Ai 种零件的需要量为 bi 个。试问应该怎样组织下料活动,才能使得既满足需要,又使用去的原材料最少?
设采用 Bj 方式下料的原材料数为 xj,则上述问题可表示为:
在约束条件
n
∑aij x j ≥bi (i = 1,
j= 1
2, , m)
x ≥ 0
( j = 1, 2, , n)
j
下,求一组整数变量 xj(j=1,2,⋯,n),使得
Z = ∑x j→ min
j=1
(二)线性规划数学模型
线性规划应用之实例还有很多,譬如生产布局问题,连续投资问题,等等,不一一列举。从以上的例子可以看出,尽管它们表示的形式不尽相同, 但它们都具有以下共同的特征:(1)每一个问题都用一组未知变量(x1 , x2,⋯,xn)表示某一规划方案,这组未知变量的一组定值代表一个具体的方案,而且通常要求这些未知变量的取值是非负的。
(2)每一个问题都有两个主要组成部分:一是目标函数,按照研究问题的不同,常常要求目标函数取最大或最小值;二是约束条件,它定义了一种求解范围,使问题的解必须在这一范围之内。
(3)每一个问题的目标函数和约束条件都是线性的。
根据上述问题的三个基本特征,我们可以抽象出线性规划问题的数学模型。它一般地可表示为:
在线性约束条件
n
∑aij x j ≤( ≥, j=1
以及非负约束条件
=)bi
(i = 1,
2, ,
m) (1)
x j ≥0( j = 1,
2, ,
n) (2)
下,求一组未知变量 xj(j=1,2,⋯,n)的值,使
Z = ∑cj x j → min(max) (3)
j=1
若采用矩阵记号,上述线性规划模型的一般形式可进一步描述为:在约束条件
AX≤(≥,=)b (1′)
以及 x≥0 (2′)
下,求未知向量 x=[x1,x2,⋯,xn]T,使得Z=CX→min(max) (3′)
其中
b=[b1,b2,⋯,bm]T c=[c1,c2,⋯,cn]
a11
a12
a 1n
a a a
A =
21 22 2 n
Μ Μ Μ
二、线性规划的标准形式
am1
am2
a mn
(一)线性规划的标准形式
为了讨论与计算上的方便,常常需要将线性规划问题的数学模型转化为标准形式,即在约束条件:
a11 x1 + a12 x2 + + a1n x n = b1
a x + a x + + a x = b
21 1 22 2 2n n 2
(4)
a m1 x1 + am2 x2 + + a mn x n = bm
以及
xj≥0(j=1,2,⋯,n) (5)
下,求一组未知变量 xj(j=1,2,⋯,n)的值,使
N
达到最小值。
Z = ∑cj x j j=1
(6)
其缩写形式为:在约束条件
∑aij x j = bi (i = 1, 2, , m) (4′)
j=1
以及
xj≥0(j=1,2,⋯,n) (5′)
下,求一组未知变量 xj(j=1,2,⋯,n)的值,使得:
Z = ∑cj x j→ min (6′)
j=1
采用距阵记号,上述标准形式还可以进一步简记为:在约束条件AX=b (4″)
以及X≥0(5″)
下,求未知向量 X,使得:
Z=CX→min (6″)
在通常情况下,b 和 c 为已知常数向量;A 为已知常数矩阵,且 A 的秩为
m。
上述标准形式的线性规划,常被记为如下更为紧凑的形式:
n
minz = ∑c jx j
j=1
n
∑aij x j = b i (i = 1,
j= 1
x ≥0( j = 1, 2, ,
2, , m)
n)
j
或
minZ = CX
AX = b
X≥0
(二)化为标准形式的方法
具体的线性规划问题,其数学模型常常是各式各样的,它们不一定符合线性规划的标准形式的要求,为了将其转化为标准形式,常常需要对目标函数或约束条件采用一定的变换方法进行转换。
- 目标函数化为标准形式的方法 如果其线性规划问题的目标函数为: maxZ=CX
则令 Z′=-Z,显然:
-maxZ=min(-Z)=minZ′ 所以,可将原问题的目标函数换为:
minZ′=-CX 这就是标准形式的目标函数了。
- 约束方程化为标准形式的方法 如果第 k 个约束方程为不等式,即
a k1x1 + a k2 x 2 + + a kn x n ≤(≥)b k
则只需在原问题中引入松弛变量 xn+k≥0,并将第 k 个方程改写为: ak1x1+ak2x2+⋯+aknxn+(-)xn+k=bk
而将其目标函数看作
n n
z = ∑c jx j = ∑x jc j + o·xn +k
j=1 j=1
这样就将原问题转化为标准形式的线性规划模型了。三、线性规划的解及其性质
(一)线性规划的解
- 可行解与最优解 在线性规划问题中,称满足约束条件(即满足线性约
束和非负约束)的一组变量值 x=[x1,x2,⋯,xn]T 为可行解。所有可行解组成的集合称为可行域。使目标函数最大或最小化的可行解称为最优解。
- 基本解与基本可行解 在线性规划问题(4″)—(6″)式中,如果我们
把约束方程组的 m×n 阶系数矩阵 A 写成由 n 个列向量组成的分块矩阵A=[p1,p2,⋯,pn] (7)
在(7)式中,pj=[a1j,a2j,⋯,amj]T(j=1,2,⋯,n)。则 pj 是对应变量 xj 的系数列向量。
如果 B 是 A 中的一个 m×m 阶的非奇异子阵,则称 B 为该线性规划问题的一个基。不失一般性,不妨设:
a11
a21
a 12
a 22
a1m
a 2 m
B = Μ Μ Μ
a a a
= [p1 , p 2
, pm ] (8)
m1 m2 mm
则称 pj(j=1,2,⋯,m)为基向量,与基向量 pj 相对应的变量 xj(j=1,2,⋯, m)为基变量,而其余的变量 xi(j=m+1,m+2,⋯,n)为非基变量。
如果 XB=[x1,x2,⋯,xm]T 是方程组
BXB=b (9)
的解,则 X=[x1,x2,⋯,xm,0,0,⋯,0]T 为方程组(4″)式的一个解, 它称之为对应于基 B 的基本解。
满足非负约束条件的基本解,称为基本可行解。对应于基本可行解的基
称为可行基。
线性规划问题的以上几个解的关系,可用图 3-1 来描述。
(二)线性规划解的性质
- 凸集和顶点 为了说明线性规划解的性质,需要引入凸集和顶点的概念。
若连结 n 维点集 S 中的任意两点 x(1)和 x(2)之间的线段仍在 S 中,则称 S 为凸集。例如,三角形、平行四边形、正多边形、圆、球体、正多面体等都是凸集。而圆环、空心球等都不是凸集。
若凸集 S 中的点 X(0)不能成为 S 中任何线段的内点,则称 X(0)为 S 的顶点或极点。例如,三角形、平行四边形、正多边形、正多面体的顶点以及圆周上的点等都是极点。
- 线性规划解的性质 可以证明,线性规划问题的解具有以下性质:
(1)线性规划问题的可行解集(可行域)为凸集。
(2)可行解集 S 中的点 X 是顶点的充要条件为 X 是基本可行解。
(3)若可行解集有界,则线性规划问题的最优值一定可以在其顶点上达到。由于系数矩阵 A 中的基是有限的,因此基本可行解也是有限的,这就是说可行解集的顶点数目是有限的。所以,如果线性规划问题有最优解,就只需从其可行解集的有限个顶点中去寻找。
四、线性规划问题的求解方法——单纯形法
(一)单纯形表
在标准形式线性规划(4″)-(6″)句式中,不妨设 B=[p1,p2,⋯,pm] 是一个基,令 N=[pm+1,pm+2,⋯,pn],则 A=[B,N]。记基变量为 xB=[x1,x2,⋯, xm]T,非基变量为 xN=[xm+1,xm+2,⋯,xn]T,则运用分块矩阵的运算法则可知,(4″)式可以被进一步改写为
BXB+NXN=b (10)
用 B-1 左乘(10)式两端,并作适当整理,可得
XB=B-1b-B-1NXN (11)
(11)式就是用非基变量表示基变量的关系式。
相应地,记 CB=[c1,c2,⋯,cm],CN=[cm+1,cm+2,⋯,cn],C=[CB,CN], 则目标函数亦可以改写为
Z=CBB-1b+(CN-CBB-1N)XN (12)
显然,XB=B-1b,XN=0 构成了对应于基 B 的基本解,其相应的目标函数值为 Z=CBB-1b。
如果 B-1b≥0,则 XB=B-1b,XN=0 构成了一个基本可行解,B 是一个可行基。
如果 CBB-1N-CN≤0,则由(12)式可以看出,对于一切可行解 X,有 Z=CX
≥CBB-1b。这就是说,对应于 B 的基本可行解为最优解,这时,B 也被称为最优基。
由于
CBB-1A-C=CBB-1[B,N]-[CB,CN]
=[CB,CBB-1N]-[CB,CN]
=[0,(CBB-1N-CN)]
(13)
即 CBB-1N-CN≤0 与 CBB-1A-C≤0 等价,故可得以下最优性判定定理。定理:对于基 B,若 B-1b≥0,且 CBB-1A-C≤0,则对应于基 B 的基本解
为最优解,B 为最优基。
由(12)和(13)式可得:
Z+(CBB-1A-C)X=CBB-1b (14)
用 B-1 左乘(4″)式两端得:
B-1AX=B-1b (15)
联合(14)与(15)式可得:
1 C B−1A − CZ C B−1b
= B
(16)
0
B−1A
X
B−1 b
在(16)式中,称系数距阵
C B−1b 1 C B−1A − C
B B
B−1b 0
或
B−1A
C −1b C B−1A − C
B B
B−1b B−1A
为对应于基 B 的单纯形表,记作 T(B)。
如果记 CBB-1b=b00,CBB-1A-C=[b01,b02,⋯,b0n],B-1b=[b10,b20,⋯, bm0]T,以及
b11
b12
b1n
b b b
B−1A =
21 22 2 n
则:
b 00
b10
bm1
b 01
b11
b m2
b02
b12
bmn
b0n
b1n
T(B) = b b b b
20 21 22 2 n
Μ Μ Μ Μ
b m0
bm1
bm2
b mn
(17)式表明,单纯形表就是把非基变量作为参数,表示基变量和目标函数时的系数矩阵。b00 就是对应于基 B 的基本解下的目标函数值;b10,b20,⋯, bm0 就是对应于基 B 的基本解的基变量值;b01,b02,⋯,b0n 为检验系数,如果这组数均非正,则这一基本可行解就是最优解。
(二)单纯形法的计算步骤
单纯形法求解线性规划问题的计算步骤如下:
第一步,找出初始可行基 B=[pj1,pj2,⋯,pjm],建立初始单纯形表。第二步,判别、检查所有的检验系数 b0j(j=1,2,⋯,n)。
(1)如果所有的 b0j≤0(j=1,2,⋯,n),则由最优性判定定理知,已获最优解。
(2)若检验系数 b0j(j=1,2,⋯,m)中,有些为正数,但其中某一正的
检验系数所对应的列向量的各分量均非正,则线性规划问题无解。
(3)若检验系数 b0j(j=1,2,⋯,n)中,有些为正数,且它们所对应的列向量中有正的分量,则进行换基迭代。
第三步,选主元。在所有 b0j>0 的检验系数中选取最大的一个 b0s,其
对应的非基变量为 xs,对应的列向量为 ps=[b1s,b2s,⋯,bms]T。如果
b i0
θ = min b
bis>0 =
b r 0
b
则确定 brs 为主元项。
is
rs
第四步,在基 B 中调进 ps,换出pjr,得到一个新的基 B′=[pj1,pj2,⋯, pjr-1,ps,pjr+1,⋯pjm]。
第五步,在单纯形表上进行初等行变换,使第 S 列向量变为单位向量, 又得一张新的单纯形表。
第六步,转入上述第二步。
例 1:用单纯形方法求解线性规划问题:
x1 + 3x2 ≤12
2x + x ≤9
1 2
x ≥0,x ≥0
1 2
maxZ=2x1+3x2
解:首先引入松弛变量 x3,x4,把原问题化为标准形式:
x1 + 3x2 + x3 = 12
2x + x + x = 9
1 2 4
x ,x ,x ,x ≥0
在上述问题中,
1 2 3 4
minZ′=-2x1-3x2
A = 1 3 1 0,
2 1 0 1
p = 1, p
1 2 2
= 3, p
1 3
1
0
p = 0
12
4 1, b = 9 ,
C = [−2,
− 3, 0, 0]
第一步,因为B = [p ,p ]为单位矩阵,且B-1b = b>0,故B 是一个
1 3 4 1 1
可行基。由于C B-1b = 0,C B-1A - C = -C,B-1A = A,所以对应于B1的初
B 1 B - 1
始单纯形表(表 3-1)如下:
表 3-1
|
x1 |
x2 |
x3 |
x4 |
||
|---|---|---|---|---|---|
|
z ′ |
0 |
2 |
3 |
0 |
0 |
|
x2 |
12 |
1 |
3 |
1 |
0 |
|
x4 |
9 |
2 |
1 |
0 |
1 |
第二步,判别。在初始单纯形表中,b01=2,b02=3,所以 B1 不是最优基, 要进行换基迭代。
第三步,选主元。由于 max{2,3}=3,所以取 s=2,其对应的非基变量
3 12
为x2 ,对应的列向量为p2 = ( )。θ = min{ ,
9
} = 4,所以r = 1。因而主元项
为 b12=3。
1 3 1
3 0
第四步,p2 调入基,p3退出基,得新一的基B2 = (p2 ,p4 ) = (1 1)。
第五步,对初始单纯形表进行初等行变换,使 p2 变为单位向量,可得B2 下的新单纯形表(表 3-2)。
表 3-2
|
x1 |
x2 |
x3 |
x4 |
||
|---|---|---|---|---|---|
|
x ′ |
-12 |
1 |
0 | -1 |
0 |
|
x2 |
4 |
1 |
1 |
1 | 0 |
| 3 | 3 | ||||
|
x4 |
5 |
5 |
0 |
− 1 | 0 |
| 3 | 3 |
第六步,转入第二步。因为在对应于 B2 的单纯形表中,检验系数有正数
3 1
b01 = 1,重复以上步骤可得对应于B3 = (p2 ,p1) = ( 1 2 )的单纯形表。
的单纯形表(表 3-3)。因为在对应于 B3 的单纯形表中,检验系数已经没有正数,所以 B3 是最优基,其对应的基本最优解为:x1=3,x2=3,x3=0,x4=0, 目标函数最小值为 Z′=-15。而对于原问题,其最优解为 x1=3,x2=3,目标函数最大值为 Z=15。
表 3-3
|
x1 |
x2 |
x3 |
x4 | ||
|---|---|---|---|---|---|
|
x ′ |
-15 |
0 |
0 |
− 4 |
− 3 |
|
5 |
5 | ||||
|
x2 |
3 | 0 |
1 |
2 | − 1 |
| 5 | 5 | ||||
|
x1 |
3 |
1 |
0 |
− 1 | 3 |
| 5 | 5 |
五、线性规划应用实例
(一)问题的提出
1983 年底,甘肃省委从实际出发,在大量的调查和可行性分析的基础上,对中部干旱地区提出了“三年停止植被破坏,五年解决温饱问题”的近期目标,鼓励农民种草养畜,走农牧草相结合的道路,并先后在通渭县的申家山、会宁县的大岔社等地,由省科委和草原工作队技术指导,对种草养畜工作进行试点。1986 年初,中部干旱地区的农业生产结构发生了重大变化, 草在种植业中占了较大的比重,养畜工作也初见成效,同时大部分地区的粮食生产已基本上得到了自给,农业生态环境逐步改善,农民依靠出售草籽而得到了较多的经济收入。但是,自 1986 年以来,草籽价格暴跌,而且国家不再统一收购草籽,这直接影响了农民的经济收入,有些人不愿再用耕地种草, 在这种情况下,中部干旱地区的农业生产结构如何调整,怎样实现草畜转化? 这是人们所关心的问题。为了解决这一问题,笔者曾以会宁县大盆社为例, 运用线性规划方法建立了农业生产结构调整的规划模型,并由此探讨了甘肃中部干旱地区的农业生产结构问题。该规划模型的基期为 1986 年,报告期为
1990 年。实践证明,该模型在指导本地农业生产活动方面起到了一定的作用。以下,我们将这一研究成果作一些简单地介绍。
(二)模型的建立
- 建模原则 在模型的建立过程中,我们提出了如下的建模原则。
(1)实现“草畜转化”,使农业生态环境继续得到改善,使土地资源的利用继续趋于合理化。
(2)经济效益与生态效益相结合,用经济效益刺激生态效益的提高,以生态效益保证经济效益的实现。
(3)着重考虑“三料”问题,同时也考虑农民的吃粮与花钱问题。
(4)模型不但要有理论意义,而且要有实用价值,因此,模型变量的选取要恰当,约束条件的提出要合理,模型参数的确定要准确,切合实际。
(5)考虑到剩余劳动力的存在,把“劳务输出”作为农业生产结构调整的一个重大决策问题考虑。
- 模型结构
(1)模型变量:模型中的变量,分为外生变量与内生变量两类,外生变量是指由方针政策等因素决定的变量,内生变量是由模型本身所决定的变量。本模型的内生变量如下:
x1:粮食作物面积(亩);x2:经济作物面积(亩);x3:耕地种草面积
(亩);x4:荒山造林或种草面积;x5 :大畜存栏数(头);x6 :生猪年末存栏数(头);x7:兔年末存栏数(只);x8:劳务输出的劳动力个数(个)。
(2)目标函数:使农、林、牧各业的年平均产值达到最大(以 1986 年现行价格计算)。
(3)约束条件:①粮食的生产与分配;粮食总产量-籽种-公购粮-牲畜饲料粮≥农业人口的总口粮。
②燃料。作物秸杆×30%+荒山产柴量×80%+衣壳×50%≥全年燃料总量;
③饲料。作物秸杆×70%+装子×50%+耕地种草产量+可利用的野生草量
≥各类畜的食草总量。(作物秸杆的 30%作燃料;70%作饲草;装子的 50
%作燃料,50%作饲草;对于中部地区的林业应采取保护性政策,因此,用柴量可按产柴量的 80%计)。
④肥料:人类 + 猪粪 + 畜粪× 2 + 鸡羊粪≥粮食作物与经济作物所需
3
2 1
有机肥总量。(畜粪有 3 用于土地,其余 3 被用于烧炕)。
⑤耕地总面积限制。
⑥经济作物面积限制。
⑦耕地草面积限制。
⑧荒山面积限制。
⑨耕畜限制。
⑩水约束。
(11)劳动力限制。(12)经济收入。
- 数学模型 以上模型结构数量化,可得如下的数学模型:
求:maxZ=33x1+50x2+135x5+40x2+100x6+5x7+800x8+9334 满足:
1 4
2 2 5 5
1 2 3
4
1 2 3 4
xi ≥0 (i = 1, 2, , 8)
上 述 模 型 求 解 得 :maxZ=11519190( 元 ) x1=730.41(亩),x2=77.50(亩);x3=817.10(亩);x4=773.19(亩),
x5=54.00(头);x6=93.15(头);x7=1264.47(只),x8=25.59(个)。
(三)甘肃中部干旱地区农业生产结构的特征
通过对会宁县大盆社农业生产结构优化结果的分析,笔者认为甘肃中部干旱地区农业生产结构应具有下述特征。
(1)自给性的农业是产业构成的基础,粮食生产的自给是其它一切生产的必要前提。
(2)商品性的畜牧业是产业构成的主体,草畜转化是生态效益变成经济效益的有效途径。
(3)纽带性的草业是农牧相互联系、相互促进的中枢性产业。
(4)保护性林业是改善生态环境的重要措施,也是农村燃料的主要来源。
(5)剩余劳动力的存在,为农副产品的初级加工及农村第二、第三产业的发展提供了可能的条件。
