运筹学讲义_1线性规划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 线性规划
【教学内容】
线性规划模型,图解法,可行区域的几何结构,基本可行解及线性规划的基本定理,单 纯形方法,单纯形表,两阶段法,关于单纯形方法的几点说明,对偶线性规划,对偶理论, 对偶单纯形法,求解线性规划问题的几个常用软件。
【教学要求】
要求学生理解线性规划的标准形式,能熟练的将一般的线性规划问题化为标准形式;掌 握图解法,能用单纯形法求解线性规划问题;掌握灵敏度分析方法,能够建立线性规划模型 及用常用软件求解线性规划问题。
【教学重点】
线性规划模型,图解法,单纯形方法,单纯形表,两阶段法,对偶线性规划,对偶单纯 形法,灵敏度分析。
【教学难点】
基本可行解及线性规划的基本定理,单纯形方法,对偶线性规划,对偶理论,对偶单纯 形法。
第一节 线性规划模型
线性规划(Linear Programming , 简记为 LP )问题研究的是在一组线性约束条件下一个线 性函数最优问题。
§1.1 线性规划问题举例
例 1.1.1 某工厂用 3 种原料 3 2 1 , , P P P 生产 3 种产品 3 2 1 , , Q Q Q 。
已知单位产品所需原 料数量如表 1.1.1 所示,试制订出利润最大的生产计划。
4
5
3 单位产品的利润(千元)
2000
5 2 800 4 2 0 P 2 1500 0 3 2 P 1 原料可用量
Q 3
Q 2 Q 1 单位产品所需
产品
原料数量(kg)
原料
3
P 3
表 1.1.1
分析 设产品 j Q 的产量为 j x 个单位, 3 , 2 , 1 = j ,它们受到一些条件的限制。
首先, 它们不能取负值,即必须有 3 , 2 , 1 , 0 = ³ j x j ;其次,根据题设,三种原料的消耗量分别不 能超过它们的可用量,即它们又必须满足:
12
23 123 231500 24800 3252000 x x x x x x x +£ ì ï
+£ í ï ++£ î
我们希望在以上约束条件下,求出 3 2 1 , , x x x ,使总利润 3 2 1 4 5 3 x x x z + + = 达到最大, 故求解该问题的数学模型为:
123 12 23 123 max 354 231500 24800 .. 3252000 0,1,2,3
j z x x x x x x x s t x x x x j =++ +£ ì ï +£ ï í
++£ ï ï ³= î 类似这样的问题非常多。
§1.2 线性规划模型
以上例子具有这样的特征:
(1) 问题中要求有一组变量(决策变量),这组变量的一组定值就代表一个问题中的
具体方案;
(2) 存在一定的限制条件(约束条件),这些限制条件可以用一组线性等式或不等式
来表示;
(3) 有一个目标要求(目标函数),可以表示为决策变量的线性函数,并且要求这个
目标函数达到最优(最大或最小)。
将这三个条件归结在一起,就得到线性规划问题。
线性规划问题的标准形式是具有如 下形式的问题:
1122 11112211 1122 12 min .. 0,0,,0
n n
n n m m mn n m n c x c x c x a x a x a x b s t a x a x a x b x x x +++ +++= ì ï ï í
+++= ï ï ³³³ î L L LLLLLLLLLLL L L (1.1.1)
如果令 ( )
ij m n
A a
´ = , ( ) 12 ,,, T
j j j mj
a a a a = L , ( ) 1
2
,,, T
n
c c c c = L , ( ) 1
2
,,, T
m
b b b b = L 以
及 ( ) 12 ,,, T
n x x x x = L ,则上述标准线性规划问题可以用矩阵形式表示,
min .. 0
T c x Ax b
s t x = ì í
³ î (1.1.2)
或
1
1
min .. 01,2,, n
j j
j n j j j j
c x a x b s t x j n = = ì
= ï
í ï ³= î å å L (1.1.3)
除了线性规划问题的标准形式之外,还有其它形式的线性规划问题,但这些问题都可 以通过一些简单代换化为标准线性规划问题。
(1) 极大化问题
对于目标函数为极大化问题,如 1
max n
j j
j z c x = =
å ,可以等价地化为极小化问题,因为
11 max min n
n j j j j j j c x c x == æö
æö =-- ç÷ ç÷ ç÷ èø è
ø åå 。
(2) 不等式约束问题
对于形如 1122 j j jn n j a x a x a x b +++£ L 的不等式约束,可以通过引入所谓“松弛变量
j r ”化为等式约束 1122 j j jn n j j a x a x a x r b ++++= L
(其中 0 j r ³ );而对于形如 1122 j j jn n j a x a x a x b +++³ L 的不等式约束,可以通过引入所谓“剩余变量 j s
”化为等式 约束 1122 j j jn n j j a x a x a x s b +++-= L (其中 0 j s
³ )。
(3) 无非负条件问题
对于变量 j x 无非负约束条件问题,可以定义 ( )
( )
( )
( )
1212 ,0,0 j j j j j x x x x x =-³³ ,从而化 为非负约束。
因此,本章主要讨论标准形式的线性规划问题(1.1.1)的性质和求解方法。
第二节 线性规划问题的可行域及最优性条件
§2.1 线性规划问题的可行域
(1) 凸组合与凸集
定义 1.2.1 设 n
R S Ì 是n 维欧氏空间中的一个点集,x S Î , y S Î , ] 1 , 0 [ Î l ,称
(1) z x y
l l =+- 为x 和 y 的凸组合。
定义 1.2.2 设 n
R S Ì 是n 维欧氏空间中的一个点集,若对任何 S y S x Î Î , 与任何
] 1 , 0 [ Î l ,都有
S
y x Î - + ) 1 ( l l 就称 S 是一个凸集。
凸集与非凸集如图 1.2.1 所示。
(2) 线性规划问题的可行域与凸集
对于标准线性规划问题(1.1.1),令 {|,0} n
D x R Ax b x =Î=³ 表示它的可行域。
定理 1.2.1 线性规划问题(1.1.1)的可行域 {|,0} n
D x R Ax b x =Î=³ 是凸集。
定义 1.2.3 给定 1
R b Î 及非零向量 n
R a Î ,称集合
}
| { b x a R x H T n = Î = 是 n
R 中的一个超平面。
定理 1.2.2 由超平面H 产生了两个闭半空间
} | { b x a R x H T n ³ Î = + 、 }
| { b x a R x H T n £ Î = - 都是凸集。
1
x 2
x 1
x 2
x 图 1.2.1 凸集与非凸集
凸集
非凸集
定义 1.2.4 称集合
} , , 1 ,
; , , 1 , | { q p p i b x a p i b x a R x S i T
i i T i n + + = ³ = = Î = L L 为多面凸集。
非空有界的多面凸集称为凸多面体。
因此,线性规划问题(1.1.1)的可行域 {|,0} n
D x R Ax b x =Î=³ 是多面凸集。
(3) 极点和极方向
定义 1.2.5 设S 为凸集, S x Î 。
若对任何 S y Î , S z Î , z y ¹ , 以及任何 1 0 < < l , 都有
(1) x y z
l l ¹+- 则称x 为凸集S 的一个极点。
按此定义,平面上长方形的四个角点就是长方形区域的全部极点。
平面图形中每个顶 点至少是两条线的交点。
一般对标准形式线性规划问题(1.1.1),当可行区域非空时,可以 证明其可行域 D 一定有极点,每个极点至少是 m n - 个超平面的交点(参见定理1.3.2)。
至 于多面凸集 D 的极点个数的有限性,在下一段我们给出了顶点的代数结构后,结论将会更 清楚。
定义 1.2.6 设 n
S R Ì 为凸集, n
d R Î , 0 d ¹ 。
若存在 S x Î 以及所有 0 l > ,都有
x d S
l +Î 则称d 为凸集S 的一个方向。
定义 1.2.7 设 n
S R Ì 为凸集, n
d R Î 是凸集S 的一个方向。
若对凸集S 的任何方向
1 d ,
2 d ,以及任何 1 0 m > , 2 0 m > ,当
12
12 d d d
m m =+ 时,必有 12
d d
a = ( ) 0 a > ,则称d 为凸集S 的一个极方向。
极点、方向和极方向如图 1.2.2所示。
0 A
B
D
1
x 2
x d 1
d 2
d
图 1.2.2 极点(A 、B )、方向(d 、d 1 、d 2 )和极方向(d 1 、d 2 )
定理 1.2.3 设 1 ,, k
x x L 为 { } |,0 D x Ax b x ==³ 的所有极点, 1 ,, l d d L 为极方向,则
x D Î 当且仅当x 满足
1
1
1 1 0,1,, 0,1,, k l
i j i j i j k i i i j x x d i k j l l m l l m == = ì =+ ï
ï ï ï
= í ï
ï ³= ï
³= ï î åå å L L
(1.2.1)
即x D Î 的充分必要条件为x 可以表示为D 的极点的凸组合与极方向的非负线性组合。
注:这种表示方法不一定唯一。
多面凸集中点的表示如图 1.2.3所示。
§2.2 线性规划问题的最优解
(1) 两个变量线性规划问题的图解法
如果一个线性规划问题只有两个变量,我们可以直观了解可行区域 D 的结构,同时还 可利用目标函数与可行区域的关系利用图解法求解该问题。
例 1.2.1 求解线性规划
12 12 1
2 12 12 min 22 22 .. 5 0,0
z x x x x x x s t x x
x x =- -³-
ì ï -£ ï í +£ ï ï ³³ î 2
x 图 1.2.3 多面凸集中点的表示图示
0 D
1
x d 1
d
2
d
x
x 3
x 1
x
2
x
4
( ) 3 1212 1112 1 x x d
x x d d
m l l m m =+ =+-++ ( ) 42 3
122 223
1 x x d x x d m l l m =+ =+-+
解:可行区域 D 如图 1.2.4 所示。
在区域 0 0 4 3 2 1 A A A A 的内部及边界上的每一个点都是 可行点, 目标函数的等直线 2 1 x x z + - = (z 取定某一个常值)的法线方向
(梯度方向) T
) 1 , 1 (- 是函数值增加最快的方向(负梯度方向是函数值减小最快的方向)。
沿着函数的负梯度方向 移动,函数值会减小,当移动到点 T
A ) 4 , 1 ( 2 = 时,再继续移动就离开区域D 了。
于是 2 A 点 就是最优解,而最优值为 143 z =-=- 。
可以看出,点 1234 0 A A A A 、 、 、 、 都是该线性规划问题可行域的极点。
如果将例 1.2.1 中的目标函数改为 2 1 2 4 min x x z - = ,可行区域不变,用图解法求解 的过程如图 1.2.5 所示。
由于目标函数 2 1 2 4 x x z - = 的等值线与直线 2 1 A A 平行,当目标函数的等值线与直线
1.5
z =- 3 z =- 2 2 2 1 = - x x 5
2 1 = + x x 0
= z 2 2 2 1 -
= - x x 0
1
A 2
A 3
A 4
A D
1
x 2
x 图 1.2.4
2 2 2 1 = - x x 5
2 1 = + x x 0
= z 2 - = z 0
1
A 2
A 3
A 4
A D
1
x 2
x 图 1.2.5
2 1 A A 重合(此时 4 - = z )时,目标函数 2 1 2 4 x x z - = 达到最小值-4,于是,线段 2 1 A A 上的
每一个点均为该问题的最优解。
.特别地,线段 2 1 A A 的两个端点,
即可行区域D 的两个顶点 T A ) 2 , 0 ( 1 = , T A ) 4 , 1 ( 2 = 均是该线性规划问题的最优解。
此时,最优解不唯一。
例 1.2.2 用图解法解线性规划
12
12 12 12
min
2 1
..33 0,0 z x x x x s t x x x x =-+ +³ ì ï -³- í ï ³³ î 解:该问题的可行区域如图 1.2.6 所示。
与上例求解方法类似,目标函数 2 1 2 x x z + - = 沿着它的负法线方向 T
) 1 , 2 ( - 移动,由 于可行域 D 无界,因此,移动可以无限制下去,而目标函数值一直减小,所以该线性规划 问题无有限最优解,即该问题无界。
从图解法的几何直观容易得到下面几个重要结论:
⑴.线性规划的可行区域 D 是若干个半平面的交集,它形成了一个多面凸集(也可能 是空集)。
⑵.对于给定的线性规划问题,如果它有最优解,最优解总可以在可行域 D 的某个顶 点上达到。
在这种情况下还包含两种情况:有唯一解和有无穷多解。
⑶.如果可行域无界,线性规划问题的目标函数可能有无界的情况。
(2) 线性规划问题的最优解
对于具有n 个变量的一般的线性规划问题也有类似的结论。
这可以通过多面凸集的表 示定理(定理 1.2.3)得到。
定理 1.2.4 如果标准线性规划问题(1.1.1) { }
min :,0 T c x Ax b x =³ 的可行域
3 3 2 1 -
= - x x 1 2 1 =
+ x x 2
1 2 x x z + - = 0 A
B
D
1
x 2
x 图 1.2.6
{|,0} n D x R Ax b x =Î=³ 非空, 1 ,, k x x L 为D 的所有极点, 1
,, l d d L 为D 的所有极方
向,则有:
⑴ 如果 0 T
j
c d > ( 1,2,, j l = L ),则问题(1.1.1)有有限最优解,并且若
{ } min :1,2,, T i T p c x i k c x == L ,
且满足上面条件的极点唯一,则 p
x 为问题(1.1.1)的唯一最优解;若
{ } 1 min :1,2,, s p p T i T T c x i k c x c x ==== L L ,
则最优解不唯一, 1 s p
p
x x L 、 、 都是问题(1.1.1)的最优解,另外,所有 1 s p
p
x x L 、 、 的凸组 合都是问题(1.1.1)的最优解;
⑵ 如果存在 { } 1,2,, q l Î L 满足 0 T q c d < ,则问题(1.1.1)无有限最优解;
⑶ 如果对所有 j ( 1,2,, j l = L ) 都有 0 T
j
c d ³ , 且存在 { } 1,2,, r l Î L 满足 0 T
r
c d = ,
{ } min :1,2,, T i T p c x i k c x == L ,则问题(1.1.1)的最优解不唯一, p r r x x d m =+ 都是其
最优解,其中 0 r m ³ 。
定理 1.2.4 从代数角度给出了一般标准线性规划问题(1.1.1)所有解的组成情况:当目
标函数的梯度与可行域的所有极方向夹角小于 90 0 时,则问题有最优解;另外,在这种情况
下,当目标函数只在一个极点上达到最小,则问题有唯一最优解;当目标函数在多于一个极 点上同时达到最小,则问题有无穷多最优解。
当目标函数的梯度与可行域的某一极方向夹角
大于 90 0 时,则问题无有限最优解。
当目标函数的梯度与可行域的所有极方向夹角都不大于 90 0 时,并且与某一个极方向的夹角恰好为 90 0 ,同时,目标函数至少在一个极点上达到最
小,则问题有无穷多最优解。
下面要讲到的单纯形方法正是通过一种算法来实现和检验上面 的各种情况。
(3) 线性规划问题的最优性条件
Kuhn 和 Tucker 从理论上给出了线性规划问题的最优性条件,从理论上圆满解决了线性 规划问题最优解所满足的条件。
定理 1.2.5 [5] 对于标准线性规划问题(LP ): { }
min :,0 T c x Ax b x =³ ,x 是其最优解 的充分必要条件为存在w ,v 使得下式成立:
,0 0,0 0
T T Ax b x c A w v v v x =³ ì ï
--=³ í ï = î (1.2.2)
但是,仅仅从这个定理出发,很难直接来求解线性规划问题,因此,下面我们将介绍用 于求解线性规划问题的一种迭代方法——单纯形方法。
第三节 求解线性规划问题的单纯形方法
§3.1 基本可行解及线性规划问题的基本定理
考虑标准形式的线性规划问题(LP ): {
}
min :,0 T
c x Ax b x =³ ,假设秩() A m = ,故
A 中必有 m 个线性无关的列向量,它们构成满秩方阵
B (为叙述方便,假定
12 (,,,) m B A A A = L ),把 A 中其余各列组成的子阵记为 N ,即 ) , ( N B A = ,再把
T
n x x x x ) , , , ( 2 1 L = 的分量也相应地分为两部分,记为 B x 和 N x ,则 b Ax = 可记作
b
Nx Bx N B = + 即
N
B Nx B b B x 1 1 - - - = 给 N x 任意一组值 N x ,则可得到对应的 B x 的一组值 B x ,于是 ú û
ù ê ë é = N B x x x 便是约束方程组
b Ax = 的一个解。
若令 0 = N x ,就得到约束方程组的一种特殊形式的解 ú û
ù ê ë é = - 0 1
b
B x 。
定义 1.3.1 设B 是秩为m 的约束矩阵 n
m R
A ´ Î 中的一个m 阶满秩子方阵,则称
B 为
一个基(或基阵)。
B 中m 个线性无关的列向量称为基向量,变量 x 中与之对应的m 个分量 称为基变量,其余的分量称为非基变量。
令所有的非基变量取值为零,得到的解
ú û
ù ê ë é = ú û ù ê ë é = - 0 1
b B x x x N B ,称为相应于B 的基本解。
当 0 1
³ - b B 时,称基本解x 为基本可行解,
这时对应的基B 称为可行基。
定理 1.3.1 可行解x 是基本可行解的充要条件是它的正分量所对应的A 中列向量线性 无关。
由定义知, 基本可行解至少有 m n - 个分量为零,从几何上看它至少属于 m n - 个超平 面的交集。
定理 1.3.2 x 是基本可行解的充要条件是x 是可行域 D 的极点。
定理 1.3.2 是一个非常重要的定理,它将线性规划问题可行域的极点与线性规划问题的 基本可行解一一对应起来,因此,我们前面讨论的线性规划问题的最优解(如果有的话)是 在其可行域的极点上达到,对应的就是在基本可行解上达到。
所以,我们以后只需要讨论基 本可行解。
定理 1.3.3 一个标准形式的线性规划问题(1.1.1): { }
min :,0 T c x Ax b x =³ ,若可行 域 {|,0} n
D x R Ax b x =Î=³ 非空,则至少有一个基本可行解。
定理 1.3.3 给出了基本可行解的存在性。
定理 1.3.4 若标准形式的线性规划问题(1.1.1): {
}
min :,0 T
c x Ax b x =³ 有有限的最 优值,则一定存在一个基本可行解是最优解。
由基本可行解与可行基的这种对应关系,我们知道给定一个标准形式的线性规划问题,
它最多有 m n C 个可行基,因而基本可行解的个数不会超过 m
n C ,从而多面凸集 D 的顶点个数
不会超过 m
n C 个。
由定理 1.3.4 可知,线性规划问题实际上是一个组合问题:即在有限个可 行解中找出最优解。
一个基本可行解x ,如果它的所有的基变量都取正值,称它是非退化的;如果有的基 变量也取零值, 称它为退化的。
一个线性规划问题, 如果它的所有基本可行解都是非退化的, 就说该问题是非退化的,否则说它是退化的。
§3.2 求解线性规划问题的单纯形方法
考虑标准线性规划问题(LP ):
min .. 0
T c x Ax b
s t x = ì í
³ î 解线性规划问题著名的单纯形方法(Simplex Method)是G.B.Dantzig 在1947年提出的。
本节我们介绍单纯形方法的理论、基本计算步骤及具体实施运算的单纯形表。
(1) 假设
假设 1.3.1 f ¹ ³ = Î = } 0 , | { x b Ax R x D n ; 假设 1.3.2 秩(), m n A m m n ´ =< ;
假设 1.3.3 A 中存在满秩矩阵B 满足 1
0 B b - ³ ; 假设 1.3.4 所考虑的(LP )问题是非退化的。
上面四个基本假设是为了方便讨论单纯形方法而做的,实际上,在我们学完单纯形方法 后会发现,这四个假设都不是必须的。
我们已经知道,对于一个标准线性规划问题(LP ),如果它有最优解,则必可在某一基 本可行解处达到,因而只需在基本可行解集合中寻求即可。
单纯形方法的主要思想就是先找 出一个基本可行解,判别它是否为最优解,如不是,就找一个更好的基本可行解,再进行判 别,如此迭代进行,直至找到最优解,或者判定该问题无有限最优解。
(2) 基本可行解的一些性质
由假定 1.3.3 和 1.3.4,已找到了一个可行基B ,对应一个非退化的基本可行解x ,此 时可将方程组 b Ax = 化成与之等价的方程组
b
B Nx B x N B 1 1 - - = + (1.3.1)
为叙述方便,这里假定 12 (,,,) m B A A A = L , 12 (,,,) T B m x x x x = L ,且有 0 1
> - b B 。
记向
量
T m T
mj j j j j b b b B b n j a a a A B A )
, , ( , , 1 , ) , , , (1 1 2 1 1 L L L = = = = = - - 则(1.3.1)式可写成
1
n
B j
j
j m x x A
b
=+ +
= å 或
1 B N x B Nx b
- += (1.3.2)
对目标函数 x c T
作相应的变换,记c 为 ) , ( T
N T
B T
c c c = ,其中 B c 是基变量对应的系数, N c 是 非基变量对应的系数,则
1 1 1
() () () T T T
B B N N T T B N N N T T T B B N N
n
T
T
B
B j j j
j m z c x c x c x c b B Nx c x c b c B N c x c b c
A c x - - =+ ==+ =-+ =-- =-
- å (1.3.3)
x 对应的目标函数值用 0 z 表示,则 b c x c z T B T = = 0 。
由于 m m I B B A A = = -1
1 ) , , ( L ,故
当 1,, j m = L 时, j A 是一个第 j 个分量为 1,其余分量为 0 的m 维向量。
故有
m j c A c j j T B , , 1 , 0
L = = - 令
n j c A c j j T B j , , 1 , L =
- = z 则
)
, 0 ( ) , ( ) , , ( 1 1 1 T
N T B T N T B n T T B T c N B c c A B c - = = = - = - - z z z z z L 从而(1.3.3)式可记为
x b c z T T
B z -
= 经过变换后与原问题等价的问题是(对应于基本可行解 ÷ ÷ ø
ö
ç ç è æ = 0 b x ,
( 0 > b )) 0 min T z z x
z =- (1.3.4)
1 .. 0
B N x B Nx b s t x - ì += í
³ î (1.3.5)
它充分反映了基本可行解x 的特征。
① 最优性准则
定理 1.3.5 如果(1.3.4)式中 0 £ z ,则x 为原问题的最优解。
另外,如果对应于非基变 量的每个 0 j z < , 则x 为原问题的唯一最优解; 如果对应于非基变量的某个 0 j z = , 则x 虽 然为原问题的最优解,但此时最优解不唯一。
② 无有限最优解情况
定理 1.3.6 如果(1.3.4)中的向量z 的第k 个分量 0 > k z ,而向量 0 1
£ = - k k A B A ,则 原问题无有限最优解。
另外, k k
e A d + ú û
ù ê
ë é- = 0 是(LP )问题的一个极方向。
③ 基可行解可以改进的条件
定理 1.3.7 如果(1.3.4)中的向量z 的第k 个分量 0 > k z ,且同时向量 1 0 k k A B A - =£
, 则原问题存在另一个基可行解 $ x
,满足 $ T T c x c x < 。
(3) 基可行解的改进
基可行解的改进的思想是:从原来的非基变量中选一个变量让它变为基变量,为保证
|
新得到的解仍是基本可行解,必须从原来的基变量中选一个让它变为非基变量。
也就是说新 基与原有的基有 1 - m 个相同的列向量,仅有一列向量不同。
应该选择哪一个非基变量变为 基变量呢?若已知 0 > k z ,因为 n k m £ £ +1 ,与 k z 相对应的是非基变量 k x ,因此当 k x 变为基变量时,它的值由零变为正数,比如说 0 > =q k x ,其余的非基变量仍取值为零。
由(1.3.4)式知对应新解的目标函数值为 0 0 z z z k < - = qz 。
至于q 的取值大小应以保证新解 是基本可行解为原则。
寻找x
ˆ的具体方法如下,取 k
k
e A d + ú û
ù ê ë é- = 0 有
= Ad 令
ˆ 0 00 k k
k k
A b b A x x d e e q q q q q æöæö æö - - =+=++=+ ç÷ç÷ ç÷ èø èøèø
显然
b
Ad x A x A = + = q ˆ 为使 0 ˆ ³ x ,只要 0 ³ - k A b q 即可,所以令
rk
r
ik ik i a b m i a a b = = > = } , , 1 , 0 | min{
L q (1.3.6)
从而保证了 0 ˆ ³ x 。
因而x ˆ是可行解。
由于向量组 m r k r A A A A A , , , , , , 1 1 1 L L + - 线性无关,则 x
ˆ是基本可行解。
x ˆ的各分量为:ˆ ,1,,, ˆ 0 ˆ ˆ 0,1,,, r i
i ik rk r r k
rk j b x b a i m i r a x b x a x
j m n j k ì =-=¹ ï ï
ï = ï í
ï = ï ï
==+¹ ï î L L (1.3.7)
由 0 > b ,得 0 > =
rk
r
a b q ,因此有
x c x c x
c T k T T < - = qz ˆ 由于相应于基本可行解x 的向量 T
T
B T
c A B c - = -1
z 有重要的作用,我们称它为基本可 行解x 的检验数向量,它的各个分量称为检验数。
注意,由假设 1.3.4,在(1.3.6)式中最小比值是唯一的。
如果检验数向量z 有不止一个 正分量,可以任意选取一个正分量作为定理中的 0 > k z 。
而选择正值 k z 的最好策略是什 么?这个问题至今尚未解决。
一般常取最大的那个 k z ,所对应的 k x “入基” ,而(1.3.6)算出 的 r rk b a 所对应的 r x “出基”
,这就是从一个基本可行解x 移动到另一个“更好”的基本可 行解x ˆ的过程。
新旧基本可行解 x ˆ与x 的差别在于以原来的非基变量 k x 代替原来的基变量 r x ,而成为第r 个基变量,而 r x 变为非基变量。
整个过程称为换基,或说进行了一次迭代,
称 r A 为退出基列, k A 为进入基列, r x 为离基变量, k x 为进基变量。
(4) 单纯形方法
上面三个定理给出了单纯形法的迭代步骤,给定一个基本可行解x ,计算与其对应的 检验数向量z 。
若 0 £ z ,则x 就是最优解;如果z 的某个分量 0 > k z ,而 0 £ k A ,则原 问题无界;如果 0 > k z 且 k A 含有正分量,那么按照公式(1.3.6)和(1.3.7)式求出另一个基本
可行解x
ˆ,使目标函数值减少 k qz 个单位。
得到新的基本可行解后,再按以上程序进行,这 样便可得到一个基本可行解的序列。
在假设 1.3.4 的前提下,每迭代一次目标函数值严格减 少,因而序列中的基本可行解不可能重复出现。
由于基本可行解的个数是有限的,故最终一 定能找到最优解或者判定问题无界,所以得到如下定理。
定理 1.3.8 对于任何非退化的线性规划问题, 从任何基本可行解开始, 经过有限多次迭 代,或得到一个基本可行的最优解,或做出该线性规划问题无界的判断。
在单纯形方法的一次迭代过程中,迭代前后的两个基有 1 - m 个相同的列向量,这样的 基称为相邻基。
在几何上,可以严格证明相邻基所对应的是可行域多面凸集D 的相邻顶点。
因此直观的说,单纯形方法就是从可行域多面凸集的一个顶点迭代到与其相邻的另一个顶 点,直至找到最优解或判定问题无界。
下面给出具体的计算步骤。
单纯形方法步骤
第 1 步 找一个初始的可行基B ;
第 2 步 求出对应的典式及检验数向量z ; 第 3 步 求 } , , 1 | max{ n j j k L = = z z ;
第 4 步 若 0 £ k z ,停止。
已找到最优解 ÷
÷ ø
ö ç ç è æ = ÷ ÷ ø ö ç ç è æ = 0 b x x x N B 及最优值 b c z T
B = ; 第 5 步 若 0 £ k A ,停止.原问题无界; 第 6 步 求 rk
r
ik
ik i a b m i a a b = = > } , , 1 , 0 | min{
L ; 第 7 步 以 k A 代替 r
B A 得到新的基,转第 2 步。
直接用公式进行单纯形法的迭代计算,对于用笔计算是很不方便的,其中最复杂的是 进行基变换,但实施基变换所用的实际上是消元法。
因此,可以将单纯形法的全部计算过程 在一个类似增广矩阵的数表上进行,这种表格称为单纯形表 [3]。
第四节 解线性规划问题的进一步讨论及例
§4.1 两阶段法及关于单纯形方法的几点说明
(1) 两阶段方法求初始可行解 设原问题为
min (0)
.. 0
T c x Ax b b s t x =³ ì í
³ î (1.4.1)
所谓两阶段法,就是将线性规划问题的求解过程分成两个阶段,第一个阶段是判断线 性规划是否有可行解,如果没有可行解,计算停止;如果有可行解,按第一阶段的方法可以 求得一个初始基本可行解, 使运算进入第二阶段。
第二阶段使从这个初始的基本可行解开始, 使用单纯形方法或者判定线性规划问题无界,或者求得一个最优解。
第一阶段:给问题(1.4.1)增加m 个人工变量 T
m n n a x x x ) , , ( 1 + + = L ,用单纯形法解如下 的辅助问题
1
min .. 0,0 n m
i
i n a a
g x Ax x b
s t x x +=+ = += ì í
³³ î å (1.4.2)
并且,问题(1.4.2)满足假设 1.3.1、1.3.2 和 1.3.3,是一个有 n m + 个变量的标准形式线性 规划问题,且人工变量对应的 m 列构成了一个 m 阶单位矩阵,基本可行解 0 x = ,
0 a x b =³ ,所对应的目标函数值为 å = = m
i i b g 1
0 ,可以用单纯形方法求解。
问题(2.4.1)与其辅助问题(2.4.2)有如下关系:若原问题(2.4.1)的可行区域D ,辅助问题 (2.4.2)的可行区域为D ¢,则 D x Î 和 D x x x a ¢ Î ÷ ÷ ø
ö
ç ç è æ = ÷ ÷ ø ö ç
ç è æ 0 是等价的。
而(2.4.2)的当 0 = a x 的解 D
x ¢ Î ÷ ÷ ø
ö
ç ç è æ 0 ,当且仅当有 0 min = g 。
由于 0 ³ a x ,故辅助问题(2.4.2)的目标函数有下界 0 ³ g ,从而问题(2.4.2)必有最优解。
计算结果有如下三种可能情况:
情形 1 问题(2.4.2)的最优值 0 = g ,且人工变量 m n n j x j + + = , , 1 , L ,皆为非基变 量,此时我们已得到原问题(2.4.1)的一个基本可行解。
情形 2 问题(2.4.2)的最优值 0 > g ,说明原问题没有可行解。
这时或者原问题的约束 方程组不相容,即有秩() A <秩(,) A b ;或者方程组虽相容,但没有非负解。
总之, f = D , 运算结束。
情形 3 问题(2.4.2)的最优值 0 = g ,而某些人工变量虽然取值为零,但仍是基变量。
当情形 1 出现时,把人工变量对应的列从单纯形表中去掉,得到原问题的一个初始可 行解,直接转入第二阶段:即对原目标函数 x c z T
= 应用通常的单纯形法求解。
当情形 3 出现时,设基变量为 m r B B B x x x L L , , , 1
, r B x 为一人工变量,显然有 0 = r b 。
我们观察表中第r 行中非基变量的系数,即考察 rj a ,如果它们不全为零,设 0 rs a ¹ ,以 rs a 为转轴元进行一次旋转变换(注意,此时不要求 0 > rs a )后,由于 0 = r b ,所以 0 = q ,故g 值不变,最优解也不变,只是将零值的 s x 变成了基变量,代替了取零值的人工变量 r B x ,这 样使基变量中减少了一个人工变量 (这种情况是退化情况)。
如果非基变量的系数 rj a 都为零, 则这时有秩() A =秩() A m < ,这表明第r 个约束方程是多余的,将它删去就可以了。
如果 基变量中还有其他人工变量,重复刚才的过程,直至基变量中没有人工变量。
事实上,通过两阶段方法我们已经解决了开始介绍单纯形方法的四个假设中的三个。
同样是使用单纯形方法从算法角度已经解决了:(1)什么条件下D f ¹ ;(2)什么条件下 秩() A m = ;以及(3)什么条件下 1 0 B b - ³ 的问题。
更重要的是,解决这些假设并没有用 到其它工具,仍然是单纯形方法。
因此,单纯形方法在求解线性规划问题时是封闭的。
(2) 关于退化问题
[5]
设给定了线性规划
11 11112211 21122222 1122
min .. 0,1,, n n
n n n n m m mn n m j z c x c x a x a x a x b a x a x a x b s t a x a x a x b x j n =++ ì +++= ï
+++= ï ï í ï +++= ï ³= ï î L L L LLLLLLLLLLL L L
(1.4.3)
的一个可行基,它对应的基本可行解是 0
x ,对应的基阵是 ( )
12 ,,, m B B B B A A A = L , 0
x 应该 满足约束条件,所以 1122 000 m m B B B B B B x A x A x A b +++= L 。
如果 0
x 是退化的基本可行解,它的 基变量 0
j B x 中就有一部分等于零,或者说向量b 被向量组 12 ,,, m B B B A A A L 用非负系数线性表 示时,有的系数等于零。
如果能够对b 作一个微小的变动,使b 被 12 ,,, m
B B B A A A L 用非负系 数线性表示时,系数全部是正的,那么 0
x 就变成非退化的了。
进一步,如果变动b 使得所有的
基阵都有上述性质,那么这个变动b 以后的线性规划问题就是非退化的。
给(1.4.1)的常数项 i b 后面加上 2
12
n
i i in a a a e e e +++ L ,得到下列线性规划问题: 11 2 1111221111121 2 2112222221222 2 112212 min .. 0,1,, n n
n n n n
n n n n n m m mn n m m m mn j z c x c x a x a x a x b a a a a x a x a x b a a a s t a x a x a x b a a a x j n e e e e e e e e e =++ ì +++=++++ ï +++=++++ ï ï í ï +++=++++ ï
ï ³= î
L L L L L LLLLLLLLLLL L L L (1.4.4)
称(1.4.4)为(1.4.3)的摄动问题。
这里e 是一个充分小的正数, j
e 表示e 的 j 次方。
定理 1.4.1 对于线性规划问题(1.4.4),存在 1 0 e > ,使得对于任何满足 1 0 e e << 的e , 都有(1.4.4)是非退化的。
定理1.4.2 在e 充分小时,让(1.4.4)中任一基本可行解中的e 等于零,就得到(1.4.3)的
一个基本可行解。
因此,只需要求解(1.4.4)即可。
在求解(1.4.4)时,还需要解决如下三个问题: 1、 在迭代过程中如何寻找e 的多项式; 2、 在迭代过程中如何比较e 多项式的大小; 3、 如何寻找(1.4.4)的初始可行解。
对于第一个问题,由于 ( )
2 ,,, n e e e e = L 的系数与 ( ) 12 ,,, n x x x x = L 的系数相同,所
以e 多项式的系数就是对应x 的系数。
对于第二个问题,可以通过比较e 多项式的系数来得到。
对于第三个问题,可以通过(1.4.3)的基本可行解来寻找(1.4.4)的基本可行解。
注意, 在找到(1.4.3)的基本可行解后,将变量的下标调换一下,让基变量是 12 ,,, m x x x L 就行。
事实上,摄动法的思想是这样的:在n 维空间,n 个平面可以交到一个点,但是,有时 候一个点不是n 个平面的交点, 这个点是多于n 个平面相交得到的点。
例如, 金字塔的顶点, 就是由四个平面相交而成的。
对于这样的点,从中任意找出n 个平面就可以得到这个点,因 此, 这样的点的表示方法是不唯一的, 正是这样才有可能产生了循环。
摄动法的思想非常好, 它将平面的常数项做适当的扰动,使这些平面产生一些微小的移动,保证每个点恰好是n 个 平面的交点。
1955 年,E. Beale 找出一个很有趣的例子 [5]
,是一个退化的线性规划问题,在用单纯形 方法求解时,产生了循环。
用简单的单纯形方法得不到任何结论。
摄动法正是为了解决这个 问题而出现的。
§4.2 线性规划问题的对偶及对偶单纯形方法
本节主要涉及三个问题:一是给定了标准线性规划问题后,如何写出它的对偶问题; 二是研究线性规划问题与其对偶问题之间的关系; 最后,给出解线性规划问题的对偶单纯形 算法。
(1) 线性规划问题的对偶
在例 1.1.1 中讨论了某工厂用 3种原料 3 2 1 , , P P P 生产 3 种产品 3 2 1 , , Q Q Q ,制订最大生 产计划的问题,构造了一个线性规划问题。
现从另外一个角度来讨论这个问题。
假设该厂的 决策者决定不生产产品 3 2 1 , , Q Q Q ,而将其所有 3 种原料 3 2 1 , , P P P 外售。
这时工厂的决策者 就要考虑给每种资源如何定价的问题。
设用 123 ,, y y y 分别表示出让单位原料 3 2 1 , , P P P 的单 价。
在作决策时, 作如下比较:若用 2个单位原料 1 P 和 3 个单位原料 3 P 可生产 1件产品 1 Q , 获利3千元, 那么生产1件产品 1 Q 的原料出售的所有收入不应低于生产1件产品 1 Q 的利润, 因此就有
13 233
y y +³ 同理,有
123 23 3225
454
y y y y y ++³ +³ 把工厂所有原料都出售,其收入为
123
150******** w y y y =++。