整数规划问题;.ppt

上传人:韩长文 文档编号:7248363 上传时间:2020-11-14 格式:PPT 页数:69 大小:2.18MB
返回 下载 相关 举报
整数规划问题;.ppt_第1页
第1页 / 共69页
整数规划问题;.ppt_第2页
第2页 / 共69页
整数规划问题;.ppt_第3页
第3页 / 共69页
整数规划问题;.ppt_第4页
第4页 / 共69页
整数规划问题;.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《整数规划问题;.ppt》由会员分享,可在线阅读,更多相关《整数规划问题;.ppt(69页珍藏版)》请在三一文库上搜索。

1、第四章 整数规划与分配问题,数学模型 割平面法 分枝定界法 0-1整数规划 分配问题,整数规划,Integer Linear Programming,简述,LP虽然用途广泛,但经常地,客观上要求 L.P.最优解中不能含有非整数值(如股票的购买之解答),整数规划就是专门用来求解这类问题的有效工具 重点掌握:0-1 规划灵活应用、分枝定界法。,提出问题,某厂生产A1,A2两种品牌电视,用B1,B2两种原料,具体数据如下,求如何安排生产使利润最大,整数规划,数学模型,若所有 xj 的解为整数,称为纯整数规划pure integer linear programming 若部分 xj 的解为整数,称为

2、混合整数规划mixed integer linear programming 若xj 只取0或1,成为0-1整数规划zero-one integer linear programming,松弛问题,整数规划,整数规划的最优解不会优于其松弛问题的最优解,注 释,最优解不一定在顶点上达到 最优解不一定是松弛问题最优解的邻近整数解 整数可行解远多于顶点,枚举法不可取,整数规划问题的求解方法,分枝定界法branch and bound method 分枝定界法是一种隐枚举方法(implicit enumeration)或部分枚举方法,是枚举方法基础上的改进,几乎所有的计算机计算都用此算法。其关键是分支

3、和定界。 例,Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 , X2 0 X1 , X2 取整数,s.t.,6,分支定界法,思路与解题步骤 只解松弛问题 1、在全部可行域上解松弛问题 若松弛问题最优解为整数解,则其也是整数规划的最优解 2、分枝过程 若松弛问题最优解中某个 xk=bk 不是整数,令 bk 为 bk 的整数部分 构造两个新的约束条件 xk bk 和 xk bk +1,分别加于原松弛问题,形成两个新的整数规划 3、求解分枝的松弛问题 定界过程 设两个分枝的松弛问题分别为问题 1 和问题 2 ,它们的最优解有如下情况,整数规划,分支问题

4、解可能出现的情况,情况 2, 4, 5 找到最优解 情况 3 在缩减的域上继续分枝定界法 情况 6 问题 1 的整数解作为界被保留,用于以后与问题 2 的后续分枝所得到的解进行比较,结论如情况 4或5,整数规划,分支定界法图解整数规划,松弛问题 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 , X2 0,该整数规划松弛问题的解为: (X1 ,X2 )=(3/2 ,10/3) Z1 = 29/6,14X1 + 9X2 51,- 6X1 + 3X2 1,51/14,1/3,9,整数规划 Integer Programming(IP),分支定界法图解整

5、数规划,松弛问题 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 , X2 0,(3/2 ,10/3) Z1 = 29/6,B1 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X1 , X2 0,B2 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 1 X1 , X2 0,B2:解 (1,7/3 ) Z21 = 17/3,B1:解 (2,23/9 ) Z11 = 41/9,1,2,10,整数规划 Integer Programming(IP),整数规划

6、问题的求解方法 分支定界法图解整数规划,(3/2 ,10/3) Z1 = 29/6,B1 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X1 , X2 0,B2:解 (1,7/3 ) Z21 = 17/3,B1:解 (2,23/9 ) Z11 = 41/9,B11 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X2 3 X1 , X2 0,B12 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X2 2 X1 , X2 0,B12:解 (33

7、/14,2 ) Z12 = 61/14,1 2,X=2,X=3,11,整数规划 Integer Programming(IP),整数规划问题的求解方法 分支定界法图解整数规划,(3/2 ,10/3) Z1 = 29/6,B2:解 (1,7/3 ) Z21 = 17/3,B12 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X2 2 X1 , X2 0,B12:解 (33/14,2 ) Z12 = 61/14,B121 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 3 X2 2 X1 , X2 0

8、,B122 Max Z = X1 + X2 14X1 + 9X2 51 - 6X1 + 3X2 1 X1 2 X2 2 X1 , X2 0,B121:解 (3,1 ) Z121 = 4,B122:解 (2,2 ) Z122 = 4,B1:解 (2,23/9 ) Z11 = 41/9,1 2 3,12,割平面法cutting plane approach,割平面法求解整数规划问题时,若其松驰问题的最优解 X* 不满足整数要求时,则从 X* 的非整分量中选取一个,用以构造一个线性约束条件(Gomory 割平面),将其加入原松驰问题中,形成一个新的线性规划,然后求解之。其关键在于新增加的这个线性约束

9、条件将切割掉部分非整数解,至少将当前松驰问题的非整数最优解切割掉了,而不会切割掉问题的任何整数解。,13,整数规划 Integer Programming(IP),整数规划问题的求解方法 割平面法cutting plane approach 构造切割方程的步骤: 1、令 xi 是相应松驰问题的最优解中为非整数值的一个基变量,由单纯形表最终表得: xi + aik xk = bi (1 式) 其中 i Q (Q 指基变量下标集) k K (K 指非基变量下标集),14,整数规划 Integer Programming(IP),整数规划问题的求解方法 割平面法cutting plane appro

10、ach 构造切割方程的步骤: 2、将 bi 和 aik 都分解成整数部分 N (不超过 b 的最大整数)与非负真分数部分 f 之和,即: bi = Ni + fi , 其中 0 fi 1 (2 式) aik = Nik + fik ,其中 0 fik 1 例如:若 b = 2.35 ,则 N = 2 ,f = 0.35; 若 b = -1.45 ,则 N = -2 ,f = 0.55,15,整数规划 Integer Programming(IP),割平面法cutting plane approach 构造切割方程的步骤: 2、将(2 式)代入(1 式)得: xi + Nik xk - Ni =

11、 fi - fik xk (3 式) 3、提出变量为整(当然含非负)的条件: 由于(3 式)中等式左边需整,而 0 fi 1 ,故有 fi - fik xk 0 (4 式) 此即为所需切割方程。,16,整数规划 Integer Programming(IP),割平面法cutting plane approach 构造切割方程的步骤: (1)切割方程 fi - fik xk 0 真正进行了切割,至少把非整数最优解这一点切割掉了。 证明:(反证法)假设松驰问题的最优解 X* 未被切割掉,则由 fi - fik x*k 0, 又因为 x*k = 0,(因 x*k 为非基变量) 有 fi 0 ,这与

12、fi 0 矛盾。 (2)不会切割掉任何整数解,因为切割方程是由变量为整的条件提出的。,17,整数规划 Integer Programming(IP),割平面法cutting plane approach 例求解,IP Max Z = X1 + X2 - X1 + X2 1 3X1 + X2 4 X1 ,X2 0 X1 ,X2 整数,LP Max Z = X1 + X2 - X1 + X2 1 3X1 + X2 4 X1 ,X2 0,18,1、求解 LP 得到非整数最优解: X =(3/4,7/4,0,0),Max Z = 5/2,求解步骤:,19,整数规划 Integer Programmin

13、g(IP),求解步骤: 2、构造切割方程: 由 B 表中的第 2 个方程 X2 + 3/4 X3 + 1/4 X4 = 7/4 有 b2 = 7/4 = 1 + 3/4 a23 = 3/4 = 0 + 3/4 , a24 = 1/4 = 0 + 1/4 因此,切割方程为 3/4 3/4 X3 1/4 X4 0 增加松弛变量 X5 ,并将如下方程的约束条件添加到 B 表中。 - 3 X3 - 1 X4 + X5 = - 3 X5 0,20,整数规划 Integer Programming(IP),求解步骤: 3、求解新的松弛问题,21,0-1整数规划问题,0-1 变量及其应用 0-1变量作为逻辑

14、变量(Logical variable),常常被引用来表示系统是否处于某个特定的状态,或者决策变量是否取某个特定的方案。,xj =,1 当决策取方案 P j 时 0 当决策不取方案 Pj 时,22,0-1整数规划,一、项目选定(选址)问题,整数规划,在经济全球化的时代,许多公司为在全球范围内最优地配置资源(如获取廉价劳动力或原料等),要在不同地方建厂或仓库及其他服务设施,这些都要进行项目或地址的选择。在选址之前,许多侯选地点要进行分析和比较,而每个决策都涉及到一个选还是不选的问题。,案例一,某销售公司打算通过在武汉或长春设立分公司(也许两个城市都设)增加市场份额,管理层同时也计划在新设分公司的

15、城市最多建一个配送中心,当然也可以不建配送中心。经过计算,每种选择对公司收益的净现值、所需费用列在下表中,总预算投资费用不得超过20万。如何决策使总净现值最大,设 xj=,10,- 决策j问题的答案是“是” - 决策j问题的答案是“否”,max z = 18x1 + 10 x2 + 12x3+8x4,最优解 x1 =1,x2=1,案例练习,例1:某油田在10个有油气构造处要选择若干个钻探采油,设第j个构造开采时需投资aj元,投产后预计年收净益为cj元,若该油田投资的总限额为b元,问:应选择哪几个构造开采最为有利?,设 xj=,10,- 选择开采第j个构造 -不选择开采第j个构造,max z=c

16、jxj,j=1,10,ajxj b,xj0或1 (j=1,2,-,10),j=1,10,-年总收益,-投资额限制,1、表示选择性决策,若在开采时还需满足下述条件: (a)若开采8号,则必须同时开采6号; (b)若开采5号,则不许开采3号; (c) 2 号和4号至少开采一个; (d) 8 号与7号必须同时开采; (e)1号、4号、6号、9号开采时不能超过两个,试表示上述约束条件。,设 xj=,10,- 选择开采第j个构造 -不选择开采第j个构造,max z=cjxj,j=1,10,ajxj b,xj0或1 (j=1,2,-,10),j=1,10,-年总收益,-投资额限制,(a)当x8=1,x6=

17、1,x60,当x8=0,x6=1,x6=0, x8 x6,(b)当x5 =1,x3=0, x3 1,当x5 =0,x3=0, x3 =1,x5 + x3 1,(c) x2 + x4 1,(d) x8 = x7,(e) x1 + x4 + x6 + x9 2,在生产或经营过程中,某一个业务活动开展通常伴随着固定成本的发生,比如添置或起用设备,新采购材料时产生的差旅费,对工人必要培训的费用等,这些构成产品的固定成本。这时,业务活动的总成本就包括与活动数量大小相关的变动成本和起动活动的固定成本。,二 固定费用(成本)问题,案例,某工厂近期接到一批订单,要安排生产甲、乙、丙、丁四种产品,每件产品分别需

18、要原料A、B、C中的一种或几种中的若干单位,合同规定要在15天内完成,但数量不限。由于四种产品都在同一种设备上生产,且一台设备同一时间只能加工一件产品。目前,工厂只有一台正使用中的这种设备(设备1),合同期内可挤出3天来生产订单,但会产生150元的机会成本损失;还有一台长期未用的设备(设备2)可以启用,启用时要做必要的检查和修理,费用1000元;公司还考虑向邻厂租用2台(设备3,4),由于对方也在统筹使用,租期分别只能7和12天,租金分别2000和3100,工厂可以决定租一台或两台,也可以一台不租。另外,每种产品如果生产会有固定成本和变动成本,具体如下表,假设每天工作8小时,工厂最多使用3台设

19、备,问:工厂如何生产和利用设备,利润最大,241205696 150100020003100,例 应用 0-1 变量解决含互斥约束条件问题 设:工序 B 有两种方式完成 方式(1 )的工时约束为 0.3X1 + 0.5X2 150 方式(2 )的工时约束为 0.2X1 + 0.4X2 120 问题是完成工序 B 只能从两种方式中任选一种,如何将这两个互斥的约束条件统一在一个线性规划模型中呢?,三 互相排斥问题,32,例 7 应用 0-1 变量解决含互斥约束条件问题 引入 0-1 变量,y1 =,0 若工序 B 采用方式(1 )完成 1 若工序 B 不采用方式(1 )完成,y2 =,0 若工序

20、B 采用方式(2 )完成 1 若工序 B 不采用方式(2 )完成,三 互相排斥问题,33,例 7 应用 0-1 变量解决含互斥约束条件问题 于是前面两个互斥的约束条件可以统一为如下三个约束条件: 0.3X1 + 0.5X2 150 + M1y1 0.2X1 + 0.4X2 120 + M2y2 y1 + y2 = 1 其中 M1 ,M2 都是足够大的正数。,三 互相排斥问题,34,案例,因为资金和管理水平的限制,某公司想以相同的价格和不同的租期(工时)租赁另一公司甲、乙、丙、丁四个车间中的两个,来生产五种新开发的产品(A、B、C、D、E)中的最多三种。由于车间的机床和工人的经验不同,生产不同产

21、品的效率也不同,导致不同产品(任一阶段)在不同的车间生产所用的工时数不同(根据生产部的初步实验和经验判断估计出的数据见下表)另外,根据公司市场部的预测,每种产品的单位利润和在租期内最大的销售量以及各车间在租期内的总工时数等也见表),取M=1000,得X1=20,X3=23,X4=2,Z=434,0-1整数规划的解法,枚举法 隐枚举法,整数规划,指派(分配)问题,例:有一份中文产品说明书需译成英、日、德、俄四种语言,现有甲、乙、丙、丁四人都可以胜任,他们译成不同语言所需时间不同,如下表。求如何分配使所需总时间最少(每人只译一种),整数规划,指派问题的标准形式及其数学模型 指派问题的标准形式(以人

22、和事为例)是: 有 n 个人和 n 件事,已知第 i 人做第 j 事的费用为 Cij(i,j = 1,2,n),要求确定人和事之间的一一对应的指派方案,使完成这件事的总费用最少。如,指派问题(assignment problem),例:有一份中文产品说明书需译成英、日、德、俄四种语言,现有甲、乙、丙、丁四人都可以胜任,他们译成不同语言所需时间不同,如下表。求如何分配使所需总时间最少(每人只译一种),39,建立模型:,设 xij=,1,0,译英文:,x11+ x12 + x13 + x14 =1,译日文:,x21+ x22 + x23 + x24 =1,译德文:,x31+ x32 + x33 +

23、 x34 =1,译俄文:,x41+ x42 + x43 + x44 =1,甲:,x11+ x21 + x31 + x41 =1,乙:,x12+ x22 + x32 + x42 =1,丙:,x13+ x23 + x33 + x43 =1,丁:,x14+ x24 + x34 + x44 =1,xij =0或1 (i=1,2,3,4; j=1,2,3,4),Min z= aijxij(aij-效率),i=1j=1,4 4,若第i项工作交与第j个人完成,若第i项工作不交与第j个人完成,一般模型,指派问题的标准形式,令,1 当指派第 i 人完成第 j 项任务 0 当不指派第 i 人完成第 j 项任务,x

24、ij =,min z = cijxij xij = 1, j = 1,2,n xij = 1, i = 1,2,n xij = 1 或 0,41,匈牙利解法,标准的指派问题是一类特殊的 0-1 整数规划问题,可以用多种相应的解法来求解。但是,这些方法都没有充分利用指派问题的特殊性质来有效减少计算量。1955年,库恩(W.W.Kuhn)利用匈牙利数学家康尼格(D.Knig)的关于矩阵中独立零元素的定理,提出了指派问题的一种解法,由此,习惯上称之为匈牙利解法。,42,匈牙利解法的关键是利用了指派问题最优解的如下性质: 若从指派问题的系数矩阵 C = ( cij )nn 的某行(或某列)各元素分别减

25、去一个常数 k ,得到一个新的系数矩阵C = ( cij )则以 C 和 C 为系数矩阵的两个指派问题有相同的最优解。,匈牙利解法,43,步骤一: 变换系数矩阵。使其每行及每列至少有一个零元素,同时不出现负元素。 步骤二: 进行试指派,即确定独立零元素。 步骤三: 继续变换系数矩阵,然后返回步骤二。,匈牙利解法的一般步骤,44,以上例说明步骤,2 15 13 4 10 4 14 15 9 14 16 13 7 8 11 9,0 13 11 2 6 0 10 11 0 5 7 4 0 1 4 2,2 4 9 7,min,( cij )=,匈牙利解法的一般步骤,45,指派问题(assignment

26、 problem) 匈牙利解法的一般步骤 以上例说明步骤,0 13 11 2 6 0 10 11 0 4 7 4 0 1 4 2,0 0 4 2,min,0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0,= ( cij ),指派问题(assignment problem),46,以上例说明步骤,0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0,此时加圈 0 元素的个数 m = n = 4,所以得到最优解,指派问题(assignment problem),47,匈牙利解法的一般步骤 以上例说明步骤,0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0,(

27、 xij )=,指派问题(assignment problem),48,匈牙利解法的一般步骤 例,指派问题(assignment problem),49,匈牙利解法的一般步骤,12 7 9 7 9 8 9 6 6 6 7 17 12 14 9 15 14 6 6 10 4 10 7 10 9,7 6 7 6 4,5 0 2 0 2 2 3 0 0 0 0 10 5 7 2 9 8 0 0 4 0 6 3 6 5,指派问题(assignment problem),50,匈牙利解法的一般步骤,5 0 2 0 2 2 3 0 0 0 0 10 5 7 2 9 8 0 0 4 0 6 3 6 5,此时

28、加圈 0 元素的个数 m = 4, 而n = 5,所以解题没有完成。独立零元素(加圈零元素)少于 n 个,表示还不能确定最优指派方案。此时需确定能覆盖所有零元素的最少直线数目的直线集合。方法如下:,指派问题(assignment problem),51,匈牙利解法的一般步骤,对没有加圈零元素的行打号; 对所有打号行的所有含零元素的列打号; 再对已打号的列中含零元素的行打号; 重复2)和3),直到再也不能找到可以打号行或列为止; 对没有打号的行画一横线,对打号的列画一竖线,这样就得到能覆盖所有零元素的最少直线数目的直线集合。,指派问题(assignment problem),52,匈牙利解法的一

29、般步骤,5 0 2 0 2 2 3 0 0 0 0 10 5 7 2 9 8 0 0 4 0 6 3 6 5,指派问题(assignment problem),53,匈牙利解法的一般步骤 继续变换系数矩阵。其方法是在未被直线覆盖的元素中找出一个最小元素。然后在打号行各元素都减去这一最小元素,而在打号列的各元素都加上这一最小元素,以保证原来的 0 元素不变。这样得到新系数矩阵(其最优解和原问题相同)。若得到 n 个独立的 0 元素,则已得最优解,否则重复该步骤继续变换系数矩阵。,指派问题(assignment problem),54,匈牙利解法的一般步骤,5 0 2 0 2 2 3 0 0 0

30、0 10 5 7 2 9 8 0 0 4 0 6 3 6 5,最小元素= 2,7 0 2 0 2 4 3 0 0 0 0 8 3 5 0 11 8 0 0 4 0 4 1 4 3,指派问题(assignment problem),55,匈牙利解法的一般步骤,7 0 2 0 2 4 3 0 0 0 0 8 3 5 0 11 8 0 0 4 0 4 1 4 3,此时加圈 0 元素的个数 m = 5, 而n = 5,独立零元素(加圈零元素)等于 n 个,此时已得到最优解,其解矩阵为,指派问题(assignment problem),56,匈牙利解法的一般步骤,( xij )=,0 1 0 0 0 0

31、 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0,最优指派: 甲 B 乙 C 丙 E 丁 D 戊 A,指派问题(assignment problem),57,在实际应用中,常会遇到各种非标准形式的制派问题。一般的处理方法是先将其转化为标准形式,然后再用匈牙利法求解。 最大化指派问题设最大化指派问题系数矩阵 C = ( cij ) ,其中最大元素为 m 。令矩阵 B = ( bij )= ( m - cij ),则以 B 为系数矩阵的最小化指派问题和以 C 为系数矩阵的最大化指派问题有相同最优解。 人数和事数不等的指派问题若人少事多,则添加一些虚拟的“人”,其费用系数

32、取 0 ,若人多事少,则添加一些虚拟的“事”,其费用系数取 0 。,非标准形式的指派问题,58,非标准形式的指派问题 一个人可做几件事的指派问题若某个人可以做几件事,则将该人化作几个“人”来接受指派。这几个“人”做同一件事的费用系数当然都一样。 某事一定不能由某人做的指派问题若某事一定不能由某人做,则可将相应的费用系数取为足够大的数 M 。,非标准形式的指派问题,59,非标准指派问题,例:分派甲、乙、丙、丁四人完成五项任务,每人完成任务的时间如下表,请就以下要求分别求解分配情况。,1)要求每人只完成一项 2)甲完成两项,其他人每人完成一项 3)丁因某种原因不能承担A工作,其他每人一项,E必须承

33、担任务,整数规划,1)要求每人只完成一项,2)甲完成两项,其他人每人完成一项,3)丁因某种原因不能承担A工作,其他每人一项,E必须承担任务,案例练习,红豆服装厂利用三种专用设备生产衬衣,短袖衫和休闲装,已知数据如下表,已知该厂每周可用工量为150单位,可用料量为160单位,生产这三种产品的三种专用设备固定费用分别为2000,1500和1000,要求为该厂作一个周生产计划,使其获利最大?(只建模),整数规划,模型,建模练习,1、某公司生产A、B、C3种产品,售价分别为12元、7元、6元。生产每件A需1h技术服务、10h直接劳动、3kg材料;生产每件B需2h技术服务、4h直接劳动、2kg材料;生产每件C需1h技术服务、5h直接劳动、1kg材料。现在最多能提供100技术服务、700h直接劳动、400kg材料。生产成本如下表,求建立一个总利润最大的生产计划数学模型。,2、如图所示,有4个用户,每年需求量分别为D1、 D2、D3、 D4,拟在3个允许最大容量为A1、 A2、 A3的备选地点建立两处仓库,箭头指向为若在该处建仓库后可供应的用户,Cij为从i仓库至j用户单位物资调运费,设三处仓库的建设投资分别为K1、 K2、 K3,投资均匀分摊到10年回收,不计利息。单位物资在各仓库周转保管费分别为P1、 P2、 P3。问应选哪两处仓库,使每年各项费用和最少。(建模),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1