管理运筹学教案整数规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
割平面法是1958年美国学者R. E. Gomory提出的。 基本思想是:先不考虑变量的取整数约束,求解相应的线性规 划,然后不断增加线性约束条件(即割平面),将原可行域割掉不 含整数可行解的一部分,最终得到一个具有整数坐标顶点的可行域, 而该顶点恰好是原整数规划问题的最优解。 例5-3:求解
max Z = 8 x 1 + 5 x 2 2 x 1 + 3 x 2 ≤ 12 2 x − x ≤ 6 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
0 x5 0 0 1 0
cj CB 4 6 0 XB X2 X1 X4 b 9 /4 2 3 /4
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1 /4 0 -1 /4 -1
0 x4 0 0 1 0
0 x5 -1 /2 1 -3 /2 -4
Z=21
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 14
2011-3-11
LP-2: x1=5, x2=1.57, Z2=341 管理运筹学课程组 ftp://211.71.69.239
7
没有得到全部决策变量均是整数的解。再次定出上下界 0 ≤Z* ≤ 349 • 继续对问题LP-1,LP-2进行分枝。先对目标函数值大的进行分枝, 即分别将 x2≤[2.1]=2, x2≥[2.1]+1=3 加入到约束条件中去, 得子问题LP-3, LP-4, 分别求解得 LP-3: x1=4, x2=2, Z3=340 ( 是整数解,定下界)
s .t
x1=5/3 LP: x2=8/3 Z=44/3
LP-1: x1=1 x1 ≤1 x2=16/5 剪掉 Z=68/5 LP-2: x1=2 x1≥2 x2=2 Z=14
管理运筹学课程组 ftp://211.71.69.239 17
2011-3-11
割平面解法(Cutting Plane Approach) 第三节 割平面解法
x2
x2
2x1+x2=7 z=6x1+4x2=23
2x1+4x2=13 x1
x1
最优解为 x1 = 2.5, x2 = 2, zc = 23
可行解
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
3
整数规划的所有可行解包含在线性规划松弛问题的可行域内。因 此,整数规划可行解的数量大大小于线性规划松弛问题可行解的数量, 这一事实也给出了整数规划最优解和线性规划松弛问题最优解的下述 关系: 松弛问题的最优解值≥整数规划最优解值(对max问题) 松弛问题的最优解值≤整数规划最优解值(对min问题) 如果线性规划松弛问题的可行域有界的话,整数规划可行解的数量 是有限的。理论上讲,这样的整数规划问题可以通过计算和比较所 有整数点的目标函数值来求解,这种方法称为穷举法。 缺点:穷举法的计算量很大 无法用来求解实际问题
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
1
解:设x1,x2分别表示两种A、B两种机器的购置台数,根据实际 机器台数应为整数,故该问题的优化模型为
max z = 6 x1 + 4 x2 2 x1 + 4 x2 ≤ 13 s.t.2 x1 + x2 ≤ 7 x , x ≥ 0且为整数 1 2
2011-3-11
LP-6: 无可行解(剪掉)
管理运筹学课程组 ftp://211.71.69.239
8
于是得到原整数规划问题的最优解为 LP: x1=4, x2=2, Z3=340 整个过程如下: LP-3: x1=4 x1 ≤4 x2=2 x2 ≤2 Z=340 LP-4: x1=1.42 x1 ≤4 x2=3 剪掉 x2 ≥ 3 Z=327 LP-5: x1=5.44 x1≥5 x2=1 x2 ≤1 Z=308 剪掉
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
10
三、算法需要注意的几点(以极大化问题为例)
1 在计算过程中,若已得到一个整数可行解x(0),其相 应的目标函数值为Z0,那么在计算其它分枝过程中,如果 解某一线性规划所得的目标函数值Z<Z0,即可停止计算。 因为进一步的分枝结果的最优值只能比Z更差。 2 若有若干个待求解的分枝,先选哪一个待求解的分 枝呢?选取目标函数值最大的那一枝。
第一节 问题的提出 例5-1:某工厂有资金13万元用于购置新机器,可 5-1 13 在两种机器中任意选购。已知机器A每台购置费2万元, B为4万元。该厂维修能力只能维修7台机器B;若维修 机器A,1台折算机器B 2台。已知一台A可增加年产值 6万元,1台B可增加年产值4万元,问应购置A和B各 多少台才能使年产值增加最多?
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 0 0 1 0
0 x4 1 0 -4 -4
0 x5 2 -1 -6 -2
Z=22
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 15
不考虑整数约束 X1=5/2 X2=2 Z=23 x1 ≤2 第1个子问题 X1=2 X2=9/4 Z=21 x1 ≥ 3 第2个子问题 X1=3 X2=1 Z=22
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
11
例 求下列整数规划问题的解
max Z = 6 x 1 + 4 x 2 2 x 1 + 4 x 2 ≤ 13 2 x + x ≤ 7 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
s .t
LP-1: x1=4 x1 ≤4 x2=2.1 Z=349 x1=4.81 LP: x2=1.82 Z=356 LP-2: x1=5 x1≥5 x2=1.57 Z=341
201Leabharlann Baidu-3-11
管理运筹学课程组 ftp://211.71.69.239
LP-6 x1≥5 无可行解 剪掉 x2≥2
9
步骤: 1 求解相应的线性规划问题的最优解和最优值, 如果a) 没 有可行解, 停止; b) 若有满足整数条件的最优解, 则已得到整数 规划问题的最优解, 停止; c) 若有最优解, 但不满足整数条件, 记 此最优值为原整数规划问题Z*的上界, 然后, 用观察法求出下界. 2 分枝、定界,直到得到最优解为止。 a)在以后的各枝中,若某一子规划问题的最优解满足整数条 件,则用其最优值置换Z*的下界。 b)若某一分枝的最优值小于Z*的下界,则剪掉此枝,即以后 不在考虑此枝
上述规划问题是整数规划问题。 放松整数约束的整数规划就成为线性规划,此线性规划被称之为 整数规划的线性规划松弛问题。这样,任何一个整数规划可以看 成是一个线性规划再加上整数约束构成的。
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
2
整数规划问题的求解
以例5-1为例,图解法
管理运筹学课程组 ftp://211.71.69.239 18
s .t
2011-3-11
解:最优单纯形表如下 cj CB 5 8 XB x2 x1 8 5 x2 1 0 0 0 x3 0.25 0.125 -2.25 0 x4 -0.25 0.375 -1.75 z=37.5
第五章
整数规划(Integer Programming)
分类:1. 纯整数线性规划(Pure Integer Linear Programming) 2. 混合整数线性规划(Mixed Integer Linear Programming) 3. 0-1型整数线性规划(Zero-One Integer Linear Programming)
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 5
二、具体步骤(以例子说明) 例5-2
max Z = 40 x 1 + 90 x 2 9 x 1 + 7 x 2 ≤ 56 7 x + 20 x ≤ 70 1 2 x1 , x 2 ≥ 0 x 1 , x 2取整数
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
12
cj CB 4 初始表 6 XB b 2 5/2 0
6 x1 0 1 0
4 x2 1 0 0
0 x3 1/3 -1/6 -1/3
0 x4 -1/3 2/3 8/3
x2 x1
不考虑整数约束 X1=5/2 X2=2 Z=23 x1 ≤2 LP1
2011-3-11
x1 ≥ 3 LP2
管理运筹学课程组 ftp://211.71.69.239 13
cj CB 4 6 0 XB X2 X1 X5 b 2 5/2 -1/2
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1/3 -1/6 1/6 -1/3
0 x4 -1/3 2/3 -2/3 -8/3
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
16
练习:用分支定界法求解下述整数规划问题
max
Z = 4 x1 + 3 x 2 4 x 1 + 5 x 2 ≤ 20 2 x + x ≤ 6 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
s .t
解:
第一步:先不考虑整数约束条件,求解相应的线性规划问题,得最 优解和最优值如下 x1=4.81, x2=1.82, Z=356 此解不满足整数解条件。定出整数规划问题目标函数的上下界。上 界为 Z=356;用观察法可知x1=0,x2=0是可行解,从而其整数规划问题 目标函数的下界应为0,即 0≤ Z* ≤356
LP-4: x1=1.42, x2=3, Z4=327(剪掉) 问题LP-3的所有解均是整数解, 而问题LP-4还有非整数解, 但由于 Z3>Z4, 对LP4分枝已没有必要,剪掉。 上下界为 340≤ Z* ≤ 349 • 在对问题LP-2进行分枝, x2 ≤[1.57]=1, x2≥[1.57]+1=2, 得子问题LP-5, LP-6, 求解得 LP-5: x1=5.44, x2=1, Z5=308 (≤下界340, 剪掉)
cj CB 4 6 0 XB X2 X1 X5 b 2 5 /2 -1 /2
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1 /3 -1 /6 -1 /6 -1 /3
0 x4 -1 /3 2 /3 2 /3 -8 /3
0 x5 0 0 1 0
cj CB 4 6 0 XB X2 X1 X5 b 1 3 3
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
4
分枝定界法(Branch and Bound method) 第二节 分枝定界法
引言:穷举法对小规模的问题可以。大规模问题则不行,如指派问题 n个人指派n件事,共有n!中指派方案。 一、基本思想和算法依据 基本思想是:先求出相应的线性规划最优解,若此解不符合整数 基本思想 条件,那么其目标函数的值就是整数规划问题最优值的上界,而任意 满足整数条件的可行解的目标函数值将是其下界(定界),然后将相 应的线性规划问题进行分枝,分别求解后续的分枝问题。如果后续分 枝问题的最优值小于上述下界, 则剪掉此枝; 如果后续某一分枝问题的 最优解满足整数条件,且其最优值大于上述下界,则用其取代上述下 界,继续考虑其它分枝,直到最终求得最优的整数解。 算法的依据在于:“整数规划的最优解不会优于相应的线性规划 算法的依据 问题的最优解”。具体说就是,对极大化问题,与整数规划问题相应 的线性规划问题的目标函数值,是该整数规划问题目标函数的上界; 任何满足整数条件的可行解的目标函数值将是其下界。
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 6
Z=40x1+90x2 LP-1 9x1+7x2=56 7x1+20x2=70 LP-2
第二步:分枝与定界过程。 • 将其中一个非整数变量的解,比如x1, 进行分枝,即 x1≤[4.81]=4, x1≥[4.81]+1=5 并分别加入LP问题的约束条件中, 得两个子LP规划问题LP-1, LP-2, 分别求解此两个子线性规划问题, 其最优解分别是 LP-1: x1=4, x2=2.1, Z1=349
max Z = 8 x 1 + 5 x 2 2 x 1 + 3 x 2 ≤ 12 2 x − x ≤ 6 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
0 x5 0 0 1 0
cj CB 4 6 0 XB X2 X1 X4 b 9 /4 2 3 /4
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1 /4 0 -1 /4 -1
0 x4 0 0 1 0
0 x5 -1 /2 1 -3 /2 -4
Z=21
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 14
2011-3-11
LP-2: x1=5, x2=1.57, Z2=341 管理运筹学课程组 ftp://211.71.69.239
7
没有得到全部决策变量均是整数的解。再次定出上下界 0 ≤Z* ≤ 349 • 继续对问题LP-1,LP-2进行分枝。先对目标函数值大的进行分枝, 即分别将 x2≤[2.1]=2, x2≥[2.1]+1=3 加入到约束条件中去, 得子问题LP-3, LP-4, 分别求解得 LP-3: x1=4, x2=2, Z3=340 ( 是整数解,定下界)
s .t
x1=5/3 LP: x2=8/3 Z=44/3
LP-1: x1=1 x1 ≤1 x2=16/5 剪掉 Z=68/5 LP-2: x1=2 x1≥2 x2=2 Z=14
管理运筹学课程组 ftp://211.71.69.239 17
2011-3-11
割平面解法(Cutting Plane Approach) 第三节 割平面解法
x2
x2
2x1+x2=7 z=6x1+4x2=23
2x1+4x2=13 x1
x1
最优解为 x1 = 2.5, x2 = 2, zc = 23
可行解
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
3
整数规划的所有可行解包含在线性规划松弛问题的可行域内。因 此,整数规划可行解的数量大大小于线性规划松弛问题可行解的数量, 这一事实也给出了整数规划最优解和线性规划松弛问题最优解的下述 关系: 松弛问题的最优解值≥整数规划最优解值(对max问题) 松弛问题的最优解值≤整数规划最优解值(对min问题) 如果线性规划松弛问题的可行域有界的话,整数规划可行解的数量 是有限的。理论上讲,这样的整数规划问题可以通过计算和比较所 有整数点的目标函数值来求解,这种方法称为穷举法。 缺点:穷举法的计算量很大 无法用来求解实际问题
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
1
解:设x1,x2分别表示两种A、B两种机器的购置台数,根据实际 机器台数应为整数,故该问题的优化模型为
max z = 6 x1 + 4 x2 2 x1 + 4 x2 ≤ 13 s.t.2 x1 + x2 ≤ 7 x , x ≥ 0且为整数 1 2
2011-3-11
LP-6: 无可行解(剪掉)
管理运筹学课程组 ftp://211.71.69.239
8
于是得到原整数规划问题的最优解为 LP: x1=4, x2=2, Z3=340 整个过程如下: LP-3: x1=4 x1 ≤4 x2=2 x2 ≤2 Z=340 LP-4: x1=1.42 x1 ≤4 x2=3 剪掉 x2 ≥ 3 Z=327 LP-5: x1=5.44 x1≥5 x2=1 x2 ≤1 Z=308 剪掉
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
10
三、算法需要注意的几点(以极大化问题为例)
1 在计算过程中,若已得到一个整数可行解x(0),其相 应的目标函数值为Z0,那么在计算其它分枝过程中,如果 解某一线性规划所得的目标函数值Z<Z0,即可停止计算。 因为进一步的分枝结果的最优值只能比Z更差。 2 若有若干个待求解的分枝,先选哪一个待求解的分 枝呢?选取目标函数值最大的那一枝。
第一节 问题的提出 例5-1:某工厂有资金13万元用于购置新机器,可 5-1 13 在两种机器中任意选购。已知机器A每台购置费2万元, B为4万元。该厂维修能力只能维修7台机器B;若维修 机器A,1台折算机器B 2台。已知一台A可增加年产值 6万元,1台B可增加年产值4万元,问应购置A和B各 多少台才能使年产值增加最多?
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 0 0 1 0
0 x4 1 0 -4 -4
0 x5 2 -1 -6 -2
Z=22
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 15
不考虑整数约束 X1=5/2 X2=2 Z=23 x1 ≤2 第1个子问题 X1=2 X2=9/4 Z=21 x1 ≥ 3 第2个子问题 X1=3 X2=1 Z=22
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
11
例 求下列整数规划问题的解
max Z = 6 x 1 + 4 x 2 2 x 1 + 4 x 2 ≤ 13 2 x + x ≤ 7 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
s .t
LP-1: x1=4 x1 ≤4 x2=2.1 Z=349 x1=4.81 LP: x2=1.82 Z=356 LP-2: x1=5 x1≥5 x2=1.57 Z=341
201Leabharlann Baidu-3-11
管理运筹学课程组 ftp://211.71.69.239
LP-6 x1≥5 无可行解 剪掉 x2≥2
9
步骤: 1 求解相应的线性规划问题的最优解和最优值, 如果a) 没 有可行解, 停止; b) 若有满足整数条件的最优解, 则已得到整数 规划问题的最优解, 停止; c) 若有最优解, 但不满足整数条件, 记 此最优值为原整数规划问题Z*的上界, 然后, 用观察法求出下界. 2 分枝、定界,直到得到最优解为止。 a)在以后的各枝中,若某一子规划问题的最优解满足整数条 件,则用其最优值置换Z*的下界。 b)若某一分枝的最优值小于Z*的下界,则剪掉此枝,即以后 不在考虑此枝
上述规划问题是整数规划问题。 放松整数约束的整数规划就成为线性规划,此线性规划被称之为 整数规划的线性规划松弛问题。这样,任何一个整数规划可以看 成是一个线性规划再加上整数约束构成的。
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
2
整数规划问题的求解
以例5-1为例,图解法
管理运筹学课程组 ftp://211.71.69.239 18
s .t
2011-3-11
解:最优单纯形表如下 cj CB 5 8 XB x2 x1 8 5 x2 1 0 0 0 x3 0.25 0.125 -2.25 0 x4 -0.25 0.375 -1.75 z=37.5
第五章
整数规划(Integer Programming)
分类:1. 纯整数线性规划(Pure Integer Linear Programming) 2. 混合整数线性规划(Mixed Integer Linear Programming) 3. 0-1型整数线性规划(Zero-One Integer Linear Programming)
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 5
二、具体步骤(以例子说明) 例5-2
max Z = 40 x 1 + 90 x 2 9 x 1 + 7 x 2 ≤ 56 7 x + 20 x ≤ 70 1 2 x1 , x 2 ≥ 0 x 1 , x 2取整数
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
12
cj CB 4 初始表 6 XB b 2 5/2 0
6 x1 0 1 0
4 x2 1 0 0
0 x3 1/3 -1/6 -1/3
0 x4 -1/3 2/3 8/3
x2 x1
不考虑整数约束 X1=5/2 X2=2 Z=23 x1 ≤2 LP1
2011-3-11
x1 ≥ 3 LP2
管理运筹学课程组 ftp://211.71.69.239 13
cj CB 4 6 0 XB X2 X1 X5 b 2 5/2 -1/2
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1/3 -1/6 1/6 -1/3
0 x4 -1/3 2/3 -2/3 -8/3
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
16
练习:用分支定界法求解下述整数规划问题
max
Z = 4 x1 + 3 x 2 4 x 1 + 5 x 2 ≤ 20 2 x + x ≤ 6 1 2 x1 , x 2 ≥ 0 x 1 , x 2 取整数
s .t
解:
第一步:先不考虑整数约束条件,求解相应的线性规划问题,得最 优解和最优值如下 x1=4.81, x2=1.82, Z=356 此解不满足整数解条件。定出整数规划问题目标函数的上下界。上 界为 Z=356;用观察法可知x1=0,x2=0是可行解,从而其整数规划问题 目标函数的下界应为0,即 0≤ Z* ≤356
LP-4: x1=1.42, x2=3, Z4=327(剪掉) 问题LP-3的所有解均是整数解, 而问题LP-4还有非整数解, 但由于 Z3>Z4, 对LP4分枝已没有必要,剪掉。 上下界为 340≤ Z* ≤ 349 • 在对问题LP-2进行分枝, x2 ≤[1.57]=1, x2≥[1.57]+1=2, 得子问题LP-5, LP-6, 求解得 LP-5: x1=5.44, x2=1, Z5=308 (≤下界340, 剪掉)
cj CB 4 6 0 XB X2 X1 X5 b 2 5 /2 -1 /2
6 x1 0 1 0 0
4 x2 1 0 0 0
0 x3 1 /3 -1 /6 -1 /6 -1 /3
0 x4 -1 /3 2 /3 2 /3 -8 /3
0 x5 0 0 1 0
cj CB 4 6 0 XB X2 X1 X5 b 1 3 3
2011-3-11
管理运筹学课程组 ftp://211.71.69.239
4
分枝定界法(Branch and Bound method) 第二节 分枝定界法
引言:穷举法对小规模的问题可以。大规模问题则不行,如指派问题 n个人指派n件事,共有n!中指派方案。 一、基本思想和算法依据 基本思想是:先求出相应的线性规划最优解,若此解不符合整数 基本思想 条件,那么其目标函数的值就是整数规划问题最优值的上界,而任意 满足整数条件的可行解的目标函数值将是其下界(定界),然后将相 应的线性规划问题进行分枝,分别求解后续的分枝问题。如果后续分 枝问题的最优值小于上述下界, 则剪掉此枝; 如果后续某一分枝问题的 最优解满足整数条件,且其最优值大于上述下界,则用其取代上述下 界,继续考虑其它分枝,直到最终求得最优的整数解。 算法的依据在于:“整数规划的最优解不会优于相应的线性规划 算法的依据 问题的最优解”。具体说就是,对极大化问题,与整数规划问题相应 的线性规划问题的目标函数值,是该整数规划问题目标函数的上界; 任何满足整数条件的可行解的目标函数值将是其下界。
2011-3-11 管理运筹学课程组 ftp://211.71.69.239 6
Z=40x1+90x2 LP-1 9x1+7x2=56 7x1+20x2=70 LP-2
第二步:分枝与定界过程。 • 将其中一个非整数变量的解,比如x1, 进行分枝,即 x1≤[4.81]=4, x1≥[4.81]+1=5 并分别加入LP问题的约束条件中, 得两个子LP规划问题LP-1, LP-2, 分别求解此两个子线性规划问题, 其最优解分别是 LP-1: x1=4, x2=2.1, Z1=349