割平面法
割平面法

31/7=4+3/7 于是,(1)式变为
4 1 3 x4 ( 1 ) x3 (3 ) x5 4 7 7 7
⑵
将所有整数项放在等式的左边,非整数值项放 在右边,得
3 4 1 x4 x3 3x5 4 x3 x5 7 7 7
⑶
⑶式左边是一个整数值,右边是一个小于1的 数。由于是等式,所以,右边应该是一个小于 或等于0的整数值,即
二、构造割平面约束的方法
在松弛问题的最优表中,设 b的分量bko不是 整数,将其分成整数与非负分数之和,即
bko Nko fko, 其中N ko为不超过bko的最大整数, fko为非负真分数; bko 所在行中的每一个非基 变量xj的系数分成整数与非负分数两部分:
ako , j Nko , j fko , j
1、求出松弛问题的最优解,若全部变量为整数解, 停止计算;否则转2。
2、构造割平面方程 •构造方法 割平面约束具备两个性质: ⑴ 已获得的非整数最优解不满足该线性约束, 从而保证在以后的解中不可能再出现。
⑵ 所有的整数解皆满足该线性约束,从而保 证整数规划问题的最优解始终都保留在每次所 形成的、新的线性规划问题的可行域中。 我们通过下面的例子来说明构造这种线性约束 的思路。
第二节 解纯整数规划的割平面法
一、 割平面方法的基本思想和步骤
二、构造割平面约束的方法
三、示例
一、 割平面方法的基本思想和步骤
•基本思想: 在IP问题的松弛问题中依次引进线性约束(称 Gomory约束或割平面),使问题的可行域逐步缩 小,所割去的区域仅包含问题的部分非整数解;当 规划问题的最优解恰好位于缩小的可行域的一个顶 点时,算法结束。 •求解步骤
割平面法-经典

割平面法的基础仍然是用解LP的方法去解整数规划问题. 其基本的步骤是: (1) 把约束条件中所有的系数整数化; (2) 不考虑决策变量的整数约束条件, 增加线性约束条件 (cutting plane), 使得原可行域中切割掉一部分,这部分只 包含非整数部分,但没有切割掉任何整数可行解;
1 3 x3 x4 0 4 4 4 3 即 3x 3 x 4 3
上式就是所要求的一个切割方程(割平面).
引入松驰变量x5, 从而可得到一等式约束条件,将所得等
式约束加入到原标准化的松驰问题之中, 得到如下新的 松驰问题.
max s .t . z x1 x 2 x1 x 2 x 3 3x 1 x 2 x4 1 4
k k
(3) 由变量(包括松驰变量)的非负整数条件, 从而可得
f i - f ik x k 0
k
上式即为所要求的切割方程 割平面法是Gomory在1958年提出的, 当时引起了人们广 泛注意, 但至今完全用它解决实际问题仍是少数, 因为其 收敛性很慢. 但若下其它方法(如分枝定界法)配合使用,
3x 3 x 4 x 5 3 x1 , x 2 , x 3 , x4 , x5 0
将所得等式约束加入到原标准化的松驰问题的最优单纯
形表之中,得 cj 1 1 0 0 0
CB
1
XB
b
x1
1
x2
0
x3
-1/4
x4 x5
1/4 0
x1 3/4
1
0
x2 7/4
x5 -3
0
0 0
1
0 0
(3) 求解上面的LP问题,若所得的最优解为整数, 则该解也
运筹学__割平面法

x1
1 0 0 0 x1 1 0 0 0
x2
0 1 0 0 x2 0 1 0 0
x3
1/6 1/4 -1/4 -1/4 x3 0 0 1 0
x4
-1/6 1/4 -1/4 -1/4 x4 -1/3 0 1 0
s1
0 0 1 0 s1 2/3 1 -4 -1
CB
0 1 0
XB
x1 x2 x3
b
2/3 1 2
1 1 1 ( x 3 x4 ) 0 2 4 4
1 1 1 x3 x4 s1 4 4 2
Cj CB 0 1 0 σj XB x1 x2 s1 b 1 3/2 -1/2 -3/2 0 x1 1 0 0 0 1 x2 0 1 0 0 0 x3 1/6 1/4 -1/4 -1/4 0 x4 -1/6 1/4 -1/4 -1/4 0 s1 0 0 1 0
CB
0 1 0
XB
x1 x2 x3
b
2/3 1 2
x1
1 0 0
x2
0 1 0
x3
0 0 1
x4
-1/3 0 1
s1
2/3 1 -4
σj
-1
0
0
0
0
-1
CB 0
XB x1
b 2/3
x1 1
x2 0
x3 0
x4 -1/3
s1 2/3
1
0
x2
x3
1
2
0
0
1
0
0
1
0
1
1
-4
σj -1 0 0 0 0 -1 此时,X1 =(2/3, 1), Z=1,仍不是整数解。继续以x1为源行生成割 2 2 2 平面,其条件为:
5-2割平面法

1 x2 1 0 1 0 0 1/4
0 x3 1 0 0 1 -1 -1/3
-2 0 0 0 -1/3 -1/6
3 割平面法小结
1)令xi是线性规划最优解中为分数值的一个基变量
xi aik xk bi
k
2)将bi和a ik都分解成整数部分N和非负真分数f之和
bi Ni fi , 其中0<fi 1 aik Nik fik , 其中0 fik 1
筹
学
0
x1
图2 1
2 割平面法算例
例1 求解
m a x z x1 x 2
x1 x 2 1
3
x1 x1
,x
x
2
2
0
4
x 1 , x 2 整 数
最优解为:x1
3 4
,
x2
7 4
, max
z
10 4
表1
CB
初始计算 0
表
0
最终计算 1
表
Cj
1
XB b x1
x3 1 -1
x4 4 3
西安邮电大学 现代邮政学院
Xi'an post and telecommunications university modern post College
第五章 割平面法
主讲教师 武小平
主要内容
1 割平面法及其原理
2 割平面法算例
运
筹
3 割平面法小结
学
1 割平面法及其原理
割平面法添加能割去非整数解的线性约束条件,使
01
x1 3/4 1 x2 7/4 0
-5/2 0
100 x2 x3 x4 110 101 100 0 -1/4 1/4 1 3/4 1/4 1 -1/2 -1/2
割平面法

§3割平面法割平面法也是求解整数规划问题常用方法之一。
3.1基本思路用割平面法求解整数规划的基本思路是:先不考虑整数约束条件,求松弛问题的最优解,如果获得整数最优解,即为所求,运算停止。
如果所得到最优解不满足整数约束条件,则在此非整数解的基础上增加新的约束条件重新求解。
这个新增加的约束条件的作用就是去切割相应松弛问题的可行域,即割去松弛问题的部分非整数解(包括原已得到的非整数最优解)。
而把所有的整数解都保留下来,故称新增加的约束条件为割平面。
当经过多次切割后,就会使被切割后保留下来的可行域上有一个坐标均为整数的顶点,它恰好就是所求问题的整数最优解。
即切割后所对应的松弛问题,与原整数规划问题具有相同的最优解。
下面以全整数规划问题的割平面法为例,介绍割平面的求解过程。
3.2求解步骤与举例割平面法的具体求解步骤如下:1.对于所求的整数规划问题(4.2),先不考虑整数约束条件,求解相应的松弛问题(4.6)2.如果该问题无可行解或已取得整数最优解,则运算停止;前者表示原问题也无可行解,后者表示已求得整数最优解。
如果有一个或更多个变量取值不满足整数条件,则选择某个变量建立割平面。
3.增加为割平面的新约束条件,用前面介绍的灵敏分析的方法继续求解,返回1。
下面介绍割平面的建立方法及其求解过程。
例1 求解下列整数规划问题(4.7)解引入松弛变量,写成标准形式:(4.8)对上述模型不考虑整数条件,用单纯形法求解相应松弛问题的最终单纯形表为(表4-2)表4-215/38/3-13/3显然,为非整数解。
为求得整数解,我们想办法在原约束条件的基础下引入一个新的约束条件,以保证一个或几个变量取值为整数。
为此,在表4-2中任选一个取值非整数的变量,如,写出用基变量表示基变量的表达式:(4.9)将上式的所有变量的系数及右端常数均改写成一个整数与一个非负真分数之和的形式。
据此,(4.9)式可以改写成若将带有整数系数的变量整数项留在方程的左边,其余移到方程的右边,则有, (4.10) 由于要求变量取值为正整数,方程(4.10)的左边必为整数。
7.4 切割平面法

x2
x2
O (a)
x1
O
x1
(b)
7
OR:SM
五、割平面法求解举例
例:某厂拟购进甲、乙两类机床生产新产品。已知甲、乙机床进价分别为 2万元和3万元;安装占地面积分别为4m2和2m2;投产后的收益分别为3百元 /日和2百元/日。厂方仅有资金14万元,安装面积18m2。为使收益最大,厂 方应购进甲、乙机床各多少台?
将(5)式标准化:
1 2
x5
x6
1 2
加到前面单纯形表最终表中,有:
XB
x1
x2
x3
x4
x5
x6
x2
0
1
0
-1
1
0
x1
1
0
0
1
-1/2
0
x3
0
0
1
1
-2
0
x6
0
0
0
0
-1/2
1
Z
0
0
0
-1
-1/2
0
用对偶
x2
0
1
0
-1
ቤተ መጻሕፍቲ ባይዱ
0
2
单纯形
x1
1
0
0
1
0
-1
法求解, 得:
x3 x5
0 0
0 0
1 0
1 0
0 1
(5)式用决策变量表达的割平面方程为 6x1 5x2 29 6
x2
图示切 割过程
15
6x1+5x2=31
6
4x1+2x2=18
5
4
第三节 割平面法

割平面法的基本思想是:首先不考虑 整数条件,增加另外的约束条件,把原来 的可行域切掉一部分,被切掉的部分不包 含任何整数可行解. 经过有限次的切割, 最终得到某个顶点的坐标恰好是整数,并
且是问题的最优解.
例如 求解整数规划问题
max Z x1 x2 x1 x2 1 3 x1 x2 4 x1 , x2 0 x , x 为整数 1 2
32 7 3 11 7
1 0 0
0 1 0
0 0 1
17 0 17
-1 7 1 -22 7
表3-4
S
-59 0 0 0 -1 -8
x1 x2 x3
fi 0
32 7 3 11 7
1 0 0
0 1 0
0 0 1
17 0 17
-1 7 1 -22 7
以 x1 为来源行得割平面不等式:
j m 1
x2
割平面
1
C (1, 1)
3 7 x1 , x2 = 4 4 max Z 10 4
1
x1
回到一般问题上:
整数规划(A)
max S c j x j a
j 1 n ij n
松弛问题(B)
max S c j x j a
j 1 n j 1 ij n
加入松弛变量 y1 ,得割平面方程
7 22 x3 1 22 x4 y1 1 2
将割平面方程表达的约束条件加到单纯形表 的最后一行,并把松弛变量补到最后一列
表3-3
S
-63 92 72 1 2 0 1 0 0 0 0 1 0 - 28 11 -1 22 7 22 -7 22 -15 11 3 22 1 22 -1 22 0 0 0 1
割平面算法

割平面算法
割平面算法是一种计算几何的算法,主要用于求解多边形的内部或外部区域。
该算法的基本思想是通过构造一些直线(称为割平面)将多边形划分成一些简单的区域(称为小区域),然后根据小区域的情况确定多边形的内部或外部区域。
具体而言,该算法的步骤如下:首先确定一个多边形和一些割平面,然后将多边形和割平面进行求交,得到一些线段和点。
接着,根据这些线段和点将多边形划分成一些小区域,再根据每个小区域的情况判断其是否在多边形的内部或外部。
最后将所有在多边形内部的小区域合并在一起,就得到了多边形的内部区域。
割平面算法的优点是可以处理一些复杂的多边形,而且算法复杂度比较低。
不过该算法也存在一些缺点,比如对于一些具有孔洞的多边形,需要额外的处理,并且对于一些不规则的多边形,该算法的结果可能不准确。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精品课程《运筹学》
[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
Gomory割平面条件
flj x j fl
第二节 Gomory割平面法
§2.1 Gomory割平面法的基本思想 §2.2 Gomory割平面法计算步骤
精品课程《运筹学》
§2.1 Gomory割平面法的基本思想
考虑纯整数线性规划问题
min
cT x
s.t . (P)
Ax b x0
x为整数向量
(P)的松弛问题
min cT x (P0 ) s.t. Ax b
2 3
x4
2 3
s1
2 3
x1 x2
x2
max x2
3• • • •
2• • • •
1• • • •
• • • • x1
0
1 23
精品课程《运筹学》
x1 x2 x3 x4 s1
s2 RHS
z 0 0 0 0 1 0 1
x1 1
0
0
0
1 1 2
1
x2 0 1 0 0 1 0
1
x3
0
0
1
x4 RHS
z 0 0 1 1 3
44
2
x1 1 0
1 1
6
6
1
x2 0 1
1 4
1 4
3 2
1 4
x3
1 4
x4
1 2
精品课程《运筹学》
x1 x2 x3 x4 RHS
z 0 101 0
x3 3 2 1 0 x4 3 2 0 0
6 x3 6 3 x1 2 x2 0 x4 3x1 2x2
flj x j s fl
js
精品课程《运筹学》
第3步
将割平面方程 flj x j s fl 加到第 1 步所得最优
js
单纯形表中,用对偶单纯形法求解这个新的松弛问题. 若其最优解为整数解,则它是问题( P ) 的最优解,计算 停止,输出这个最优解;否则将这个最优解重新记为 x0 ,返回第 2 步.若对偶单纯形算法发现了对偶问题是 无界的,此时原 ILP 问题是不可行的,计算停止.
的最优解.
精品课程《运筹学》
割平面法的基本思想 用单纯形法先解松弛问题(P0 ) ,若(P0 ) 的最优解 x0是整数向量,则x0 是 ILP 问题(P) 的最优解, 计算结束; 费用减小方向
x0
精品课程《运筹学》
若 x0 的分量不全是整数,则对( P0 ) 增加一个割平 面条件,将( P0 ) 的可行区域D0 割掉一块,x0 恰好 在被割掉的区域内,而原 ILP 问题的任何一个 可行解(格点)都没有被割去.
xBl alj x j bl
jS
alj [alj ] fij , j S 0 flj 1, j S
bl [bl ] fl
0 fl 1
精品课程《运筹学》
[alj ]x j alj x j
jS
jS
相减
xBl [alj ]x j bl
精品课程《运筹学》
例3.2.1 求解ILP问题
max
x2
s.t. 3 x1 2 x2 6
3 x1 2 x2 0
x1, x2 0,整数
解
这个问题及其松弛LP问
题的可行区域如图所示
精品课程《运筹学》
x2
max x2
3• • • •
2• • • •
1• • • •
• • • • x1
0 5
3 2
1
x4 0
0
0
1
1 3 2
1
精品课程IL《P运问筹题学》的最优解x* (1,1)T
1 4
10 4
3 2
11
1
s1
0
0 1 44
2
精品课程《运筹学》
利用对偶单纯形算法解上表中的松弛问题( P1 ) ,得到 关于问题( P1 )的最优单纯形表为
x1 x2 x3 x4 s1 RHS
z 0 0 0 0 1 1
x1
1
0
0 1 3
2 3
2 3
x2 0 1 0 0 1
1
x3 0 0 1 1 4 2
js
割平面
flj x j s fl
js
精品课程《运筹学》
定理 3.2.1
如 果 把 割 平 面 flj x j s fl 加 到 松 弛 问
js
题 ( P0 ) 的最优单纯形表里,那么没有割掉原 ILP 的任何整数可行点,当bl 不是整数时,新 表里是一个原始基本不可行解和对偶可行解.
x0
精品课程《运筹学》
把增添了割平面条件的问题记为(P1 ) ,用对偶单纯形 法求解 LP 问题( P1 ) .若( P1 ) 的最优解x1 是整数向量, 则 x1是原 ILP 问题(P )的最优解,计算结束;
x1
精品课程《运筹学》
否则对问题( P1 )在增加一个割平面条件,形成问 题(P2 ),…,如此继续下去,通过求解不断改进 的松弛 LP 问题,知道得到最优整数解为止.
x2
max x2
3• • • •
2• • • •
1• • • •
• • • • x1
0
1 23
精品课程《运筹学》
x2 1
1 4
x3
1 4
x4
1 2
经过两次旋转变换得到最优单纯形表为
x0 (1, 3)T 2
x1 x2
z00
z 3 2
x3
x4
1 1 44
RHS 3
2
x2 1
精品课程《运筹学》
证 由于割平面 flj x j s fl 是由原 ILP 的
js
整数约束推出来的,所以它不会割掉整数可行解; 松弛变量 s 是新的基变量,并且它与原来的基变量 xB1 , , xBm 一起构成了新松弛问题的基变量,当 bl 不是整数时, fl 0,因此新松弛问题的基本解中 有 s fl 0,因此它对应的是新松弛问题的原始 基本不可行解.由于表中第 0 行(检验数行)没有 改变,所以它仍保持对偶可行性.
x2
4 3
3 4
x3
3 4
x4
1 2
x1 1 0
1 1
6
6
1
x2 0 1
1 4
1 4
3 2
1 4
x3
1 4
x4
1 2
精品课程《运筹学》
1 4
x3
1 4
x4
s1
1 2
x1 x2 x3 x4 s1 RHS
z 0 0 1 1 0 3
44
2
x1 1
0
1 1 06Βιβλιοθήκη 61x2 0
1
精品课程《运筹学》
§2.2 Gomory割平面法计算步骤
第1步 用单纯形法解 ILP 问题(P)的松弛问题(P0 ). 若(P0 )没有最优解,则计算停止, (P) 也没有最优 解.若(P0 )有最优解 x0,假若x0是整数向量,则x0是 (P)的最优解,计算停止,输出x0;否则转第 2 步. 第2步 求割平面方程
x0
可行区域记为D 由有限个或可数的格点 构成的集合
可行区域 D0 多面凸集
精品课程《运筹学》
D和D0的关系 ⑴.D D0; ⑵.若(P0 )无可行解,则(P) 无可行解; ⑶.(P0 )的最优值是(P ) 的最优值的一个下界; ⑷.若( P0 ) 的最优解 x0是整数向量,则 x0是( P )
jS
xBl [alj ]x j [bl ]
jS
(alj [alj ])x j bl [bl ]
jS
xBl alj x j bl
jS
alj [alj ] fij , j S 0 flj 1, j S
bl [bl ] fl
0 fl 1
0
1 23
增加松弛变量x3 和x4 ,得到了松弛 LP 问题的第 一张单纯形表
x1 x2 x3 x4 RHS z 0 101 0
x3 3 2 1 0
6
x4 3 2 0 0
0
精品课程《运筹学》
经过两次旋转变换得到最优单纯形表为
最优解为x0
1,
3
T
2
x1 x2 x3
最优值为z 3 2
精品课程《运筹学》
x1
2
,1
T
3
2 3
x4
2 3
s1
2 3
x1 x2
x1 x2 x3 x4 s1 RHS
z 0 0 0 0 1 1
x1
1
0
0 1 3
2 3
2 3
x2 0 1 0 0 1
1
x3 0 0 1 1 4 2
精品课程《运筹学》
x1 (2 ,1)T 3
x*
精品课程《运筹学》
生成割平面条件的代数方法(Gomory)
用单纯形方法解(P) 的松弛问题(P0 ) 最优基本可行解x0 B ( AB1 , , ABm )