§3.2 Gomory 割平面法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3.2 G o m o r y 割平面法
1、G o m o r y 割平面法的基本思想
⎪⎪⎩
⎪⎪
⎨⎧≥=为整数向量x x b
Ax t s x
c T 0..min (P ) ⎪⎩⎪⎨⎧≥=0..min x b Ax t s x c T (P 0)
称(P 0)为(P )的松弛问题。记(P )和(P 0)的可行区域分别为D 和D 0 , 则
(1)0D D ⊂;
(2)若(P 0)无可行解,则(P )无可行解; (3)(P 0)的最优值是(P )的最优值的一个下界;
(4)若(P 0)的最优解 0x 是整数向量,则 0x 是(P )的最优解。 基本思想:
(1)用单纯形法求解松弛问题(P 0),若(P 0)的最优解 0x 是整数向量,
则 0x 是(P )的最优解。计算结束。
(2) 若(P 0)的最优解 0x 不是整数向量,则对松弛问题(P 0)增加一个
线性约束条件(称它为割平面条件), 新增加的约束条件将(P 0)的行区域D 0割掉一块,且这个非整数向量 0x 恰在被割掉的区域内,而原问题(P )的任何一个可行解(格点)都没有被割去。记增加了割平面的问题为(P 1), 称(P 1)为(P 0)的改进的松弛问题。
(3)用对偶单纯形法求解(P 1),若(P 1)的最优解 1x 是整数向量,则 1x
是(P )的最优解。计算结束。否则转(2)
割平面的生成:
对给定的(P ), 用单纯形法求解它的松弛问题(P 0),得到(P 0)的最优基
本可行解 0x ,设它对应的基为 ),,(1m B B A A B Λ=, m B B x x ,,1Λ为 0x 的基变量,记基变量的下标集合为 S ,非基变量的下标集合为 S 。则松弛问题(P 0)的最优单纯形表为
∑∈=+S
j j j z x z 0ξ
m i b x a x S
j i j ij B i ,,1,Λ==+∑∈ (3.2.1)
为了使符号简便,令
000,,0z b a z x j j B ===ξ。如果
m i b i ,,1,0,Λ= 全
是整数,则 0x 是(P )的最优解。计算结束。否则至少有一个 l b 不是整数
)0(m l ≤≤,设 l b 所对应的约束方程为
,
∑∈=+S
j l j lj B b x a x l (3.2.2)
用 ][a 表示不超过实数 a 的最大整数,则
,][,
,
][l l l lj lj lj f b b S j f a a +=∈+= (3.2.3)
其中,lj f 是 lj a 的分数部分,有 S j f lj ∈<≤,10, l f 是 l b 的分数部分,
有 .10<≤l f
由于在(3.2.2)中的变量是非负的,因此有
∑∑∈∈≤S
j j lj
S
j j
lj
x
a x a ][ (3.2.4)
所以由(3.2.2)得
,
][∑∈≤+S
j l j lj B b x a x l (3.2.5)
因为在ILP 中 x 限制为整数向量,故(3.2.5)的左端为整数,所以右端用 l b 的整数部分去代替后,(3.2.5)式的不等式关系仍成立,即
],
[][∑∈≤+S
j l j lj B b x a x l (3.2.6)
用(3.2.2) 减(3.2.6)得
]),[(])[(∑∈-≥-S
j l l j lj lj
b b x a a
(3.2.7)
由(3.2.2),可得线性约束
,
∑∈≥S
j l j lj
f x f
(3.2.8)
称它为对应于生成行 l 的 Gomory 割平面条件。
为了将(3.2.8)加到松弛问题(P 0)的最优单纯形表,应将它变为等式,所以引入一个剩余变量 s ,从而 (3.2.8)变为
,
∑∈=-S j l j lj
f s x f
在两端同乘以 (-1),得
,
∑∈-=+-S
j l j lj f s x f (3.2.9)
(3.2.9)是一个超平面,称它为割平面。
把割平面(3.2.9)加到松弛问题(P 0)的最优单纯形表的最后一行,可得改进的松弛问题(P 1)的单纯形表
∑∈=+S
j j j z x z 0ξ
m i b x a x S
j i j
ij B i ,,1,Λ==+∑∈
,
∑∈-=+-S
j l j lj f s x f
(P 1)的变量个数为 1+n ,等式约束为 1+m ,它的基变量个数为 1+m 。显然,s x x m B B ,,,1Λ是(P 1)的基变量。所以,对(P 1),获得了一个基本解,并且它的检验数向量 0)0,,,(1≤=T n ξξξΛ。所以可用对偶单纯形方法求解改进的松弛问题(P 1)。
定理 3.2.1 如果把割平面(3.2.9)加到松弛问题(P 0)的最优单纯形表里,那么没有割掉原ILP 的任何整数可行点,当 l b 不是整数时,新表里是一个原始基本不可行解和对偶可行解。
证:ILP 的任何整数可行点都一定满足(3.2.2)和(3.2.6),所以满足(3.2.8)
和(3.2.9),因此不会被割平面(3.2.9)割掉。
注:松弛问题(P 0)的非整数最优解 0x 被割平面(3.2.9)割掉了。因为
S j x b x j l B l
∈==,0,0
所以,
,00
∑∈<=S
j l j lj f x f
所以 0x 不满足(3.2.8),即不满足(3.2.9)。
2、G o m o r y 割平面的计算步骤
第1步 用单纯形法求解(P )的松弛问题(P 0)。若(P 0)没有最优解,则停止计算,(P )也没有最优解; 若(P 0)的最优解 0x 是整数向量,则 0x 是(P )的最优解。计算结束。否则,转第2步。
第2步 求割平面
任选 0x 的一个非整数分量 )0(m l b l ≤≤,由 l b 所在的这一行
,
∑∈=+S
j l j lj B b x a x l
得到Gomory 割平面条件 ,
∑∈≥S j l j lj
f x f
再得到割平面
,
∑∈-=+-S
j l j lj f s x f (3.2.10)
第3步 将割平面(3.2.10)加到第1步所得的最优单纯形表里,用对偶单纯形方法求解这个改进的松弛问题。若其最优解是整数向量,则它是原问题(P )的最优解,计算结束。否则,将这个最优解重新记为 0x ,返回第2步。