第二节Gomory割平面法

Download Report

Transcript 第二节Gomory割平面法

第二节 Gomory割平面法
§2.1 Gomory割平面法的基本思想
§2.2 Gomory割平面法计算步骤
精品课程《运筹学》
§2.1 Gomory割平面法的基本思想
考虑纯整数线性规划问题
(P )
cT x
Ax  b
min
s .t .
x0
x为整数向量
(P)的松弛问题
min cT x
( P0 ) s.t . Ax  b
x0
可行区域记为D
可行区域 D0
由有限个或可数的格点
多面凸集
构成的集合
精品课程《运筹学》
D和D0的关系
⑴. D  D0 ;
⑵.若( P0 ) 无可行解,则(P ) 无可行解;
⑶.( P0 ) 的最优值是(P ) 的最优值的一个下界;
⑷.若( P0 ) 的最优解x 0 是整数向量,则x 0 是( P )
的最优解.
精品课程《运筹学》
割平面法的基本思想
用单纯形法先解松弛问题( P0 ) ,若( P0 ) 的最优解
x 0 是整数向量,则x 0 是 ILP 问题(P ) 的最优解,
计算结束;
精品课程《运筹学》
费用减小方向
x0
若 x 0 的分量不全是整数,则对( P0 ) 增加一个割平
面条件,将( P0 ) 的可行区域D0 割掉一块,x 0 恰好
在被割掉的区域内,而原 ILP 问题的任何一个
可行解(格点)都没有被割去.
精品课程《运筹学》
x0
把增添了割平面条件的问题记为( P1 ) ,用对偶单纯形
1
x
(
P
)
(
P
)
法求解 LP 问题 1 .若 1 的最优解 是整数向量,
1
则 x 是原 ILP 问题( P ) 的最优解,计算结束;
x1
精品课程《运筹学》
否则对问题( P1 ) 在增加一个割平面条件,形成问
题( P2 ) ,…,如此继续下去,通过求解不断改进
的松弛 LP 问题,知道得到最优整数解为止.
x*
精品课程《运筹学》
生成割平面条件的代数方法(Gomory)
用单纯形方法解(P ) 的松弛问题( P0 )
B  ( AB1 ,, ABm )
最优基本可行解x 0
基变量的下标集合为 S
非基变量的下标集合为 S
最后一张单纯形表中问题( P0 ) 的典式为
z    j x j  z0
jS
xBr   aij x j  bi , i  1,, m
jS
令
xB0  z
精品课程《运筹学》
a0 j   j
xB1 ,, xBm
b0  z0
如果bi , i  0,1,, m ,全是整数,我们已经得到了
0
(P
)
x
ILP 问题
的最优解 .
否则至少有一个bl 不是整数(0  l  m ) ,设bl 所对
应的约束方程是
xBl   alj x j  bl
jS
alj  [alj ]  f ij , j  S
0  f lj  1, j  S
bl  [bl ]  f l
0  fl  1
精品课程《运筹学》
[alj ] x j   alj x j

jS
jS
xBl   [alj ] x j  bl
jS
相减 xBl  [alj ] x j  [bl ]
jS
(alj  [alj ]) x j  bl  [bl ]

jS
xBl   alj x j  bl
jS
alj  [alj ]  f ij , j  S
0  f lj  1, j  S
bl  [bl ]  f l
0  fl  1
精品课程《运筹学》
[alj ] x j   alj x j

jS
jS
xBl   [alj ] x j  bl
jS
相减 xBl  [alj ] x j  [bl ]
jS
(alj  [alj ]) x j  bl  [bl ]

jS
f lj x j 

js
Gomory割平面条件
割平面
  f lj x j  s   f l
js
精品课程《运筹学》
fl
定理 3.2.1
如 果 把 割 平 面   f lj x j  s   f l 加 到 松 弛 问
js
题 ( P0 ) 的最优单纯形表里,那么没有割掉原
ILP 的任何整数可行点,当bl 不是整数时,新
表里是一个原始基本不可行解和对偶可行解.
精品课程《运筹学》
证
由于割平面   f lj x j  s   f l 是由原 ILP 的
js
整数约束推出来的,所以它不会割掉整数可行解;
松弛变量 s 是新的基变量,并且它与原来的基变量
x B1 , , x Bm 一起构成了新松弛问题的基变量,当bl
不是整数时, f l  0 ,因此新松弛问题的基本解中
有 s   f l  0 ,因此它对应的是新松弛问题的原始
基本不可行解.由于表中第 0 行(检验数行)没有
改变,所以它仍保持对偶可行性.
精品课程《运筹学》
§2.2 Gomory割平面法计算步骤
第1步 用单纯形法解 ILP 问题(P ) 的松弛问题( P0 ) .
若 ( P0 ) 没有最优解,则计算停止, (P ) 也没有最优
0
0
0
解.若( P0 ) 有最优解 x ,假若x 是整数向量,则x 是
(P ) 的最优解,计算停止,输出x 0 ;否则转第 2 步.
第2步 求割平面方程
  f lj x j  s   f l
js
精品课程《运筹学》
第3步
将割平面方程   f lj x j  s   f l 加到第 1 步所得最优
js
单纯形表中,用对偶单纯形法求解这个新的松弛问题.
若其最优解为整数解,则它是问题( P ) 的最优解,计算
停止,输出这个最优解;否则将这个最优解重新记为
x 0 ,返回第 2 步.若对偶单纯形算法发现了对偶问题是
无界的,此时原 ILP 问题是不可行的,计算停止.
精品课程《运筹学》
例3.2.1 求解ILP问题
max
x2
s .t .
3 x1  2 x2  6
 3 x1  2 x2  0
x1 , x2  0, 整数
解
x2
max x2




3
这个问题及其松弛LP问
2




题的可行区域如图所示
1








1
2
3
0
精品课程《运筹学》
x1
增加松弛变量x3 和x4 ,得到了松弛 LP 问题的第
一张单纯形表
x1
x2
x3
x4
RHS
z
0
1
0
1
0
x3
3
2
1
0
6
x4
3
2
0
0
0
精品课程《运筹学》
经过两次旋转变换得到最优单纯形表为
 3
最优解为x   1, 
 2
x1
x2
x3
0
z
x1
x2
0
1
0
精品课程《运筹学》
T
3
最优值为z  
2
x4
RHS

0
1

4
1

4
3

2
0
1
6
1

6
1
1
1
4
1
4
3
2
1
1
1
x 3  x4 
4
4
2
x1
x2
x3
x4
RHS
z
0
1
0
1
0
x3
3
2
1
0
6
x3  6  3 x1  2 x2
x4
3
2
0
0
0
x4  3 x1  2 x2
x2
max x2




2












1
2
3
3
1
0
精品课程《运筹学》
x1
x2  1
1
1
1
x 3  x4 
4
4
2
经过两次旋转变换得到最优单纯形表为
3T
x  (1, )
2
x1
x2
0
z
x1
x2
0
1
0
精品课程《运筹学》
3
z 
2
x3
x4

x2  1
RHS
0
1

4
1

4
3

2
0
1
6
1

6
1
1
1
4
1
4
3
2
4
x2 
3
3
3
1
x 3  x4 
4
4
2
1
1
1
x 3  x4 
4
4
2
1
1
1
 x3  x4  s1  
4
4
2
x1
x2
z
0
0
x1
1
0
x2
0
1
s1
0
0
精品课程《运筹学》
x3
x4
1

4
1
6
1
4
1

4
1

4
1

6
1
4
1

4
s1
RHS
0
3

2
0
1
0
1
3
2
1

2
利用对偶单纯形算法解上表中的松弛问题( P1 ) ,得到
关于问题( P1 ) 的最优单纯形表为
z
x1
x2
x3
x4
s1
RHS
0
0
0
0
1
1
2
3
2
3
x1
1
0
0
1

3
x2
0
1
0
0
1
1
x3
0
0
1
1
4
2
精品课程《运筹学》
2 
x   ,1 
3 
T
1
z
2
2
2
x4  s1 
3
3
3
x1  x2
x1
x2
x3
x4
s1
RHS
0
0
0
0
1
1
2
3
2
3
x1
1
0
0
1

3
x2
0
1
0
0
1
1
x3
0
0
1
1
4
2
精品课程《运筹学》
2 T
x  ( ,1)
3
2
2
2
x4  s1 
3
3
3
1
x1  x2
x2




2












1
2
3
3
1
0
精品课程《运筹学》
max x2
x1
z
x1
x2
x3
x4
s1
s2
RHS
0
0
0
0
1
0
1
1
1
x1
1
0
0
0
1
1

2
x2
0
1
0
0
1
0
3
2
3

2
x3
0
0
1
0
5
x4
0
0
0
1
1
*
T
ILP
问题的最优解
x

(
1
,
1
)
精品课程《运筹学》
1
1