3.2分枝定界法
分枝定界法的原理: 1、分枝对mx2=33x+20145 4x,+x≤16.5 松弛问 X,≥0 题的可 为整数 行域 松弛问题(L0) max=30x1+20x2 2x1+3x,≤14.5 s4x1+x2≤16.5 松弛问题的最优解: x,=3.5x=2.5 L212345678
一、分枝定界法的原理: 1、分枝 + + = + 为整数 对 1 2 1 2 1 2 1 2 1 2 , 0, 0 4 16.5 2 3 14.5 . max 30 20 x x x x x x x x st z x x + + = + 0, 0 4 16.5 2 3 14.5 . max 30 20 ( ) 1 2 1 2 1 2 1 2 0 x x x x x x st z x x 松弛问题 L : x1 = 3.5, x2 = 2.5 松弛问题的最优解: · · · · · · · · · · · · · · · · · ·0 1 2 3 4 5 6 7 8 · 松弛问 题的可 行域 L1 L2
对(P)maxz=30x+20x2 松弛问题(Lo) 2x1+3x,≤14.5 maxz=30x1+20x2最优解: 4x1+x2≤16.5 2x1+3x2≤14.5 3.5 s t 4x1+x2≤165 ≥0,x,≥0 2.5 ≥0,x2≥0 x1,x2为整数 父问 )max=30x120x2(k2)mxz=30x1+20x2 子问题 2x1+3x2≤14.5 2x1+3x2≤145 4x1+x2≤165 st 4x1+x2≤16.5 <3 s t. ≥0,x2≥0 x1≥0,x2≥0 论1:(I)的最优解一定在某个子问题中 2:子问题的可行域c父问题的可行域 →子问题的最优解<父问题的最优值 3:子问题中的整数解都是(IP)的可行解
+ + = + 0, 0 4 16.5 2 3 14.5 . max 30 20 ( ) 1 2 1 2 1 2 1 2 0 x x x x x x st z x x 松弛问题 L : + + = + 0, 0 3 4 16.5 2 3 14.5 . ( )max 30 20 1 2 1 1 2 1 2 1 1 2 x x x x x x x st L z x x + + = + 0, 0 4 4 16.5 2 3 14.5 . ( )max 30 20 1 2 1 1 2 1 2 2 1 2 x x x x x x x st L z x x 父问题 子问题 结论1 :(IP)的最优解一定在某个子问题中 ≤ 父问题的最优值 + + = + 为整数 对( ) 1 2 1 2 1 2 1 2 1 2 , 0, 0 4 16.5 2 3 14.5 . max 30 20 x x x x x x x x st IP z x x 2.5 3.5, 2 1 = = x x 最优解: 3 :子问题中的整数解都是(IP)的可行解 子问题的最优解 2 :子问题的可行域 父问题的可行域
2、定界 对整数规划问题Ⅰ max z= CX 及其松弛问题LP max z= CX aX=b ∫AX=b sX≥0 X≥0 x,为整数 1、(LP)的最优值是(P)的最优值的上界 2、若LP可以找到一个整数解X, 则CX是P最优值的下界
2、定界 = = 为整数 对整数规划问题 j x X AX b st z CX IP . 0 max = = 0 . max X AX b st z CX 及其松弛问题LP 1、(LP)的最优值是(IP)的最优值的上界 2、若LP可以找到一个整数解X, 则CX是IP最优值的下界
IP 2≤2,1≤Z或z≤Z 最优值z 若某个L的最优解X*是整数解 则x*是(P)的可行解,有CX*≤Z 松弛问题L0 即找到Z的下界CX*,关闭L 最优值z 讨论子问题Lk 若L的最优值Z≤CX*,剪枝 若L的最优值z>CX*: 最优值Z最优值z,()最优解X*是整数解 将下界改为CX*,,关闭Lk (2)最优解X*不是整数解 继续对L分枝 通过对(L0)分枝,使(P)的最优值上界=下界 的上界不断下降,下界不断上升 得最优值
IP 最优值ZI 松弛问题L0 L0 最优值Z L0 ZI Z L1 L2 L1 最优值Z L2 最优值Z L1 L0 Z Z L2 L0 Z Z 1 , ZI ZL L2 或ZI Z 通过对(L0)分枝,使(IP)的最优值 的上界不断下降, L3 L4 L5 L6 若某个Li 0 的最优解X * i 0 是整数解 则X * i 0 是(IP)的可行解 CX i ZI 0 ,有 * * , 0 若Lk 的最优值Zk CX i 即找到ZI 的下界 * , 将下界改为CX k 0 ,关闭Li (1)最优解X * k 是整数解 剪枝 若Lk 的最优值Zk CX * i 0 : : 讨论子问题Lk 0 CX * i 关闭Lk , (2)最优解X * k 不是整数解 继续对Lk 分枝 下界不断上升, 上界=下界 得最优值