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)”受限主规划"
Min531  872
2
目标等值线段
181  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 531  872  573
181  103  9

1  2  3  1
j  0, j  1,2,3

济南大学管理学院
30
第一章 线性规划
大系统算法-D-W分解
求解得到的 Min531  872  573
9 1
9
新的主规划: 18  10  9
1
3
因为: Min{ , } 

10 1 10
1  2  3  1
j  0, j  1,2,3
所以: 第一行的 1 出基=0

103  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