第二节Gomory割平面法
Download
Report
Transcript 第二节Gomory割平面法
第二节 Gomory割平面法
§2.1 Gomory割平面法的基本思想
§2.2 Gomory割平面法计算步骤
精品课程《运筹学》
§2.1 Gomory割平面法的基本思想
考虑纯整数线性规划问题
(P )
cT x
Ax b
min
s .t .
x0
x为整数向量
(P)的松弛问题
min cT x
( P0 ) s.t . Ax b
x0
可行区域记为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
jS
xBr aij x j bi , i 1,, m
jS
令
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
jS
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
jS
jS
xBl [alj ] x j bl
jS
相减 xBl [alj ] x j [bl ]
jS
(alj [alj ]) x j bl [bl ]
jS
xBl alj x j bl
jS
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
jS
jS
xBl [alj ] x j bl
jS
相减 xBl [alj ] x j [bl ]
jS
(alj [alj ]) x j bl [bl ]
jS
f lj x j
js
Gomory割平面条件
割平面
f lj x j s f l
js
精品课程《运筹学》
fl
定理 3.2.1
如 果 把 割 平 面 f lj x j s f l 加 到 松 弛 问
js
题 ( P0 ) 的最优单纯形表里,那么没有割掉原
ILP 的任何整数可行点,当bl 不是整数时,新
表里是一个原始基本不可行解和对偶可行解.
精品课程《运筹学》
证
由于割平面 f lj x j s f l 是由原 ILP 的
js
整数约束推出来的,所以它不会割掉整数可行解;
松弛变量 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
js
精品课程《运筹学》
第3步
将割平面方程 f lj x j s f l 加到第 1 步所得最优
js
单纯形表中,用对偶单纯形法求解这个新的松弛问题.
若其最优解为整数解,则它是问题( 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