最优化计算方法-第5章(线性规划)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章线性规划
线性规划(Linear Programming,简记为LP)是数学规
划的一个重要的分支,其应用极其广泛.
1939年,前苏联数学家康托洛维奇(Л.B.Kah )在《生产组织与计划中的数学方法》一书中,最早提出和研究
了线性规划问题.1947年美国数学家丹泽格(G. B. Dantzig)提出了一般线性规划的数学模型及求解线性规划的通用方法
─单纯形方法,为这门科学奠定了基础.此后30年,线性规
划的理论和算法逐步丰富和发展.1979年前苏联数学家哈奇
扬提出了利用求解线性不等式组的椭球法求解线性规划问题,这一工作有重要的理论意义,但实用价值不高.1984年在美
国工作的印度数学家卡玛卡(N. Karmarkar)提出了求解线性
规划的一个新的内点法,这是一个有实用价值的多项式时间
算法.这些为线性规划更好地应用于实际提供了完善的理论
基础和算法.
第一节
线性规划问题及其数学模型一、问题的提出
例1 某工厂在计划期内要安排生产Ⅰ、Ⅱ两种产品,已知条件如表所示。
问应如何安排计划使该工厂获
利最多?
ⅠⅡ现有资源
设备
原材料A 原材料B 1
4
2
4
8台时
16kg
12kg
每件利润23
ⅠⅡ现有资源
设备原材料A 原材料B 1402048台时
16kg
12kg
每件利润23解: 设x 1、x 2 分别表示在计划期内产品Ⅰ、Ⅱ的产量。
12max 23z x x =+..s t 1228x x +≤1416x ≤2412
x ≤12,0
x x ≥
二、线性规划问题的标准型
112211112211
21122222
1122123max ..,,0
n n
n n n n m m m mn n m
n z c x c x c x s t a x a x a x b a x a x a x b a x a x a x b x x x x =+++⎧⎪+++=⎪⎪+++=⎨⎪⎪+++=⎪≥⎩
,,其中1,,0
m b b ≥
1
1
max ..,1,2,,0,1,2,,n
j j
j n
ij j i j j z c x s t a x b i m
x j n
=====≥=∑∑ 12(,,,)T n c c c =c 12(,,,)
T
n x x x =x 12(,,,)T
m b b b =b 111212122212n n
m m mn a a a a a a a a a ⎡⎤
⎢⎥⎢⎥=⎢⎥
⎢⎥
⎣⎦
A 12[,,,]
n = p p p
max ..()T
z s t ⎧=⎪=≥⎨⎪≥⎩c x Ax b b x 00
1
max ..(
)
T
n
j j j z s t
x =⎧=⎪⎪=≥⎨⎪⎪≥⎩∑c x
p b
b x 00
对于不是标准形式的线性规划问题,可以通过下列方法将线性规划的数学模型化为标准形式:
(1)目标函数的转换对min z 可以化max()
z -(2)右端项的转换
对0i b <,给方程两边同时乘以1-(3)约束条件的转换
约束条件为≤方程左边加上一个变量,称为松弛变量约束条件为≥方程左边减上一个变量,称为剩余变量
(
4)变量的非负约束变量j x 无限制时,令,,0j j j j j x x x x x ''''''=-≥变量0j x ≤时,令j j
x x '=-
例将下列线性规划模型转化为标准形式
123
12312312312min 23..7
2
325
00
x x x s t x x x x x x x x x x x -+-⎧⎪++≤⎪⎪-+≥⎨⎪--=-⎪≥≥⎪⎩,解(1)变量的非负约束令345
x x x =-1245
max 233x x x x -+-..s t 612457
x x x x x ++-+=712452
x x x x x -+--=12453225
x x x x -++-=
§2 两变量线性规划问题的图解法例1 求下列线性规划的解
12121212max ..284300z x x s t x x x x x x =+⎧⎪+≤⎪⎪≤⎨⎪≤⎪≥≥⎪⎩,
解(1)画可行域c A B D C 2x 1x O (2)画出目标函数的梯度向量:
(3)作目标函数的一条等值线,120
x x z +=将等值线沿梯度方向移动当等值线即将离开可行
例2 求下列线性规划的解
12121212max 2..284300z x x s t x x x x x x =+⎧⎪+≤⎪⎪≤⎨⎪≤⎪
≥≥⎪⎩,
解(1)画可行域
c A B D C 2
x 1x O (2)画出目标函数的梯度向量:
(3)作目标函数的一条等值线,120
2x x z +=将等值线沿梯度方向移动当等值线即将离开可行域时与可行域“最后的交点点为问题的最优解
例3 求下列线性规划的解
12121212max ..
2200z x x s t x x x x x x =+⎧⎪-≤⎪⎨-≥-⎪⎪≥≥⎩,
c
2
x 1
x O
无解
例4 求下列线性规划的解
12121212min 3..123600z x x s t x x x x x x =-⎧⎪≤⎪⎨≥⎪⎪≥≥⎩++,
2
x 1
x O
线性规划问题的性质:
(1)线性规划的可行域为凸集,顶点个数有限.若可行域非空有界,则可行域为凸多边形.(2)线性规划可能有唯一最优解,可能有无数多个最优解,也可能无解最优解.无最优解可能是目标函数在可行域上无界,也可能可行域为空集.(3)若线性规划有最优解,则最优解必可在可行域的某个顶点达到.若两个顶点都为最优解,那么这两点连线上的所有点都是线性规划的最优解.
§3 线性规划解的概念及其性质
1 线性规划解的概念考虑线性规划问题
max ..()T
z s t ⎧=⎪
=≥⎨⎪≥⎩
c x Ax b b x 00定义.1 矩阵A 中任何一组m 个线性无关的列向量构成的可逆矩阵B 称为线性规划的一个基矩阵
与这些列向量对应的变量称为基变量(basis variable )
其余变量称为基对应的非基变量(nonbasis variable )
B 若设一个基为12(,,)m B p p p = ,12,,,m x x x ——为基B 对应的基变量1,,m n x x + ——为基B 对应的非基变量
1B m x x x ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
1m N n x x x +⎡⎤
⎢⎥=⎢⎥⎢⎥⎣⎦
12(,,,)
m m n ++= N p p p (,)
=A B N 从而
令
=Ax b 则(,)N x ⎡⎤
=⎢⎥⎣⎦B x B N b
1
1
B N
x B b B Nx --=-B N Bx Nx b
+=令0N x =则1
B x B b
-=1
0B b -⎡⎤
⎢⎥
⎣⎦
——基本解(basis solution )满足1
0B b -⎡⎤≥⎢⎥⎣⎦
,=≥0Ax b x 的基本解——基本可行解
(basis feasible solution )对应的基称为可行基(feasible basis ).
B 可以写成即:
定义4 若基本可行解中所有基变量都为正,这样的基本可行解称为非退化解(non-degenerate solution).若基本可行解中某基变量为零,这样的基本可行解称为退化解(degenerate solution).
例
12
12
1
12max ..28400z x x s t x x x x x =-⎧⎪+≤⎪⎨
≤⎪⎪≥≥⎩,
标准化得:12123141234max ..28400,00z x x s t x x x x x x x x x =-⎧⎪++=⎪⎨+=⎪⎪≥≥≥≥⎩,,12341210(,,,)1001⎡⎤
==⎢⎥
⎣⎦
A p p p p 子阵
是否为基基变量
非基变量
基本解
目标函数值
134(,)
=B p p 34
,x x 12,x x (0,0,8,4)是231(,)
=B p p 31
,x x 24,x x (4,0,4,0)
312(,)
=B p p 12,x x 34
,x x (4,2,0,0)424(,)
=B p p 24
,x x 13,x x (0,4,0,4)-4
514(,)=B p p 14
,x x 23
,x x (8,0,0,4)
-是是
是
是042基
本可行
解1
x O
(4,0)
(4,2)
(0,4)
(8,0)
2
x 顶点
2 解的判别定理
定理1 最优解的判别准则设B 为线性规划LP 的一个基,
1(1)0
-≥B b 1(2)T T
--≥0
B
c B A c 则基对应的基本可行解1
-⎡⎤
⎢⎥⎣⎦0B b 是LP 的最优解.
1
(1,2,,)σ--== T
B
j j j c B p c j n 为变量对应的检验数
j x 112[0,,0,,,]
σσσ-++-= ,T T
B
m m n c B A c 显然基变量对应得检验数为零.
定理2 无穷多个最优解的判别定理
在线性规划的最优解中,某个非基变量对应的检验数为零,则线性规划有无数多最优解.定理3 无界解的判别定理
设B 为线性规划的一个可行基,若基本可行解中s x 对应的检验数0σ<s ,且1
-≤0s B p 则线性规划具有无界解(或称无解).
某非基变量
§3.4 单纯形表
设B 为线性规划的一个基,
x 为对应的可行解,则=Ax b
两边同乘得
1
-B 11
--=B Ax B b
两边同乘得
T B
c 1
1
T T --=B
B
c B Ax c B b T z =c x
T
z -=c x 11
T T --+-=T
B
B
z c B Ax c x c B b 1
1
(T T --+-=)T
B
B
z c B A c x c B b
11
11
()T T
T z ----⎧+-=⎨=⎩
B
B
c B A c x c B b B Ax B b 1
1
1
11T T T
z ----⎡⎤
⎡⎤-⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦0
B
B
c B b c B A c x B A B b 定义矩阵
1
1
11
T
T
----⎡⎤-⎢⎥⎣⎦T B
B
c B b c B A c B b
B A 为基B 对应的单纯形表(table of simplex ),记为()
T B
1
1
11
()T T
----⎡⎤
-=⎢⎥⎣⎦T B
B
c B b c B A c T B B b
B A 检验数
函数值
基变量的值各变量的系数
1
00
T b -=B
c B b 101020(,,,)
--= T T
B
n c B A c b b b 10201
-⎡⎤
⎢⎥⎢⎥
=⎢⎥⎢⎥ b b B b
则单纯形表可写成
00
010101110
2
()⎡⎤
⎢⎥⎢⎥
=⎢⎥
⎢⎥⎣⎦
B n n m m mn b b b b b b T b b b 1112121222111
112
(,,)---⎡⎤
⎢⎥⎢
⎥
==⎢⎥
⎢⎥⎣⎦
n n n m m mn b b b b b b B A B p B p b
b b
上例中
12
12
112max ..28400z x x s t x x x x x =-⎧⎪+≤⎪⎨≤⎪
⎪≥≥⎩
,标准化得:12
1231412max ..28400z x x s t x x x x x x x =-⎧⎪++=⎪⎨+=⎪⎪≥≥⎩,12341210(,,,)1001⎡⎤
==⎢⎥
⎣⎦
A p p p p 子阵
是否为基
基变量
非基变量
基本解
目标函数值
134(,)
=B p p 34
,x x 12,x x (0,0,8,4)是231(,)
=B p p 31
,x x 24,x x (4,0,4,0)
312(,)
=B p p 12,x x 34
,x x (4,2,0,0)424(,)
=B p p 24
,x x 13,x x (0,4,0,4)-4
514(,)=B p p 14
,x x 23
,x x (8,0,0,4)
-是是
是
是042基
本可行
解1
x O
(4,0)
(4,2)
(0,4)
(8,0)
2
x 顶点
13410(,)01⎡⎤
==⎢⎥⎣⎦
B p p 231(,)
=B p p 12341210(,,,)1001⎡⎤==⎢⎥
⎣⎦
A p p p p T
(0,0)
=B C 10()T
⎡⎤
-=⎢⎥⎣⎦
c T B b A 34011008121041001z x x -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦23140101()4021141001x x ⎡⎤
⎢⎥=-⎢⎥⎢⎥z T B 1
2
1101--⎡⎤=⎢⎥⎣⎦
B 31401014021141001z x x ⎡⎤⎢⎥−−→-⎢⎥⎢⎥⎣⎦
T
(0,1)
=B C
单纯形表的特点:
1、基变量对应的检验数为零
2、基变量的系数构成单位阵
§5旋转变换(基变换)
设已知12(,,,,,)
= r m j j j j B p p p p T()=B 1 r m j j j z x x x 1
s
n x x x 00
0100101111010
2⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
s
n s n r r rs rn m m ms mn b b b b b b b b b b b b b b b b
为了将s x 变为基变量,而将r j x 变为非基变量,必须使表中的第s 列向量变为单位向量,变换按下列步骤进行:
(1)将()T B 中第r 行,第s 列的元素化为1.
01(,,,,,1,,) rj r rn
r rs rs rs rs
b b b b b b b b (2)将()T B 中第s 列的的其余元素化为0.
01
01(,,,,,0,,)
---- is rn is rj is r is r i i ij in rs rs rs rs
b b b b b b b b b b b b b b b b
由此得出变换后矩阵中各元素的变换关系式如下,其中
,01== ,,,rj
rj rs
b b j n
b ,,01,01=-≠== ,,,,,,is rj
ij ij rs
b b b b i r i m j n
b 变换式称为旋转变换
rs b 称为旋转元,r
称为旋转行
称为旋转列,
s s x 称为入基变量,
称为出基变量,
r j x {,}r s
定理3.5.1,01== ,,,rj rj rs
b b j n b ,,0,01=-≠== ,,,,,is rj ij ij rs
b b b b i r i m j n b 在变换
之下,将基12(,,,,,)= r m j j j j B p p p p 的单纯形表变为基
12(,,,,,)
= m j s j j B p p p p 的单纯形表
第6节单纯形法
基本思路是:线性规划(通常是求最小值的形式)若有最优解,其必定在可行域(在相应几何空间中是一个凸多面体)的顶点达到,故从某一个顶点出发,沿着凸多面体的棱向另一顶点迭代,使得目标函数的
值增加,经过有限次迭代,
将达到最优解点.
1.入基变量及出基变量的确定
入基变量的确定
由上面可知,目标函数用非基变量表示的形式为
01n j j
j m z z x σ=+=-
∑若某检验数0j σ<则j x 的系数大于零,将j x 由零变为非零,目标函数值增大.所以,为了使的取值目标函数值增加,可以将某检验数0j σ<对应的非基变量j x 中的某个变为基变量.
{}
min 0j s j σ=<则s x 可选作为入基变量.即:在负检验数中,列标最小的检验数对应的非基变量入基.2.出基变量的确定
在确定出基变量时应满足两个原则:
(1)目标函数值不减;
(2)保证新的基本解为基本可行解.0min 0,0i is is b b i m b θ⎧⎫
=>≤≤⎨⎬
⎩⎭
min ,00i is is b r i b i m b θ⎧⎫
==>≤≤⎨⎬
⎩⎭,
2 单纯形法
设已知一个初始可行基及B T()B 基变量指标集合为{}1,,B m J j j = 非基变量的指标集合为{}1,2,,\N B
J n J =
单纯形法
若所有()00j N b j J ≥∈,则停止,最优解为
0,1,,0,i
j i j N x b i m x j J **⎧==⎪⎨=∈⎪⎩
否则转(2).
(1)最优性检验(2)选入基变量{}
0min 0,j N s j b j J =<∈若()01~is b i m ≤=,则停止,(LP)无最优解,否则转(3)
(3)选出基变量
0min 0,0i is is b b i m b θ⎧⎫=>≤≤⎨⎬⎩⎭0min ,00i is is b r i b i m b θ⎧⎫==>≤≤⎨⎬⎩⎭
,(4)作{},r s 旋转运算
,01rj rj rs
b b j n b == ,,,,,01,01is rj ij ij rs
b b b b i r i m j n b =-≠== ,,,,,,得B 的单纯形表()()ij
T B b =,以ij b 代替ij b ,转(1)
例1 求线性规划问题的解
解标准型为:12
1231425max 2328416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥12121212max 2328
416.412
,0z x x x x x s t x x x =++≤⎧⎪≤⎪⎨≤⎪⎪
≥⎩
12123142512345max 2328416.412,,,,0
z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥⎩-20-381612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥⎥⎥⎥⎥⎡⎢
⎢⎢
⎢⎢⎢0T()B =0345[,,]B p p p =00
T()T c B b
A ⎡
⎤-=⎢⎥⎣⎦
-20-381612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥
⎥⎥⎥⎥⎦
⎡⎢⎢⎢
⎢⎢⎢⎣0T()B =8/116/408-34
41202101001/400400135z x x 12345x x x x x 01/20⎤⎥⎥⎥⎥⎥⎥⎡⎢
⎢⎢⎢⎢⎢1/4-41x
08-3441202101001/400400135z x x 12345
x x x x x 01/20⎤
⎥⎥⎥⎥
⎥⎥
⎦⎡⎢
⎢⎢
⎢⎢⎢⎣1/4-1x 4/2
12/4
0140244011/201001/40002-15z x 12345
x x x x x 3/21/80⎤
⎥
⎥
⎥⎥
⎥⎥⎦
⎡⎢⎢⎢
⎢⎢⎢⎣1/8-1x 32x 1/2
例2求线性规划问题的解
解标准型为:12
123
14
25
max 228416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥12
12
1212max 228416
.412
,0
z x x x x x s t x x x =++≤⎧⎪≤⎪⎨≤⎪⎪≥⎩
12123142512345max 228416.412,,,,0
z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥⎩-10-281612121004001004001345z x x x 12345
x x x x x 000⎤
⎥⎥
⎥⎥
⎥⎥⎡⎢
⎢⎢
⎢⎢⎢0T()B =0345[,,]
B p p p =00T()T c B b
A ⎡⎤-=⎢
⎥⎣⎦
-10-281612121004001004001345z x x x 12345
x x x x x 000⎤
⎥⎥
⎥⎥
⎥⎥⎦
⎡⎢⎢⎢
⎢⎢⎢⎣0T()B =8/116/
404-24
41202101001/400400135z x x 12345
x x x x x 01/40⎤
⎥⎥
⎥⎥
⎥⎥⎡⎢
⎢⎢⎢⎢⎢1/4-41x
0-2441202101001/400400135z x x 12345
x x x x x 00⎤
⎥⎥⎥⎥
⎥⎥⎦⎡⎢
⎢⎢
⎢⎢⎢⎣1/4-1x 4/2
12/4
080244011/201001/400015z x 12345
x x x x x 100⎤
⎥⎥
⎥⎥
⎥⎥⎦
⎡⎢⎢⎢
⎢⎢⎢⎣1/8-1x 32x 41/42-1/2
080244011/201001/400015z x 12345
x x x x x 100⎤
⎥⎥
⎥⎥
⎥⎥
⎦
⎡⎢
⎢⎢
⎢⎢⎢⎣1/8-1x 2x 2T 0803280101/410101/2-004-12z 12345x x x x x 00⎤
⎥⎥
⎥⎥
⎥⎥⎦
⎡⎢⎢⎢
⎢⎢⎢⎣01x 2x 42-1/25x 1
12
12x k x k x =+12120,1,1
k k k k ≤≤+=全部最优解为
§7 两阶段法
第二阶段从初始可行基开始,用单纯形法求解原问题.
(LP )max ..(0)0T z c x s t Ax b b x ⎧=⎪=≥⎨⎪≥⎩(ALP )max ..0()T w s t z ⎧=-⎪-=⎪⎨+≥⎪⎪≥⎩
00T e y c x A =b b x y x 第一阶段引入人工变量,构造辅助问题,求辅助问题
的最优解,得出原问题的初始可行基及对应
的基本可行解.
(ALP)
12
1122
111122111
211222222
112
12312
max
..0 ,,,,0
m
n n
n n
n n
m m mn n m m
n m
w y y y
s t z c x c x c x
a x a x a x y b
a x a x a x y b
a x a x a x y b
x x x x y y y
=----
⎧
⎪----=⎪
⎪++++=⎪
++++=⎨
⎪
⎪
++++=⎪
⎪
≥
⎩
,,,,,
121111211112122122212000000100()010001m m m m i i i in i=1i i i n n n m m m mn b a a a c c c b a a a T B b a a a b a a a ===⎡⎤----⎢⎥⎢⎥---⎢
⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
∑∑∑∑。