Upload
molly
View
221
Download
0
Embed Size (px)
DESCRIPTION
第 3 章 整数规划 (Integer Programming). 网 络 优 化. Network Optimization. 清华大学课号: 70420133 (研). 清华大学数学科学系 谢金星 办公室:理科楼 2206# (电话: 010-62787812 ) Email:[email protected] http://faculty.math.tsinghua.edu.cn/~jxie/courses/netopt. 整数规划问题 的例子. 例(续例 1.4 ) 指派问题 (Assignment Problem) - PowerPoint PPT Presentation
Citation preview
1
网 络 优 化 Network
Optimization
清华大学数学科学系 谢金星办公室:理科楼 2206# (电话: 010-62787812 )Email:[email protected]
http://faculty.math.tsinghua.edu.cn/~jxie/courses/netopt
清华大学课号: 70420133 (研)第 3 章 整数规划 (Integer Programming)
2
整数规划问题的例子例(续例 1.4 ) 指派问题 (Assignment Problem)
一家公司经理准备安排 N 名员工去完成 N 项任务,每人一项 . 由于各员工的特点不同,不同的员工去完成同一项任务时所获得的回报是不同的 . 如何分配工作方案可以使总回报最大?
..
max1 1
ts
xwn
i
n
j ijij
}.1,0{
,,,2,1,1
,,,2,1,1
1
1
ij
n
j ij
n
i ij
x
nix
njx
许多网络优化问题也可以用整数规划 (IP) 来建模
线性整数规划 (LIP)非线性整数规划 (NIP)纯整数规划 (PIP)混合整数规划 (MIP)
特例: 0-1 规划
3
3.1.1 整数规划问题的几种描述形式 线性规划( LP: Linear Programming)问题的标准形式
纯整数线性规划 (PILP ,以后简称整数规划( IP ) ) 的标准形式
0)1.3(..
min
xbAxtsxcT
, A 是行满秩的,且 nmmn RARbRxc ,,, 0, bnm
Zxx
bAxtsxc
i
T
0
)2.3(..min
, A 是行满秩的,且 0, bnmnmmn ZAZbZxc ,,,
4
3.1.1 整数规划问题的几种描述形式 整数规划的一般形式
整数规划的规范形式 NjZx
NjZx
Mibxa
Mibxats
xc
j
j
iTi
iTi
T
,
,
)3.3(,
,..
min
Zxx
bAxtsxc
i
T
0
)4.3(..min
整数规划的上述三种形式是等价的:一种形式下的实例,可以简单地等价变化为另一种形式下的实例 .
5
3.2.2 整数规划问题的求解难度 整数规划问题是 NP 困难的 .
为什么不先求解相应的线性规划问题(一般称为整数规划问题的线性规划松弛问题,或简称 LP-Relaxation ),然后将得到的解四舍五入到最接近的整数?
IP 可行解对应于整点 A(2,2) 和 B(1,1), 而最优解为 A 点 . 但 LP 松弛的最优解为 C(3.5,2.5)
目标函数下降方向 x1
x2
C
AB
6
IP 的 LP 松弛的最优解什么时候一定是整数解呢?假设在( 3.1 )式所示的线性规划问题中等式约束个数等于决策变量个数 (m=n), 则此时的等式约束构成一个线性方程组 Ax=b.
如果方阵 A 为整数矩阵且 b 为整数向量 , 则 det(A) 和 det(Aj) 都是整数 . 当然,解 x 未必是整数向量 .
如果 det(A) = 1 或 -1, 则解 x 一定是整数向量 .
3.2 全么模阵
.,...,2,1,)det()det(
njAA
x jj
7
3.2 全么模阵
证明 ( 1 ) => ( 2 ): bB
BbBxadj
B )det()()( 0
010
( 2 ) => ( 3 ):设 B 为任一基矩阵,如果其逆矩阵不是整数矩阵,任取整数向量 y 使得 ,这里 ei 表示第 i 个分量为 1 其余分量为 0 的“单位向量” . 01 ieByz
令 ,则 b 为整数向量,且向量 为 D ( b )的一个极点的基向量,因此是整数向量 . ii eByeByBBzb )( 1
01 bBz
定理 3.1 设在( 3.1 )式所示的线性规划问题中 A 为整数矩阵,且 A 满行秩,则下面三个条件等价: ( 1 )对每个基矩阵 B ,其行列式 det ( B ) =1 或 -1. ( 2 )对任何整数向量 b ,其可行域 的每个极点都是整数向量 . ( 3 )对每个基矩阵 B ,其逆矩阵也是整数矩阵 .
0,|)( xbAxxbD
因此 为整数向量,即 是整数矩阵 . yzeB i 1 1B
(3)=>(1) :设 B 为任一基矩阵,由于 ,又知 B 和 都是整数矩阵,所以 det ( B ) =1 或 -1. IBB 1 1B
- Hoffman-Kruskal 定理( 1956 )
8
3.2 全么模阵定义 3.1 如果一个矩阵 A 的任何子方阵的行列式的值都等于 0 ,1 或 -1 ,则称 A 是全么模的( TU : Totally Unimodular ,又译为全单位模的),或称 A 是全么模矩阵 . 定理 3.2 (全么模矩阵的性质)下列命题等价:1) A 是全么模矩阵 . 2) -A 是全么模矩阵 . 3) AT 是全么模矩阵 . 4) ( A , A )是全么模矩阵 . 5) ( A , I ) ,( A , 0 )是全么模矩阵 .
– 定义
全么模矩阵的元素只能取 0 , 1 和 -1.
A为全么模矩阵时的整数规划问题实际上等价于对应的 LP松弛问题(单纯形算法) .
9
定理 3.3 设 A 是由 0 , 1 和 -1 组成的矩阵,如果下面两个条件同时成立,则A 为全么模矩阵 .
( 1 ) A 的每一列至多含有两个非零元素 .
( 2 ) A 的行可以分为 A1 , A2 两个集合,使得:如果 A 的一列中有两个符号不同的元素,则相应的两行在同一集合 A1 或 A2 中;如果 A 的一列中有两个符号相同的元素,则相应的两行分别位于两个集和 A1 和 A2 中 .
证明 如果矩阵 A 满足条件( 1 )和( 2 ),则 A 的任意子矩阵仍然满足条件( 1 )和( 2 ) . 所以,只需证明当 A为方阵且满足条件( 1 )和( 2 )时, det ( A ) = 0 , 1 或 -1 即可 . 下面用数学归纳法证明
3.2 全么模阵
A的某一列元素全为 0 ,则 det ( A ) =0.
当 A 为 1 阶方阵时,显然 =0 , 1 或 -1. 假设结论对任意( n-1 )阶方阵均成立,下面考虑 A为 n阶方阵的情形 . 有且只有以下三种可能: A的某一列元素只有一个不为 0 ,则 det ( A ) =0 , 1 或 -1.
A的每一列均含有两个非零元 , 则 det ( A ) =0.
.,,2,1,21
njaaAi
ijAi
ij
- 充分条件
10
3.2 全么模阵推论 ( 1 )一个有向图的关联矩阵为全么模矩阵 . ( 2 )一个无向图的关联矩阵为全么模矩阵,当且仅当该图为二部图 . 当采用整数规划来描述网络优化问题时,其约束矩阵一般是有向图的关联矩阵或它的简单变形,一般都是全么模矩阵 . 因此可以认为,许多网络优化问题都是一类特殊的整数规划,其 LP松弛与原问题有相同的最优解 . 网络优化处于线性规划和整数规划的结合点上,或者说处于连续优化和离散优化(组合优化)的结合点上 .
- 与网络优化的关系
11
Gomory ( 1958)
基本思想:如果给整数线性规划增加一个线性约束,而没有“割掉”其任何可行整数解,则新问题与原问题有相同的整数解 . 增加的相应约束通常被称为割平面( Cutting Plane ) .
对约束方程两边取“地板函数”(用 表示),即取小于或等于对应的实数值的最大整数值 . 由于 x 为非负整数,所以
3.3 分数割平面法 如果给线性规划增加一个约束,则原线性规划问题的可行域集合可能缩小 , 即可行域相当于被“割掉”了一块 .
首先用原始单纯形法求解整数线性规划( 3.2 )的 LP 松弛( 3.1 ),得到一个最优基本解 . 设它对应的基为 B ,且设对应的单纯形表中第 i 个方程 ( 第 i 行 ) 为: ( i=0,1,2,…,m)
记0)( ijijNBjiB yxyx
zxB )0(
0)( ijijNBjiB yxyx
12
令 则 ,,,2,1,0, miyyf ijijij
分数割平面法两式相减:
第 i 行的 Gomory割
0)( ijijNBjiB yxyx
0)( ijijNBjiB yxyx
00)( iiNBj jijij yyxyy
.0ijijNBj fxf
为了将它加入已经得到的单纯形表并仍然保持一个基本解 , 将它进一步变为 其中 s 为引进的新变量(非负) .
)10.3()( 0ijijNBj fsxf
引理 3.1 约束 (3.10)加入到 LP 松弛问题的最优表之后,没有割掉任何整数可行点;并且当 不是整数时,新表里是一个对偶基本可行解,但不是原始可行解 . 0iy
s与 B 一起构成新的基变量;基本解中 00 ifs
单纯形表第 0 行不变,所以基本解是对偶基本可行解 .
13
STEP0. 解 ILP 的 LP 松弛问题 . 如果松弛问题无解 , 则令 feasible=“no”;否则得松弛问题的最优解 , 令 feasible=“yes”, 继续 STEP1. STEP1. 如果 feasible=“no”, 则原问题无解 , 结束 ; 如果feasible=“yes” 且是整数解 , 则得到原问题的最优解 , 结束 ; 否则继续 STEP2. STEP2. 选取某行生成割平面;在单纯形表中加上生成的 Gomory割( 3.10 )和对应的基变量 s.
分数对偶算法算法 (Fractional Dual Algorithm,Gomory,1958)
STEP3. 应用对偶单纯形法求解新问题 . 如果对偶问题无解 , 令 feasible=“no”;否则设为新的当前最优解 . 转 STEP1.
14
例 3.1 用分数割平面法求解: 分数对偶算法算法 (Fractional Dual Algorithm,Gomory,1958)
Zxxxx
xxtsx
21
21
21
2
,023
623..max
将其 LP 松弛问题化为标准形: 0,,,
023623..
)min(max
4321
421
321
22
xxxxxxx
xxxtsxx
1x 2x 3x 4x
3x
b
-z = 0 0 -1 0 0
= 6 3 2 1 0
= 0 -3 2 0 14x
15
分数对偶算法算法 (Fractional Dual Algorithm,Gomory,1958)
1x 2x 3x 4x
3x
b
-z = 0 -3/2 0 0 1/2
= 6 6 0 1 -1
= 0 -3/2 1 0 1/22x
1x 2x 3x 4x
3x
b
-z = 0 0 -1 0 0
= 6 3 2 1 0
= 0 -3 2 0 14x
1x 2x 3x 4x b
-z = 3/2 0 0 1/4 1/4
= 1 1 0 1/6 -1/6
= 3/2 0 1 1/4 1/42x1x
21
441
341 xx
16
1x 2x 3x 4x b
-z= 1 0 0 0 0 1= 2/3 1 0 0 -1/3 2/3= 1 0 1 0 0 1= 2 0 0 1 1 -4
5x
2x1x
5x
分数对偶算法算法 (Fractional Dual Algorithm,Gomory,1958)1x 2x 3x 4x
b-z= 3/2 0 0 1/4 1/4 0= 1 1 0 1/6 -1/6 0= 3/2 0 1 1/4 1/4 0= -1/2 0 0 -1/4 -1/4 1
5x
2x
b-z= 3/2 0 0 1/4 1/4 0= 1 1 0 1/6 -1/6 0= 3/2 0 1 1/4 1/4 0= -1/2 0 0 -1/4 -1/4 1
1x
5x
32
532
432 xx
2x
b-z= 1 0 0 0 0 1 0= 2/3 1 0 0 -1/3 2/3 0= 1 0 1 0 0 1 0= 2 0 0 1 1 -4 0= -2/3 0 0 0 -2/3 -2/3 1
2x1x 4x 5x
3x6x
1x
6x3x
17
分数对偶算法算法 (Fractional Dual Algorithm,Gomory,1958)
2x
b-z= 1 0 0 0 0 1 0= 2/3 1 0 0 -1/3 2/3 0= 1 0 1 0 0 1 0= 2 0 0 1 1 -4 0= -2/3 0 0 0 -2/3 -2/3 1
2x1x 4x 5x
3x6x
1x
6x3x
2x
b-z= 1 0 0 0 0 1 0= 1 1 0 0 0 1 -1/2= 1 0 1 0 0 1 0= 1 0 0 1 0 -5 3/2= 1 0 0 0 1 1 -3/2
2x1x 4x 5x
3x
1x
6x3x
4x
得到最优解为( 1 , 1 ),是整数解 . 结束,原问题最优解为( 1 , 1 ),最大值为 1.
18
对分数割平面算法 ,我们作以下几点说明
(2) 可以看出 ,该算法在计算过程中不断增加割平面的个数 , 因此约束越来越多 . 为了防止割平面个数任意增加 , 一般可以作如下处理 :如果一个松弛变量应进入基 , 则将相应的行和列从单纯形表中去掉 , 即去掉了对应的割平面 . 因此 , 单纯形表中的约束行数不会多于变量个数 .
(1)该算法能否保证其有限性 , 即是否一定在有限步内停止 ?我们知道 , 线性规划的单纯形法可能出现循环 , 因此不一定在有限步内停止 . 所以 , 分数割平面算法也不一定在有限步内停止 . 但是 , 当在 ( 对偶 ) 单纯形法中采用字典序反循环法则时 , 可以证明分数割平面算法一定在有限步内停止 .
(3) 该算法在计算机上实现过程中会有一点麻烦 :由于存在误差 ,判定一个实数是否为整数是比较困难的 . 为了克服这一困难 , 人们提出了全整数算法 . (4) 分数对偶算法采用对偶单纯形法 , 在达到最优解之前得不到原问题的可行解 , 因此如果计算时间过长而不得不中间停机时 ,结果往往无法使用 .为了解决这一问题 , 人们提出了原始整数割平面算法 .
19
3.4 分枝定界法( Branch and Bound ) 基本思想:隐式地枚举一切可行解(组合优化)所谓分枝,就是逐次对解空间进行划分;而所谓定界,是指对于每个划分后的解空间(即每个分枝),要计算原问题的最优解的下界(对极小化问题) . 这些下界用来在求解过程中判定是否需要对目前的解空间(即分枝)进一步划分,也就是尽可能去掉一些明显的非最优点,从而避免完全枚举 . 定界方法中经常采用的有 Lagrange 松弛方法和线性规划松弛方法等 若在某一时刻,得到一个全整数解的费用为 zm ,则 zm 为原问题的一个上界 ;否则得该分枝的一个下界,继续分枝.
n
ii
T
Zx
xx
xbAxtsxc
1
0..
min
0 n
ii
T
Zx
xx
xbAxtsxc
0
0..
min
20
STEP4. 转 STEP1.
分枝定界算法 STEP0. 令 activeset={0}(原问题 );U = ∞; currentbest=0. STEP1. 如果 activeset=, 则已经得到原问题的最优解 , 结束 ; 否则从活跃分枝点集合 activeset 中选择一个分枝点 k;将 k从activeset 中去掉 , 继续 STEP2.
STEP2. 生成 k的各分枝 及其对应的下界 zi. kni ,,2,1
STEP3. 对分枝 : 如果分枝 i 得到的是全整数解且 zi<U, 则令 U=zi 且 currentbest=i;如果分枝 i 得到的不是全整数解且 <U, 则把 i加入 activeset 中 . kni ,,2,1
21
分枝定界算法 – 例例 3.2 用分枝定界法求解: ( P0 )
问题 (P3) 的 LP 松弛无可行解 .
Zxxx
xxxxtsxxz
21
21
2
211
21
21
21
21
,
22..
min
该问题的 LP 松弛解为 , 不是整数解 , 最优值为 z0=-4.(P1): (P0)加上 ; (P2): (P0)加上 .
Tx ),( 25
230
21 x
11 x
问题 (P1) 的 LP 松弛解为 , 不是整数解 , 最优值为 z1=-3.5(P3): (P1)加上 ; (P4): (P1)加上 .
Tx ),2( 231
22 x12 x
22
分枝定界算法 – 例
问题 (P5) 的 LP 松弛无可行解 .
问题 (P4) 的 LP 松弛解为 , 不是整数解 , 最优值为 z4=-3.25 (P5): (P4)加上 ; (P6): (P4)加上 .
Tx )1,( 494
31 x
21 x
问题 (P1) 的 LP 松弛解为 , 是整数解 , 最优值为 z6=-3. Tx )1,2(6
再看问 题 (P2). 问 题 (P2)的 LP 松弛解为 , 不是整数解 , 最优值为 z2=-2.5 > z6 , 因此没有必要继续从问题 (P2)进行分枝 .
Tx ),1( 232
P0
P1 P2
P3P4
P5 P6
21 x 11 x
22 x 12 x
31 x 21 x , Txx )1,2(6* 36
* zz
23
布 置 作 业目的 掌握整数规划的基本概念;
掌握全么模阵的基本概念和性质;掌握割平面法和分枝定界算法
内容 《网络优化》第 95-96页 3; 7; 10 ( 2 ); 9*(1) ( min改为 max, 此题选做)