770 likes | 1.06k Views
第五章 整数规划. 一、整数规划数学模型及解的特点 二、解纯整数规划的割平面法 三、分支定界法 四、 0 - 1 型整数规划 五、指派问题. 一、数学模型及解的特点. 几个概念: 1 、整数规划( IP ) --- 要求一部分或全部决策变量必须取整数值的规划问题。 2 、松弛问题 --- 不考虑整数条件,由余下的目标函数和约束条件构成的规划问题,称为该整数规划问题的松弛问题。 3 、整数线性规划 — 若松弛问题是一个线性规划,则称该整数规划为整数线性规划。.
E N D
第五章 整数规划 一、整数规划数学模型及解的特点 二、解纯整数规划的割平面法 三、分支定界法 四、0-1型整数规划 五、指派问题
一、数学模型及解的特点 几个概念: 1、整数规划(IP)---要求一部分或全部决策变量必须取整数值的规划问题。 2、松弛问题---不考虑整数条件,由余下的目标函数和约束条件构成的规划问题,称为该整数规划问题的松弛问题。 3、整数线性规划—若松弛问题是一个线性规划,则称该整数规划为整数线性规划。
货物 体积(米3/箱) 重量(百公斤/箱) 利润(千元/箱) 甲 5 2 20 乙 4 5 10 装运限制 24 13 一、数学模型及解的特点 例1、集装箱运货
5x1+4x2 24 2x1+5x2 13 x1 , x2 0 x1 , x2为整数 一、数学模型及解的特点 解:设x1 , x2 为甲、乙两货物各托运箱数 maxZ = 20 x1 +10 x2 纯整数线性规划
物品 名称 重量 体积 价值 1 书 5 2 20 2 摄像机 3 1 30 3 枕头 1 4 10 4 休闲食品 2 3 18 5 衣服 4 5 15 一、数学模型及解的特点 例2、背包问题 背包可再装入8单位重量,10单位体积物品
5x1+3x2 +x3 +2x4 +4x5 8 2x1+x2 +4x3 +3x4 +5xX5 10 xi为0, 1 一、数学模型及解的特点 解:xi为是否带第 i 种物品 maxZ=20x1 +30x2 +10x3+18x4 +15x5 0-1型整数线性规划
A1 B2 B1 A2 B3 B4 A3 一、数学模型及解的特点 例3、选址问题 Ai: 可建仓库地点,容量ai ,投资费用bi ,建2个 Bj: 商店,需求dj ( j=1…4 ) Cij: 仓库 i 到商店 j 的单位 运费 问:选择适当地点建仓库,在满足商店需求条件下,总费用最小。
y11 + y21 = d1 y12 + y22 + y32 = d2 y23+ y33 = d3 y14 + y24 + y34 = d4 x1 + x2 + x3= 2 y11 + y12 + y14 a1x1 y21 + y22 + y23 + y24a2x2 y32 + y33 + y34 a3x3 xi 为0-1, yij 0 s.t. 一、数学模型及解的特点 解:设xi ( i=1,2,3)为是否在 Ai 建仓库 yij ( i=1,2,3, j=1…4)由 i仓库向 j商店运货量 混合整数规划
一、数学模型及解的特点 整数规线性划数学模型的一般形式: ,部分或全部为整数
分类 0 – 1 规划 纯整数规划 整数规划 ……. 混合整数规划 一、数学模型及解的特点 常用问题 : 1.背包问题 2.指派问题 整数规划的常用解法: 1.分枝定界法 2.割平面法
一、数学模型及解的特点 解的特点 1 整数规划问题的可行解一定也是它的松弛问题的可行解(反之则不一定)。前者最优解的目标函数值不会优于后者最优解的目标函数值。 2 松弛问题的最优解的简单取整,不一定是最优解。 例 某厂拟用集装箱托运甲.乙两种货物。 问:如何托运才能使利润最大?
一、数学模型及解的特点 松弛问题的解:甲 4.8 乙 0 调整 : 1 ) “ 凑整” 甲 5 乙 0 2 ) “ 舍尾” 甲 4 乙 0 最优解 : 甲 4 乙 1
二、解纯整数规划的割平面法 纯整数规划问题
二、解纯整数规划的割平面法 在松弛问题的最优单纯形表中,记Q为m个基变量的下标集合,K为n-m个非基变量的下标集合。 则m个约束方程可表示为:
二、解纯整数规划的割平面法 对应的最优解: 其中: 全为整数时,为纯整数规划的最优解。 B不全为整数时,则不是纯整数规划的可行解,也不是原整数规划的最优解。
二、解纯整数规划的割平面法 割平面法的思路:若松弛问题的最优解不全为整数,则从X的非整分量中选取一个,用以构造一个线性约束条件,将其加入原松弛问题中,形成一个新的线性规划,然后求解之。直到全为最优解为止。 增加的约束条件具备的两个基本性质: 其一:原松弛问题最优解不满足该条件; 其二:凡整数可行解均满足该条件。
二、解纯整数规划的割平面法 Xi0 + A Xj = bi0 分解A ,b为两部分。 A=Na+Fa b=Nb+Fb F为不超过该数的最大整数。 则上式变为: Xi0+( Na+Fa)Xj=Nb+Fb Xi0+ Na Xj- Nb= Fb- Fa Xj Fb - Fa Xj0 -Fa Xj -Fb 可以证明此条件满足上述两个基本性质。可以作为增加的约束条件。
二、解纯整数规划的割平面法 • 割平面法求解步骤: • 求解原问题的松驰问题; • 若最优解全为整数,则达到最优;否则转3; • 从最优单纯形表中选择具有最大小数部分的非整分量所在行构造割平面约束条件; • 将新约束条件加入原问题最优单纯形表,求解; • 返2。
二、解纯整数规划的割平面法 例:以课本例6为例说明。 增加约束条件:
二、解纯整数规划的割平面法 增加约束条件:
二、解纯整数规划的割平面法 原问题的最优解为:x1=1,x2=2
maxZ=CX AX=b X0 X为整数 maxZ=CX AX=b X0 (B) (A) 三、 分枝定界法 目前求解纯整数规划和混和整数规划最常用的方法。 分支概念: (B)为(A)的松弛问题。
i+1 Xj* X* i (B) Xj i+1 (B) Xj i (C) (D) 三、 分枝定界法
三、 分枝定界法 定界概念:是在分支过程中,若某个后继问题恰巧获得整数规划问题的一个可行解,那么,它的目标函数值就是一个“界限”,可作为衡量处理其他分支的一个依据。 线性规划问题当约束区域缩小后,所得到的目标函数最优值不会更优于原来的约束区域所得到的最优值。 对于那些相应松弛问题最优解的目标函数值比上述“界限”值差的后继问题,就可以剔除而不再考虑了。如果出现更好的“界限”,则以它来取代原来的界限。
三、 分枝定界法 求解步骤: 1)设有最大整数规划问题A ,相应的松弛问题为B 。以Zb表示问题A的目标函数的初始界。(下界) 2)解 B a) B没有可行解,则A也没有可行解. b) B有最优解且为整数解,则A的最优解即得。 c) B有最优解但非整数解,B的最优值 Za为z*的上界 3)分枝 : 在B的最优解中取xi(=bi) bi不为整数。 构造二约束条件 xi≤[bi] xi≥ [bi] +1 将此二约束条件分别加入B后得到二后继规划问题B1,B2
三、 分枝定界法 4)解后继问题。 若有最优解,且满足A的整数要求。则以其目标函数值Zb’与Zb比较。 若Zb’优于Zb,则称此后继问题为问题C,以Zb’作为下界。否则, Zb不变。 5)不属于C的后继问题中,称存在最优解,且其目标函数值比界Zb更优的后继问题为待检查的后继问题。 若不存在待检查的后继问题。当C存在时,C最优解为A最优解。当C不存在时,与界Zb对应的可行解为A的最优解。 若存在待检查的后继问题,则选择其中目标函数值最优的一个后继问题,改称其为问题B。回3)。
X1+9/14 X2 51/14 -2X1+X2 1/3 X1 ,X2 0 整数 三、 分枝定界法 例7 用分支定界法求解下列整数规划问题 maxZ=X1 +X2
(2,23/9) max z=41/9 (1,7/3) max z=10/3 LP1 X2 2 LP1 X2 3 LP11 LP12 LP12 X1 3 LP1 X1 2 LP121 LP122 (33/14,2) max z=61/14 无解 LP X1 1 LP X1 2 LP1 LP2 (3,1) max z=4 (2,2) max z=4 三、 分枝定界法 解:记整数规划问题为IP,其松驰问题为LP。 解LP,得最优解为(3/2,10/3),MAXZ=29/6 以X1=3/2进行分支。(下界zb=0,上界za=29/6) 下界zb=4
三、 分枝定界法 分支定界法的优点: (1)、任何模型均可用; (2)、思路简单、灵活; (3)、速度快; (4)、适合上机。
四、0—1规划 一、0-1变量及其应用 0-1变量常被用来表示系统是否处于某个特定状态,或者决策时是否取某个特定方案。 当问题有多项要素,每项要素皆有两种选择时,可用一组0-1变量来描述。 在应用中,有时会遇到变量可以取多个整数值的问题。如果用0-1变量来表示,也可以用一组0-1变量来取代。 如x取0-9之间的任意整数时。 x=20x0+21x1 +22x2 +23x3 9
四、0—1规划 实际问题 1. 含有相互排斥的约束条件的问题: (1)两个约束中,只有一个起作用。 例:a11x1+a12x2<B1 a21x1+a22x2<B2 a11x1+a12x2<B1+M1Y1 a21x1+a22x2<B2+M2Y2 Y1+Y2=1
2x1+5x2 13 5x1+4x2 24+Mx3 7x1+3x2 45+M(1-x3 ) x1 ,x2 0 整数 x3为0或1M>0 s.t. 四、0—1规划 例如、假设例1中,运输方式:火车、船。 火车:5x1+4x2 24 (体积) 船: 7x1+3x2 45 (体积) maxZ=20x1 +10x2 当 x3 =0 火车 x3 =1 船
ai1x1+…+ainxnbi+yi M(i=1,…,m) y1 +…+ ym =m-1 yi为0或1 M>0 四、0—1规划 (2)互相排斥的多个约束中,只有一个起作用 例如:ai1x1+ai2x2 +…+ainxnbi (i=1,…,m) 互相排斥m个约束,只有一个起作用 (3)若a个约束条件中只能有b个起作用。 则令0-1变量之和为a-b。 注意:可用统一M,但M的取值必须足够的大。
四、0—1规划 2.固定费用问题:
maxZ=4X1 +5X2 +6X3 –100Y1 –150Y2 –200Y3 2X1+4X2 +8X3 500 2X1+3X2 +4X3 300 X1+2X2 +3X3 100 X1 M1Y1 X2M2Y2 X3 M3 Y3 X1 ,X2 ,X3 0 整数Y1 ,Y2 ,Y3为0-1变量。 s.t. 四、0—1规划 设Xj是第j种产品的产量。Yj是0-1变量,表示是(Yj=1)否(Yj=0)生产第j种产品。
a11 机床1 a13 机床3 a14 机床4 产品1 产品2 产品3 a21 机床1 a22 机床2 a24 机床4 a23 机床2 a33 机床3 四、0—1规划 3. 工件排序问题: 例:用4台机床加工3件产品。各产品的机床加工顺序,以及产品I在机床j上加工工时aij见表。 由于某种原因,产品2的加工总时间不得超过d,现要求确定各件产品在机床上的加工方案,使在最短的时间内加工完全部产品。
四、0—1规划 设产品i在机床j上开始加工的时间为xij x24+a24 -x21 d x11+a11 x21 +My1 x21+a21 x11 +M(1-y1 ) x22+a22 x32 +My2 x32+a32 x22 +M(1-y2 ) x13+a13 x33 +My3 x33+a33 x13 +M(1-y3 ) x14+a14 x24 +My4 x24+a24 x14 +M(1-y4 ) x11+a11 x13 x13+a13 x14 x21+a21 x22 x22+a22 x24 x32+a32 x33 w x14+a14 w x24+a24 w x33+a33 min z=w min z=max(x14+a14 ,x24+a24 ,x33+a33)
(一)、基本思想: maxZ=CX AX=b X为0或1 的2n个可能解,只检查其中一部分 对 maxZ = 2x1+4x2 +x3 3x1 -8x2+5x3 -1 x1 , x2 , x3为0 ,1 例: 四、0—1规划 0-1规划的解法--隐枚举法
X1 =0 X1 =1 X2 =1 X2 =0 X2 =0 1 1 0 0 X1 =1 maxZ = 2x1+4x2 +x3 3x1 -8x2+5x3 -1 x1 , x2 , x3为0 ,1 X3 =1 X3 =0 1 0 1 0 1 0 1 0 1 0 四、0—1规划
四、0—1规划 (二)、简单隐枚举法(max) 原则: (1)、用试探法,求出一个可行解,以它的目标值作为当前最好值Z0 (2)、增加过滤条件ZZ0 (3)、将xi 按ci由小大排列。最小化问题反之。
例:maxZ = 3x1 -2x2+5x3 x1 +2x2 -x3 2 ① x1 +4x2 +x3 4 ② x1 + x2 3 ③ 4x2+x3 6 ④ x1 , x2 , x3为0或1 s.t. 四、0—1规划 解: 观察得解(x1 , x2 , x3 )=(1 ,0 ,0) Z0 =3 过滤条件:3x1 - 2x2+5x3 3 将(x1 x2 x3 ) (x2 x1 x3 )
2x2 +x1 - x3 2 ① 4x2 + x1 +x3 4 ② x2 + x1 3 ③ 4x2 + x3 6 ④ 四、0—1规划 maxZ = -2x2 + 3x1 +5x3 解(x2 x1 x3 ) 目标值 Z0 ① ② ③ ④ 当前最好值 (0 ,0 ,0) 0 < 3 (0 ,0 ,1) 5 > √ √ √ √ 5 (0 ,1 ,0) 3 < (0 ,1 ,1) 8 > √ √ √ √ 8 (1 ,0 ,0) -2 < (1 ,0 ,1) 3 < (1 ,1 ,0) 1 < (1 ,1 ,1) 6 < 最优解 x = (1 ,0 ,1 )T Z=8
例12 例:minZ = 3x1 + 7x2 -x3 +x4 2x1 -x2 +x3 -x4 1 x1 -x2 +6x3 -4x4 8 5x1 +3x2 +x4 5 x1 , x2 , x3 , x4为0或1
minZ = 7x2 + 3x1 +x4 -x3 -x2 +2x1 - x4 +x3 1 -x2 + x1 +4x4 +6x3 8 3x2 +5x1 +x4 5 x1 , x2 , x3 , x4为0或1 (x2 x1 x4 x3 ) 目标值 Z0 ① ② ③ 当前最好值 (0 ,0 ,0.0) 0 ××× (0 ,0 .0,1) -1 √ ×× (0 ,0,1 ,0) 1 ××× (0 ,0,1 ,1) 0 ×√× (0 ,1,0 ,0) 3 √ ×× (0 ,1,0 ,1) 2 √× √ (0 ,1,1 ,1) 3 √√√ 3 (1 ,0,0 ,0) 7 (1 ,0,0 ,1)