1、1,例1、(生产计划问题)某厂在一个计划期内拟生产甲、乙两种大型设备,生产过程中有A、B两种原材料的供应受到严格限制。可供原料总量、每台设备所需原料的数量及利润如下表所示,问该厂应如何安排生产使总利润最大。,第3章 整数线性规划,2,3,例2、某昼夜服务的公交线路每天各时间区段内 所需司机和乘务人员数如下: 班次 时间 所需人数6:00 10:00 6010:0014:00 7014:0018:00 6018:0022:00 2022:002:00 202:00 6:00 30设司乘人员在各时间段一开始时上班,并连 续工作8小时,问该公司线路至少应配备多少司 乘人员。,4,解:设x1, x2
2、,x3,x6为各班新上班人数。 目标函数:minZ=x1+x2+x3+x4+x5+x6约束条件:,5,一、整数规划问题 1、整数规划模型的一般形式:,整数规划分为: (1)纯整数规划; (2)混合整数规划; (3)0-1整数规划 。,6,、解的特点,结论:PIP的最优解“不优于”其松弛问题的最优解。,7,二、割平面法,1、基本思想:先不考虑整数约束,求解松弛问题LP,若不是整数解,则不断增加约束,割掉原可行域中不含整数解的部分,最终得到一个具有若干整数顶点的可行域,其中有一个顶点为LP的整数解。适用于求解纯整数规划问题。 2、基本步骤: (1)求解松弛问题,若为整数解或无解,停止; (2)增加
3、线性约束,对可行域进行“切割”,去掉不含整数的可行域。,8,3、求法:,9,例1、用割平面法求解整数规划问题:,10,最优表:,(2)构造割平面方程:,11,12,13,14,4、切割的几何意义:,15,16,三、分枝定界法可解:纯整数规划、混合整数规划问题基本思路:先求松弛问题的最优解,若不是整数解,则添加两个约束条件,舍弃一部分非整数的可行解,并将原松弛问题分解为两个子问题。分枝后,某些整数点就有可能处于可行域的边界上,有机会找到最优解。,17,例1、用分枝定界法求解整数规划问题:,解:(1)求解松弛问题L:最优解:,18,(2)分枝:对L分别增加约束:将 L 分解为两个子问题 L1,L2
4、原可行域 D 变为 D1,D2,19,(3)继续对L1分解: 添加约束:将 L1 分解为两个子问题 L3,L4,20,(4)继续对L2分解: 添加约束:将 L2 分解为两个子问题 L5,L6,21,22,优点:可解纯整数规划、混合整数规划问题。 优于穷举法,仅在一部分可行的N解中寻找最优解。 缺点:若变量数目很大,计算工作量很大,可结合割平面法使用。,23,四、01整数规划一般表示式:,24,例1、(投资选择问题)某公司有n个拟选择的投资项目,其中项目j所需投资额为aj,期望收益为cj ,j=1,2,n。项目之间有下述联系:()项目,和至少选两项; ()选项目,则必选项目,反之不一定; ()项
5、目与项目要么同时选中,要么同时不被选中。该公司总共筹集资金为万元,问怎样选择项目,才使收益最大? 解:,25,01整数规划的解法:(只介绍小规模的)1、穷举法:n个变量,2n个组合。2、隐枚举法:不全检查,只检查一部分。,26,例2、求解01整数规划:,27,最优解: x2=0 ,x1 =1,x3 =1,28,五、指派问题指派n个人去完成n项不同的任务,如何给每个人分配任务,使总效率最高。,29,例1、今欲指派甲乙丙丁四人加工ABCD四种不同的零件, 每人加工四种零件所需要的时间如下表所示,问应该派谁加 工何种零件,可使总的花费时间最少。,30,31,32,33,3.3 指派问题及其解法,当指
6、派第i人去完成第j项工作 否则,引例:假设有4个人去完成4项任务,每个人由于技术、专长不同,完成任务的时间如下表,且规定每人只能做一项工作,每项工作只能由一人完成,问应如何分配任务使总费用最小?,34,35,诸如此类,有n项任务,恰好有n个人可承担这些任务,但由于每人的技术专长不同,完成任务的效率(所费时间不同,为使完成n项任务的总效率最高(即所需总时间最少),应如何指派(分派)人员的问题统称为指派(分派)问题。,一、指派问题的数学模型及其特点,1.数学模型:,36,2.特点(1)给定一个指派问题时,必须给出效率矩阵(系数矩阵)C=(Cij)nxn,且Cij0,因此必有最优解( )。,(2)指
7、派问题是一种特殊的平衡运输问题,由于模型结构的特殊性(看作每个产地的产量均为1,每个销地的销量均为1),故可用更为简便的匈牙利算法进行求解。,(3)若从效率矩阵(Cij)nxn的一行(列)各元素中分别减去该行(列)的最小元素,得到的新效率矩阵(bij)nxn不改变原指派问题的最优解。,这条性质可用如下语言来解释,37,对同一项工作(任务)j来说,同时提高或降低每人相同的效率(常数ti),不影响其最优指派;同样,对同一个人i来说,完成各项工作的效率都提高或降低相同的效率(常数dj),也不影响其最优指派。将效率矩阵C=(Cij)nn变换后,得到新的效率矩阵(bij)nxn,其中bij=Cij+ti
8、+dj (对所有的i,j),38,匈牙利法是求解指派问题的一种好算法,它只能求解目标函数为最小化的情况,它由匈牙利数学家柯尼格(D.Konig)提出,因此而得名。,二、指派问题的解法匈牙利法,这说明Z与Z同时达到最小值。因而最优解相同。,2.匈牙利法的计算步骤见P88-89,1、匈牙利法的基本思想匈牙利法主要基于指派问题的第(3)个特点。即从效率矩阵的每行或每列减去一个常数,指派问题的最优解不变。由此,我们可以让每行或每列减去一个数后,出现0元素,然后,再给费用为0元素的相应变量指派为1,以使变换后的目标函数为0,从而达到最优。,39,例1: 用匈牙利法求解费用矩阵如下的指派问题.,40,例2: 用匈牙利法求解费用矩阵如下的指派问题.,41,