3大规模线性规划--运筹学II--研究生课程-
Download
Report
Transcript 3大规模线性规划--运筹学II--研究生课程-
济南大学硕究生课程
运 筹 学 II
第一章 线性规划 之大规模
大规模线性规划
D-W原理
D-W经济解释
常相全
1 大规模线性规划
大系统算法-D-W分解
第一章 线性规划
由于具有庞大组织体系的企业与行政机构不断涌现,
而且要求管理科学用定量的方法来解决的全局性问题也
日见增多,因此,需要求解的实际线性规划问题的规模
也越来越大。现在,具有几百个或者上千个变量与约束
的问题已是相当常见的了。甚至有上万个变量的问题也
已不值得惊奇。根据文献介绍,美国的运筹学界曾计算
过具有五六十万个变量的经济计划模型和能源运输与分
配模型。
济南大学管理学院
2
1大规模线性规划
大系统算法-D-W分解
第一章 线性规划
从理论上说,单纯形方法的使用并不受问题规模
的限制,但实际情况却并不如此。
首先是数据存储的问题
假如一台计算机的内存有十万个储存单元,则对
于一个有l00个变量、1000个约束的线性规划问题来
说,计算机内存就存放不下一张完整的单纯形表。
济南大学管理学院
3
1大规模线性规划
大系统算法-D-W分解
第一章 线性规划
其次是舍入误差积累的问题
由于大型问题要经过许多次迭代后才能得到最优
解,而舍入误差的积累可能会使计算结果变得与精确
解相差甚远、乃至毫无意义。因为计算机上字长位放
行限,因此,对方法的数值稳定性就有很高的要求。
济南大学管理学院
4
1大规模线性规划
大系统算法-D-W分解
第一章 线性规划
第三,方法的计算进度的快慢也至关重要
对于小型问题,一个计算方法的运算次数多少关系并
不太大,因此在计算机上一般都很快能将问题算完。但
对大型问题则不然。
假如一个方法的运算次数为3n次,而另一种方法的运
算次数为n3次,这里n为变量数。设在每秒运算百万次的
计算机上计算一个n=60的问题,则前者约需用4×1022秒
≈1015年,这相当于用10亿个这样的计算机算100万年,而
后一种方法只需0.2秒便能算完。
济南大学管理学院
5
1大规模线性规划
大系统算法-D-W分解
第一章 线性规划
幸运的是,大部分大型问题是稀疏的。
针对此特点的改进措施可以分为二类:
一类称为分解方法,即把原来的问题分解成一些规
模较小的极值问题来求解;
另一类称为直接方法,即直接求解原问题,但对由
基向量构成的矩阵的逆的存放与使用,设计一些紧凑而
且方便的方法。
济南大学管理学院
6
1大规模线性规划
第一章 线性规划
大系统算法-D-W分解
考虑如下问题:
其中:
min z c1 x1 ... cl xl
Ci,xi,ri与b都是向量
A1 x1 ... Al xl b
D x
r1
1 1
s.t.
Dl xl rl
x1 ,..., xl 0
Ai与Di都是矩阵,i=1,2,...,l;
且它们的维数都是相容的,
即ci与xi的维数相同。
这个维数等于矩阵Ai与Di的
列向量个数,而Ai与Di的行数
分别等于向量b与ri的维数。
济南大学管理学院
7
1大规模线性规划
大系统算法-D-W分解
考虑如下问题:
第一章 线性规划
在上述线性规划问题中,
min z c1 x1 ... cl xl
变量分成l 组,其中一部分
A1 x1 ... Al xl b
D x
r1
1 1
s.t.
Dl xl rl
x1 ,..., xl 0
约束条件(第一组)与各组变
量都有关系,称为耦合约束
(Coupling constraints)。
而其他的约束条件则呈
变量分离形式,即只对同一
组内的变量起到限制作用。
济南大学管理学院
8
1大规模线性规划
大系统算法-D-W分解
第一章 线性规划
考虑如下问题:
min z c1 x1 ... cl xl
A1 x1 ... Al xl b
D x
r1
1 1
s.t.
Dl xl rl
x1 ,..., xl 0
多品种网络流问题以
及有限资源的分配问题
等都是这种类型。这类
问题的有效解法是
Dantzig-Wolfe方法(简
称D-W方法)。
济南大学管理学院
9
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
MinC T X
( LP0 ) AX b
X 0
A1 m行
A
A2 n列
MinCT X
m1行
A1 X b1
A X b ( LP1 )
2
2
m2 行
X 0
m m1 m2
记 S 2 X | A2 X b2 , X 0 为有界集
X S 2 , X j X j , j 1 , j 0
X j 为集S 2 中的极点。
济南大学管理学院
10
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
大系统算法-D-W分解
Min f j j
Pj j b1
( LP2 ) j 1
j =1
1
j 0, j 1 p
p
f j CT X j
Pj A1 X j
其中
p 极点的个数
( LP1 ) 与 ( LP2 ) 等价
对 ( LP2 ) 的可行解 (1 p ) ( LP1 ) 的可行解 X
对 ( LP1 ) 的可行解 X ,可找到 ,使 X
济南大学管理学院
j X
p
j
X
j
j 1
j
11
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
当极点很多时主导规划,求解,可用下面的列生成法。
利用 S 2 中部分极点,构造“受限主规划”
:
Min f j j
p
Pj j b1
( LP3 ) j 1
其中 p p
j 1
j 0
当取 p 1 p 0 时, LP3 的可行解也是 LP2 可行解。
济南大学管理学院
12
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
问题1:
那么
LP3 的最优解是原 LP2 的最优解吗?
1
令 LP3 的最优单纯形乘子为 ( 1 , 0 ) , f B B
( 1 对应前 m1 个等式, 0 对应最后一个加权等式)
济南大学管理学院
13
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
问题1的解答:
问题 1 等价于:即 能否保证(LP2 ) 的全部检验数 j 0 ?
( j f j 1Pj 0 ) 若全部
j
0 ,则问题 1 成立;
若某个 j 0 ,则问题 1 不成立。要继续求解。
可以定义: s min j
此极小化可转为如下极小化问题(由fj和 Pj 的规定)
Min(CT 1A1) X j 0
济南大学管理学院
14
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤第一章 线性规划
因为极点X j S 2 且最优解是产生在极点上,故上式等价于
( LP4 )
求解后,可得到
Min(C T 1 A1) X
A2 X b2
X 0
s
① X (即
LP4 的最优解)
Ps
s
P
A
X
② , s
1
1
s f s 1Ps 0
若 s 0 ,则有 ( LP3 ) 的最优解 ( )
*
*
1
*
p
③ CT X s
s
1 A1 X 0
Ps
若 s 0 , 则将 与f s 加入“受限主规划” ( LP3 ) ,继续求解;
1
得到 ( LP1 ) 的最优解 X
*
*
j
X
j 此即是(LP0 )
济南大学管理学院
最优解。
15
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤
第一章 线性规划
归纳解题步骤:
主规划(高层)
产生( 1, 0)
原规划
子规划(低层)
产生 生成列
济南大学管理学院
16
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤
第一章 线性规划
“分解的规划”
( LP1 )( LP2 )
T
MinC X
A1 X b1
A2 X b2
X 0
“受限主规划”
(LP3 )
Min f j j
p
Pj j b1
0
j
j 1
济南大学管理学院
“子规划”
(LP4 )
Min(C T 1 A1) X
A2 X b2
X 0
17
大系统算法-D-W分解
2 Dantzig-Wolfe分解原理及算法步骤
之 流程图 第一章 线性规划
选 S 的部分极点 X j ,j=1,…p
构造(LP3),求解得到:
1
* (*1 * p )
f
B
和
= B ( 1 , 0 )
2
求解(LP4),得到
Ps
A1 X s
)
①X ,
②( ) = (
1
1
T
s
s
③ s f s 1 Ps C X 1 A1 X 0
s
A1 X s
Ps
)和
将( ) =(
1
1
f s C T X s 加入(LP3)
s 0
(LP1 )最优解
X j X
*
*
p p 1
济南大学管理学院
18
j
分解原理及算法对于“对角块结构”
的
第一章 线性规划
大系统算法-D-W分解
线性规划模型分解算法的分析
TX
T
T
MinC
Min(C X1 ... C p X p )
1
... A p X p
A1 X1
B1 X1
B2 X 2
...
...
... ...
...
Bp X p
例如:系统中有p个子
公司,各子公司有各
a1
b1
b2
...
bp
X 0
A1 ( A1,... A p )
X1
自的条件约束,但
X2
X
它们之间又有耦合,
...
共享一个资源,则
X p
它们有一个公共约束。
A1 X
A2 X
X
b1 a1
b1
B1 ... o
A2 ... ... ... b2 ...
bp
o ... B p
济南大学管理学院
b1
b2
0
c1
c ...
c p
19
大系统算法-D-W分解
分解原理及算法对于“对角块结构”
的
第一章 线性规划
线性规划模型分解算法的分析
此时对应于前面”主规划”(LP3)的子规划(LP4)具有以下形式:
Min (CiT ... C Tp ) 1 A1 , Ap X
Min (C 1 A1 ) X
T
B1 X 1
...
...
...
Bp X p
X 0
A2 X b2
X 0
b1
...
...
bp
.
1 是总公司给定的“政策因子”;
1 Ai 是税收因子(即总公司强迫
你修改目标函数)
济南大学管理学院
20
大系统算法-D-W分解
分解原理及算法对于“对角块结构”
的
第一章 线性规划
线性规划模型分解算法的分析
可分解为 p 个子问题:
Min (CiT 1 Ai ) X i
Bi X i bi
Xi 0
i 1, p.
得到第i个子问题的最优解
……
济南大学管理学院
21
大系统算法-D-W分解
分解原理及算法对于“对角块结构”
的
第一章 线性规划
线性规划模型分解算法的分析
X s
1
X s
s
2
从而得到① X ...
X ps
和
p
s
s
② Ps A1X Ai X i
1 1 i 1
1
s f s 1 Ps 0 C T X s 1 A1 X s 0
p
以及
③
Ci X i
T
i 1
p
S
1 Ai X iS 0
i 1
p
p
i 1
i 1
(CiT 1 Ai ) X iS 0 Z i* 0
判断 s是否 0
济南大学管理学院
22
大系统算法-D-W分解
分解原理及算法对于“对角块结构”
的
第一章 线性规划
线性规划模型分解算法的分析
判断 s是否 0
j
*
*
0
当 s
时,得到原规划最优解 X j X
(其中 *j
为主规划的最优解,
当 s 0 时, 生成列
X
j
为对应的极点)
p
s
Ps
Ai X i
1
i 1
1
p
和
T
S
T
S
fs C X
Ci X i
i 1
加入“主规划”
,继续求解。
济南大学管理学院
23
第一章 线性规划
大系统算法-D-W分解
作
业
请写出“对角块结构”的线性规划模型的
Dantzig-Wolfe分解算法和流程图。
济南大学管理学院
24
例题:
第一章 线性规划
大系统算法-D-W分解
对于(LP1)形式(非对角块结构)分解算法的例题.(1963 年提出)
Min3 X11 6 X 21 6 X 31 5 X 41 8 X12 X 22 3 X 32 6 X 42
X
11
X 11
X
ij
X 21
2 X 31
X 31
2 X 22
X 41
X 12
X 12
X 22
X 21
X 42
X 22
X 31
X 32
0
X 32
X 41
,
i 1,2,3,4
X 42
9
9
8
2
7
3
5
j 1,2
济南大学管理学院
25
第一章 线性规划
大系统算法-D-W分解
例题解答:
约束记为矩阵形式:
A1 X b1
A2 X b2
① 选 S2 {X
2 X 31 2 X 22 9
其余等式约束
A2 X b2 , X 0} 的极点
济南大学管理学院
2
2
0
7
2
0
5
0
1
2
X X
0 ,
0
7
0
1
3
0
5
26
第一章 线性规划
大系统算法-D-W分解
②所以
CT X 1
CT X 2
A1 X 1
A1 X 2
f1
87 f 2
18 P1
0 P2
53
构造(LP3)”受限主规划"
Min531 872
2
目标等值线段
181 9
1 2 1
,
1 2
最优解 1* *2 1/ 2
1
0
18 0 1
, f B (53,87)
, B 18
最优基 B
1
1 1
1
18
济南大学管理学院
1
27
第一章 线性规划
1
0
( 17 ,87) (1, 0 )
③所以单纯乘子 f B B 1 (53,87) 18
1
9
1
18
④解子规划(LP4):
34
34
1 A1 1(0,0,2,0,0,2,0,0) (0,0, ,0,0, ,0,0)
9
9
C T 1 A1 (3,6,6,5,8,1,3,6) 1 A1
34
34
(3,6,6
,5,8,1
,3,6)
9
9
34
34
得到Min(3 X11 6 X 21 (6 ) X 31 5 X 41 8 X12 (1 ) X 22 3 X 32 6 X 42
9
9
大系统算法-D-W分解
9
X11 X 21 X 31 X 41
X 21 X 22 X 32 X 42 8
X11
X 21
2
X 21
X 22
7
X 31
X 32
3
X 41
X 42 5
,
i
1,4
,
j 1
,
2
X ij 0
济南大学管理学院
28
第一章 线性规划
大系统算法-D-W分解
重新抄写一遍上面得到的规划:
34
34
Min(3 X11 6 X 21 (6 ) X 31 5 X 41 8 X12 (1 ) X 22 3 X 32 6 X 42
9
9
9
X11 X 21 X 31 X 41
X 21 X 22 X 32 X 42 8
X11
X 21
2
X 21
X 22
7
X 31
X 32
3
X 41
X 42 5
,
i
1,4
,
j
1
,
2
X ij 0
得到最优解:
X S (2,2,0,5,0,5,3,0)T
PS A1 X S 10
f S C T X S 57
济南大学管理学院
比较 s 是否大于0
29
第一章 线性规划
大系统算法-D-W分解
比较 s是否大于0
17
s f s 1Ps 0 57 ( ) 10 87 75.888... 87 0
9
Ps 10
所以将 和f s 57加入原主规划得到新的主规划
1 1
Min 531 872 573
181 103 9
1 2 3 1
j 0, j 1,2,3
济南大学管理学院
30
第一章 线性规划
大系统算法-D-W分解
求解得到的 Min531 872 573
9 1
9
新的主规划: 18 10 9
1
3
因为: Min{ , }
10 1 10
1 2 3 1
j 0, j 1,2,3
所以: 第一行的 1 出基=0
103 9
约束成为:
2 3 1
, 0
2 3
3
可行域为
黄色线段
2
1
济南大学管理学院
31
第一章 线性规划
大系统算法-D-W分解
0 10
最后得到新的 * 1 * 9 *
, , 0, (1, 0 ) (3,87), B
主规划的解: 2 10 3 10 1
1
1
可以证明(作业)
已得到最优解,因为满足 s
所以原规划的
最优解为:
2
2
7
2
0
0
1 0 9 5
*
X X 2 X 3 (2,2.5,0,4.5,0,4.5,3,0.5)T
10 0 10 0
0
5
3
3
5
0
例题解答完毕
0
济南大学管理学院
32
大系统算法-D-W分解
X1
练习 :
X2
X
Max(0,0,5,7,8,6) 3 C T X P
X4
X5
X
6
X1 20
0 0 4 2 1 2
X 2 20
6 2 3 0 0 0
X
3 12
2 3 0 0 0 0 X
0 0 0 8 4 7 4
X 5 32
0 0 0 2 3 4 X 20
6
济南大学管理学院
第一章 线性规划
用Dantzig-Wolfe
分解算法
求解。
33
以下是对例题用软件包计算的结果
大系统算法-D-W分解
LINEAR PROGRAMMING PROBLEM
3X1+ 6X2+ 5X4+ 8X5+ X6+ 3X7+ 6X8
S.T.
OPTIMAL SOLUTION
1)2X3+2X6<9
Objective Function Value =
2)X1+X2+X3+X4=9
Variable
Value
------------------------------------3)X5+X6+X7+X8=8
X1
2.000
4)X1+X5=2
X2
2.500
X3
0.000
5)X2+X6=7
X4
4.500
6)X3+X7=3
X5
0.000
X6
4.500
7)X4+X8=5
X7
3.000
X8
Constraint
-----------------1
2
3
4
5
6
7
0.500
Slack/Surplus
-------------------0.000
0.000
0.000
0.000
0.000
0.000
0.000
济南大学管理学院
第一章 线性规划
Reduced Costs
----------------------0.000
0.000
0.000
0.000
4.000
0.000
0.000
0.000
Dual Prices
----------------------3.000
0.000
-1.000
-3.000
-6.000
-2.000
-5.000
34
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
D-W分解方法具有很好的经济解释,下面以有
限资源分配问题来说明求解思路。
min z c1 x1 ... cl xl
A1 x1 ... Al xl b
D x
r1
1
1
s.t.
Dl xl rl
x1 ,..., xl 0
济南大学管理学院
35
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
设某一总公司下辖若干个有一定相对独立性的子生产系统。
总公司拥有数量有限的一些资源,其中第i种资源的总量为bi,
每个子系统可以安排若干种生产活动。
对子系统 i 来说,向量xi=(xi1,…,xini)T,表示一个生产方案,即安
排xik个单位的第k种生产活动(k=1,2,..,ni)。
子系统i进行每一个单位的第k种生产活动的有形生产成本为cik,
因此令向量ci=(ci1,…,cini),则cixi表示第i个子系统按生产xi工作的成
本。
矩阵Ai的第j行第k列的元素表示子系统i进行每单位的生产活动k
所耗用的各种资源的数量。
济南大学管理学院
36
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
作为整个系统,其目的是要利用这有限的资源进行生产,使总
的生产成本最小。但每个子系统还有各自的约束条件,把这些仅对
子系统起限制作用的约束表示为xi∈Xi。因此,对整个系统来说,
问题可表示为:
min z c1 x1 ... cl xl
A1 x1 ... Al xl b
s.t.
x1 X i i 1,2,...,l
济南大学管理学院
37
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
对于系统i来说,除了直接的或者说有形的生产费用cixi
外,由于耗用资源的量为Aixi,而这些资源的数量有限,
因而就影响到其他子系统对这些共享资源的使用,从而
可能迫使它们增加生产开支。这种间接但是重要的因素
在考虑生产成本时也必须计划在内。一个非常理想的工
具是影子价格。
济南大学管理学院
38
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
为简单起见,不妨设各集合Xi有界,这对实际问题来说
总是合理的。于是,在使用D-W方法时,主问题可以表为:
l
ti
min z ( ci y ij )ij
i 1 j 1
ti
l
ij
(
A
y
)ij b
i
i 1 j 1
ti
s.t.
ij 1 (i 1,2,...,l )
j 1
ij 0 (i 1,2,...,l ; j 1,2,...,ti )
济南大学管理学院
39
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
其对偶变量(w,v)的经济意义是影子价格。即当z关于
右端项可微(例如所有变量均取正值)时,则有:
z(b) wT
这说明当第i种资源的量从bi增至bi+△时,目标函数值
将增加wi △,或者大致地说资源i每增加一个单位时,可
使生产费用减少-wi,因此-wi就可以作为消耗每单位的第i
种资源的影子价格。
济南大学管理学院
40
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
这样,对子系统i的每一个生产方案xi来说,cixi为
直接(有形)生产成本,而-wAixi则表示由于耗用了
共享资源Aixi所需付出的间接(无形)费用。因此,
子系统i在生产方案xi下总的生产费用是:
(ci-wAi)xi
济南大学管理学院
41
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
设子系统i在当前主问题中的变量为λij1,…,λijs,则:
s
k 1
ijk
1
即子系统i原来的生产计划是生产方案yij1,…,yijs按权因子λij1,…,λijs
的混合。(顶点的凸组合)
与前面类似,当原来的这些生产方案的总份额从1增至1+ △时,子
问题的目标函数值将增加vi △,这里vi是对应于上面约束的对偶变量,
因此,若用生产方案xi完全取代原有的安排时,将使上式的右端减少
一个单位(到零),于是生产费用可减少vi。
济南大学管理学院
42
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
综上所述,当用生产方案xi代替原有安排时,对于子系统i来说,
考虑到直接成本与间接成本在内,净减少的生产费用是:
vi-(ci-wAi)xi=(wAi-ci)xi+vi
于是求解子问题:
max ( wAi ci ) xi vi
xi X i
来寻找本最为显著的生产方案。若这个最大值非正,就说
明对子系统i来说,在现有的影子价格下,已经不存在使生产
费用进一步下降的生产方案。若对所有的子系统i=1,2,…,l来说
都是如此,则计算便告结束。
济南大学管理学院
43
3 D-W分解的经济解释
大系统算法-D-W分解
第一章 线性规划
若某些子系统存在可以再降低成本的新方案,则将其提交给总
公司。很可能由于上次确定的影子价格不尽合理,致使一些子系统
提出的新方案集中使用了某些影子价格定得过低的资源,造成资源
供需的不平衡。
因此,总公司在收到来自子系统的生产方案后,将重新决定各
子系统的新、旧各种生产方案的比例,使得总的生产成本较前有所
下降,同时重新调整各种资源的影子价格(w,v),各子系统再求解子
问题,看是否还有改进的可能。这样循环反复,直至最后找到最优
生产方案为止。
济南大学管理学院
44
大系统算法-D-W分解
问题:
1.在Dantzig-Wolfe算法中
如何形成的”主导规划”
第一章 线性规划
Any Question??
3.为何要引出”受限主规
划”?
4.主规划是根据极点Xj形成
2. “主导规划”在算法中
的, Xj是否是可行解? 45
起的作用
济南大学管理学院
第一章 线性规划
大系统算法-D-W分解
Any Question??
问题:
5.Xs是”子规划”的最优解, Xs是否可行解?其作用是什么?
6. 最优解 X *
*j X j
X j 是最优解?
中的X j 和*j 如何得到?为什么说
济南大学管理学院
46
第一章 线性规划
大系统算法-D-W分解
Thank you!
济南大学管理学院
47