运筹学_06 整数规划_
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将这两个约束条件分别加入问题( IP ) ,形成两个子问题( IP1)和( IP2 ) ,再解 这两个问题的松弛问题( LP1)和( LP2) 。
• 4、修改上、下界:按照以下两点规则进行。 • ⑴.在各分枝问题中,找出目标函数值最大者作为新的上界; • ⑵.从已符合整数条件的分枝中,找出目标函数值最大者作为新的下界。
3
CB XB
b
x1
3
x1
13/4
1
2 x2 5/2
0
0 x5
2
0
-Z
-59/4 0
3
x1
13/4
1
2 x2 5/2
0
0 x5 -1/2 0
-Z
-59/4 0
3 x1 7/2
1
2 x2
2
0
0 x4
1
0
-Z
-29/2 0
2
0
0
0
x2 x3 x4 x5
0 3/4 -1/4 0
1 -1/2 1/2 0
1
0
• 5、比较与剪枝 : • 各分枝的目标函数值中,若有小于Z 者,则剪掉此枝,表明此子问题已经探清, 不必再分枝了;否则继续分枝。
如此反复进行,直到得到Z=Z *= 为止,即得最优解 X * 。
分枝问题解可能出现的情况
• 情况 2, 4, 5 找到最优解 • 情况 3 在缩减的域上继续分枝定界法 • 情况 6 问题 1 的整数解作为界被保留,用于以后与问题 2
-Z -59/4 0
200
x2 x3 x4
0 3/4 -1/4 1 -1/2 1/2 0 -5/4 -1/4
初始表
最终表
x1=13/4 x2=5/2 Z(0) =59/4≈14.75 选 x2 进行分枝,即增加两个约束,2 ≥ x2 ≥3 有下式:
分别在(LP1)和(LP2)中引入松弛变量x5和x6 ,将新加约束条件加入上表计算。 即 x2+ x5= 2 , -x2+x6=-3 得下表:
S1
x1
2
3
• S1问题
• S2问题
对S1分枝: 构造约束:X2 ≥3 和 X2 ≤2 形成分枝问题S11和S12, 得解D
S11无可行域,无可行解。 因61/14<41/9,故0≤Z*≤61/14
x2 z
5
4 3
2
1
S2
1
A( 3 , 10) 23 D(33 ,2) 14
S1
2
2
3
x1
11
x2
3
CB XB
b
x1
3
x1
1来自百度文库/4
1
2 x2 5/2
先注意其中一个非负整数变量的
4
解。如:x1
构造约束: X1 ≥2 和 X1 ≤1 形成分枝问题S1和S2, 分别得最优解Z1和Z2
3
C(1, 7) 3
2
这时没有得到全部变量都是整数
的解。因Z1>Z2,故先考察S1这一枝。 且41/9<29/6,故0≤Z*≤41/9
1
S2
1
A( 3 , 10) 23 B(2, 23) 9
分枝定界解法
1、算法依据:对于目标函数值来讲,整数规划的最优解不会更优于相应线性规 划问题的最优解。 整数规划与其松弛问题:
• 当放弃整数约束时得到的线性规划称为整数规划的松弛问题。 • 整数规划的可行域是松弛问题的可行域,反之不成立。
基本思想:
• 设有最大化整数规划问题A,相应的线性规划问题为B.从解B开始,若最优解不符 合A的条件,那么B的最优目标函数值必是A的最优目标函数值Z*的上界,记为 , 而A的任意可行解对应的目标函数值将是Z*的一个下界Z, 分支定界法就是将B 可行域分为子区域(分支)方法,逐步减少上界和增大下界,最终求得Z*。
5
z
对S12分枝: D:x1=33/14,x2=2,Z3=61/14
构造约束:X1 ≥3 和 X1 ≤2
4
A( 3 , 10)
形成分枝问题S121和S122,
3
23
得解E和F
解E和F的变量皆为整数, 故4≤Z*≤61/14
2
F (2,2) S122
1
S2
1
E(3,1)
S121
2
3
x1
对于分枝S2,最优值Z2=10/3,小于4,所以不必讨论。 因4与61/14之间只有4一个整数,故4为所求整数规划问题目标函数的最优值。 最优解为(3,1)(2,2)。 分枝定界法是计算机求解整数规划,进行迭代的基础。——原理
的后续分枝所得到的解进行比较,结论如情况 4或5
x2
例1:
5
4 3
解:先不考虑x1,x2为非负整数的
2
条件,得最优解: x1=3/2, x2=10/3,
z0=29/6。
1
它不符合整数条件, Z0作为Z*的
上界。显然,(0,0)是问题A的一个整
数可行解。0≤z*≤29/6
S
1
2
3
x1
x2 z
5
对S分枝:x1=3/2, x2=10/3,z0=29/6。
分枝定界法就是将问题的可行域分成子区域(分枝)。
具体步骤:
• 1、先不考虑整数约束,解( IP )的松弛问题( LP ),可能得到以下情况之一: • ⑴.若( LP )没有可行解,则( IP )也没有可行解,停止计算。 • ⑵.若( LP )有最优解,并符合( IP )的整数条件,则( LP )的最优解即为( IP )的 最优解,停止计算。 • ⑶.若( LP )有最优解,但不符合( IP )的整数条件,转入下一步。为讨论方便, 设( LP )的最优解为:
0
1
0 -5/4 -1/4 0
0 3/4 -1/4 0
1 -1/2 1/2 0
0 1/2 -1/2 1
0 -5/4 -1/4 0
0 1/2 0 -1/2
1
0
0
1
0 -1 1 -2
0 -3/2 0 -1/2
LP1
x1=7/2, x2=2 Z(1) =29/2=14.5 继续分枝,加入约束 3≥ x1 ≥4
例、用分枝定界法求解整数规划问题(单纯形法)
解:用单纯形法解对应的(LP)问题,如表所示,获得最优解。
3200
CB XB b x1 x2 x3 x4 0 x3 9 2 1 1 0 9/2 0 x4 14 2 3 0 1 14/2
-Z 0 3 2 0 0
3
CB XB b x1 3 x1 13/4 1 2 x2 5/2 0
• 2、定界: • 记( IP )的目标函数最优值为Z* ,以Z(0) 作为Z* 的上界,记为 = Z(0) 。再用 观察法找的一个整数可行解 X′,并以其相应的目标函数值 Z′作为Z* 的下界, 记为Z= Z′,也可以令Z=-∞,则有: Z ≤ Z* ≤
• 3、分歧: • 在( LP )的最优解 X(0)中,任选一个不符合整数条件的变量,例如xr= (不为 整数),以 表示不超过 的最大整数。 构造两个约束条件 xr ≤ 和 xr ≥ +1
• 4、修改上、下界:按照以下两点规则进行。 • ⑴.在各分枝问题中,找出目标函数值最大者作为新的上界; • ⑵.从已符合整数条件的分枝中,找出目标函数值最大者作为新的下界。
3
CB XB
b
x1
3
x1
13/4
1
2 x2 5/2
0
0 x5
2
0
-Z
-59/4 0
3
x1
13/4
1
2 x2 5/2
0
0 x5 -1/2 0
-Z
-59/4 0
3 x1 7/2
1
2 x2
2
0
0 x4
1
0
-Z
-29/2 0
2
0
0
0
x2 x3 x4 x5
0 3/4 -1/4 0
1 -1/2 1/2 0
1
0
• 5、比较与剪枝 : • 各分枝的目标函数值中,若有小于Z 者,则剪掉此枝,表明此子问题已经探清, 不必再分枝了;否则继续分枝。
如此反复进行,直到得到Z=Z *= 为止,即得最优解 X * 。
分枝问题解可能出现的情况
• 情况 2, 4, 5 找到最优解 • 情况 3 在缩减的域上继续分枝定界法 • 情况 6 问题 1 的整数解作为界被保留,用于以后与问题 2
-Z -59/4 0
200
x2 x3 x4
0 3/4 -1/4 1 -1/2 1/2 0 -5/4 -1/4
初始表
最终表
x1=13/4 x2=5/2 Z(0) =59/4≈14.75 选 x2 进行分枝,即增加两个约束,2 ≥ x2 ≥3 有下式:
分别在(LP1)和(LP2)中引入松弛变量x5和x6 ,将新加约束条件加入上表计算。 即 x2+ x5= 2 , -x2+x6=-3 得下表:
S1
x1
2
3
• S1问题
• S2问题
对S1分枝: 构造约束:X2 ≥3 和 X2 ≤2 形成分枝问题S11和S12, 得解D
S11无可行域,无可行解。 因61/14<41/9,故0≤Z*≤61/14
x2 z
5
4 3
2
1
S2
1
A( 3 , 10) 23 D(33 ,2) 14
S1
2
2
3
x1
11
x2
3
CB XB
b
x1
3
x1
1来自百度文库/4
1
2 x2 5/2
先注意其中一个非负整数变量的
4
解。如:x1
构造约束: X1 ≥2 和 X1 ≤1 形成分枝问题S1和S2, 分别得最优解Z1和Z2
3
C(1, 7) 3
2
这时没有得到全部变量都是整数
的解。因Z1>Z2,故先考察S1这一枝。 且41/9<29/6,故0≤Z*≤41/9
1
S2
1
A( 3 , 10) 23 B(2, 23) 9
分枝定界解法
1、算法依据:对于目标函数值来讲,整数规划的最优解不会更优于相应线性规 划问题的最优解。 整数规划与其松弛问题:
• 当放弃整数约束时得到的线性规划称为整数规划的松弛问题。 • 整数规划的可行域是松弛问题的可行域,反之不成立。
基本思想:
• 设有最大化整数规划问题A,相应的线性规划问题为B.从解B开始,若最优解不符 合A的条件,那么B的最优目标函数值必是A的最优目标函数值Z*的上界,记为 , 而A的任意可行解对应的目标函数值将是Z*的一个下界Z, 分支定界法就是将B 可行域分为子区域(分支)方法,逐步减少上界和增大下界,最终求得Z*。
5
z
对S12分枝: D:x1=33/14,x2=2,Z3=61/14
构造约束:X1 ≥3 和 X1 ≤2
4
A( 3 , 10)
形成分枝问题S121和S122,
3
23
得解E和F
解E和F的变量皆为整数, 故4≤Z*≤61/14
2
F (2,2) S122
1
S2
1
E(3,1)
S121
2
3
x1
对于分枝S2,最优值Z2=10/3,小于4,所以不必讨论。 因4与61/14之间只有4一个整数,故4为所求整数规划问题目标函数的最优值。 最优解为(3,1)(2,2)。 分枝定界法是计算机求解整数规划,进行迭代的基础。——原理
的后续分枝所得到的解进行比较,结论如情况 4或5
x2
例1:
5
4 3
解:先不考虑x1,x2为非负整数的
2
条件,得最优解: x1=3/2, x2=10/3,
z0=29/6。
1
它不符合整数条件, Z0作为Z*的
上界。显然,(0,0)是问题A的一个整
数可行解。0≤z*≤29/6
S
1
2
3
x1
x2 z
5
对S分枝:x1=3/2, x2=10/3,z0=29/6。
分枝定界法就是将问题的可行域分成子区域(分枝)。
具体步骤:
• 1、先不考虑整数约束,解( IP )的松弛问题( LP ),可能得到以下情况之一: • ⑴.若( LP )没有可行解,则( IP )也没有可行解,停止计算。 • ⑵.若( LP )有最优解,并符合( IP )的整数条件,则( LP )的最优解即为( IP )的 最优解,停止计算。 • ⑶.若( LP )有最优解,但不符合( IP )的整数条件,转入下一步。为讨论方便, 设( LP )的最优解为:
0
1
0 -5/4 -1/4 0
0 3/4 -1/4 0
1 -1/2 1/2 0
0 1/2 -1/2 1
0 -5/4 -1/4 0
0 1/2 0 -1/2
1
0
0
1
0 -1 1 -2
0 -3/2 0 -1/2
LP1
x1=7/2, x2=2 Z(1) =29/2=14.5 继续分枝,加入约束 3≥ x1 ≥4
例、用分枝定界法求解整数规划问题(单纯形法)
解:用单纯形法解对应的(LP)问题,如表所示,获得最优解。
3200
CB XB b x1 x2 x3 x4 0 x3 9 2 1 1 0 9/2 0 x4 14 2 3 0 1 14/2
-Z 0 3 2 0 0
3
CB XB b x1 3 x1 13/4 1 2 x2 5/2 0
• 2、定界: • 记( IP )的目标函数最优值为Z* ,以Z(0) 作为Z* 的上界,记为 = Z(0) 。再用 观察法找的一个整数可行解 X′,并以其相应的目标函数值 Z′作为Z* 的下界, 记为Z= Z′,也可以令Z=-∞,则有: Z ≤ Z* ≤
• 3、分歧: • 在( LP )的最优解 X(0)中,任选一个不符合整数条件的变量,例如xr= (不为 整数),以 表示不超过 的最大整数。 构造两个约束条件 xr ≤ 和 xr ≥ +1