《《运筹学》整数规划课件.ppt》由会员分享,可在线阅读,更多相关《《运筹学》整数规划课件.ppt(63页珍藏版)》请在三一办公上搜索。
1、Chapter5 整数规划(Integer Programming),整数规划的特点及应用分支定界法分配问题与匈牙利法,本章主要内容:,整数规划的特点及应用,整数规划(简称:IP)要求一部分或全部决策变量取整数值的规划问题称为整数规划。不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题。若该松弛问题是一个线性规划,则称该整数规划为整数线性规划。,整数线性规划数学模型的一般形式:,整数规划的特点及应用,整数线性规划问题的种类:,纯整数线性规划:指全部决策变量都必须取整数值的整数线性规划。混合整数线性规划:决策变量中有一部分必须取整数值,另一部分可以不取整数值的整
2、数线性规划。0-1型整数线性规划:决策变量只能取值0或1的整数线性规划。,整数规划的特点及应用,整数规划的典型例子,例5.1 工厂A1和A2生产某种物资。由于该种物资供不应求,故需要再建一家工厂。相应的建厂方案有A3和A4两个。这种物资的需求地有B1,B2,B3,B4四个。各工厂年生产能力、各地年需求量、各厂至各需求地的单位物资运费cij,见下表:,工厂A3或A4开工后,每年的生产费用估计分别为1200万或1500万元。现要决定应该建设工厂A3还是A4,才能使今后每年的总费用最少。,整数规划的特点及应用,解:这是一个物资运输问题,特点是事先不能确定应该建A3还是A4中哪一个,因而不知道新厂投产
3、后的实际生产物资。为此,引入0-1变量:,再设xij为由Ai运往Bj的物资数量,单位为千吨;z表示总费用,单位万元。则该规划问题的数学模型可以表示为:,整数规划的特点及应用,混合整数规划问题,整数规划的特点及应用,例5.2 现有资金总额为B。可供选择的投资项目有n个,项目j所需投资额和预期收益分别为aj和cj(j1,2,.,n),此外由于种种原因,有三个附加条件:若选择项目1,就必须同时选择项目2。反之不一定项目3和4中至少选择一个;项目5,6,7中恰好选择2个。应该怎样选择投资项目,才能使总预期收益最大。,整数规划的特点及应用,解:对每个投资项目都有被选择和不被选择两种可能,因此分别用0和1
4、表示,令xj表示第j个项目的决策选择,记为:,投资问题可以表示为:,整数规划的特点及应用,例5.3 指派问题或分配问题。人事部门欲安排四人到四个不同岗位工作,每个岗位一个人。经考核四人在不同岗位的成绩(百分制)如表所示,如何安排他们的工作使总成绩最好。,整数规划的特点及应用,设,数学模型如下:,要求每人做一项工作,约束条件为:,整数规划的特点及应用,每项工作只能安排一人,约束条件为:,变量约束:,整数规划的特点及应用,整数规划问题解的特征:,整数规划问题的可行解集合是它松弛问题可行解集合的一个子集,任意两个可行解的凸组合不一定满足整数约束条件,因而不一定仍为可行解。整数规划问题的可行解一定是它
5、的松弛问题的可行解(反之不一定),但其最优解的目标函数值不会优于后者最优解的目标函数值。,整数规划的特点及应用,例5.3 设整数规划问题如下,首先不考虑整数约束,得到线性规划问题(一般称为松弛问题)。,整数规划的特点及应用,用图解法求出最优解为:x13/2,x2=10/3,且有Z=29/6,现求整数解(最优解):如用舍入取整法可得到4个点即(1,3),(2,3),(1,4),(2,4)。显然,它们都不可能是整数规划的最优解。,x1,x2,3,3,(3/2,10/3),按整数规划约束条件,其可行解肯定在线性规划问题的可行域内且为整数点。故整数规划问题的可行解集是一个有限集,如右图所示。其中(2,
6、2),(3,1)点的目标函数值最大,即为Z=4。,整数规划的特点及应用,整数规划问题的求解方法:,分支定界法和割平面法 匈牙利法(指派问题),分支定界法,1)求整数规划的松弛问题最优解;若松弛问题的最优解满足整数要求,得到整数规划的最优解,否则转下一步;2)分支与定界:任意选一个非整数解的变量xi,在松弛问题中加上约束:xixi 和 xixi+1组成两个新的松弛问题,称为分枝。新的松弛问题具有特征:当原问题是求最大值时,目标值是分枝问题的上界;当原问题是求最小值时,目标值是分枝问题的下界。检查所有分枝的解及目标函数值,若某分枝的解是整数并且目标函数值大于(max)等于其它分枝的目标值,则将其它
7、分枝剪去不再计算,若还存在非整数解并且目标值大于(max)整数解的目标值,需要继续分枝,再检查,直到得到最优解。,分支定界法的解题步骤:,分支定界法,例5.4 用分枝定界法求解整数规划问题,解:首先去掉整数约束,变成一般线性规划问题(原整数规划问题的松驰问题),LP,IP,分支定界法,用图解法求松弛问题的最优解,如图所示。,x1,x2,3,(18/11,40/11),2,1,1,2,3,x118/11,x2=40/11Z=218/11(19.8)即Z 也是IP最小值的下限。,对于x118/111.64,取值x1 1,x1 2对于x2=40/11 3.64,取值x2 3,x2 4先将(LP)划分
8、为(LP1)和(LP2),取x1 1,x1 2,分支定界法,分支:,分别求出(LP1)和(LP2)的最优解。,分支定界法,先求LP1,如图所示。此时在B点取得最优解。x11,x2=3,Z(1)16找到整数解,问题已探明,此枝停止计算。,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,同理求LP2,如图所示。在C 点取得最优解。即:x12,x2=10/3,Z(2)56/318.7 Z(2)Z(1)16 原问题有比16更小的最优解,但 x2 不是整数,故继续分支。,分支定界法,在IP2中分别再加入条件:x23,x24 得下式两支:,分别求出LP21和LP22的最优解,分支定界法
9、,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,D,先求LP21,如图所示。此时D 在点取得最优解。即 x112/52.4,x2=3,Z(21)-87/5-17.4 Z(1)=-16但x112/5不是整数,可继续分枝。即 3x12。,求LP22,如图所示。无可行解,故不再分枝。,分支定界法,在(LP21)的基础上继续分枝。加入条件3x12有下式:,分别求出(LP211)和(LP212)的最优解,分支定界法,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,D,E,F,先求(LP211),如图所示。此时 在E点取得最优解。即 x12,x2=3,Z(211)
10、17找到整数解,问题已探明,此枝停止计算。,求(LP212),如图所示。此时 F在点取得最优解。即x13,x2=2.5,Z(212)31/215.5 Z(211)如对LP212继续分解,其最小值也不会低于15.5,问题探明,剪枝。,分支定界法,原整数规划问题的最优解为:x1=2,x2=3,Z*=17以上的求解过程可以用一个树形图表示如右:,LP1x1=1,x2=3Z(1)16,LPx1=18/11,x2=40/11Z(0)19.8,LP2x1=2,x2=10/3Z(2)18.5,LP21x1=12/5,x2=3Z(21)17.4,LP22无可行解,LP211x1=2,x2=3Z(211)17,
11、LP212x1=3,x2=5/2Z(212)15.5,x11,x12,x23,x24,x12,x13,分支定界法,例5.5 用分枝定界法求解,解:先求对应的松弛问题(记为LP0),用图解法得到最优解X(3.57,7.14),Z0=35.7,如下图所示。,分支定界法,10,10,松弛问题LP0的最优解X=(3.57,7.14),Z0=35.7,x1,x2,o,A,B,C,分支定界法,10,x2,o,A,B,C,LP1,LP2,3,4,LP1:X=(3,7.6),Z1=34.8,LP2:X=(4,6.5),Z2=35.5,分支定界法,10,x1,x2,o,A,B,C,LP1,LP21,3,4,LP
12、21:X=(4.33,6),Z21=35.33,6,分支定界法,10,x1,x2,o,A,C,LP1,3,4,6,LP211:X=(4,6),Z211=34,LP212:X=(5,5),Z212=35,5,LP212,分支定界法,上述分枝过程可用下图表示:,LP0:X=(3.57,7.14),Z0=35.7,LP1:X=(3,7.6)Z1=34.8,LP2:X=(4,6.5)Z2=35.5,x13,x14,LP21:X=(4.33,6)Z21=35.33,x26,LP211:X=(4,6)Z211=34,LP212:X=(5,5)Z212=35,x14,x15,LP22无可行解,x27,小结,
13、学习要点:掌握一般整数规划问题概念及模型结构 掌握分支定界法原理 能够用分支定界法求解一般整数规划问题,分配问题与匈牙利法,指派问题的数学模型的标准形式:,设n 个人被分配去做n 件工作,规定每个人只做一件工作,每件工作只有一个人去做。已知第i个人去做第j 件工作的效率(时间或费用)为Cij(i=1.2n;j=1.2n)并假设Cij 0。问应如何分配才能使总效率(时间或费用)最高?,设决策变量,分配问题与匈牙利法,指派问题的数学模型为:,分配问题与匈牙利法,克尼格定理:如果从分配问题效率矩阵aij的每一行元素中分别减去(或加上)一个常数ui,从每一列中分别减去(或加上)一个常数vj,得到一个新
14、的效率矩阵bij,则以bij为效率矩阵的分配问题与以aij为效率矩阵的分配问题具有相同的最优解。,分配问题与匈牙利法,指派问题的求解步骤:,1)变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素,即 从(cij)的每行元素都减去该行的最小元素;再从所得新系数矩阵的每列元素中减去该列的最小元素。,2)进行试指派,以寻求最优解。在(bij)中找尽可能多的独立0元素,若能找出n个独立0元素,就以这n个独立0元素对应解矩阵(xij)中的元素为1,其余为0,这就得到最优解。,分配问题与匈牙利法,找独立0元素,常用的步骤为:,从只有一个0元素的行开始,给该行中的0元素加圈
15、,记作。然后划去 所在列的其它0元素,记作;这表示该列所代表的任务已指派完,不必再考虑别人了。依次进行到最后一行。从只有一个0元素的列开始(画的不计在内),给该列中的0元素加圈,记作;然后划去 所在行的0元素,记作,表示此人已有任务,不再为其指派其他任务了。依次进行到最后一列。若仍有没有划圈的0元素,且同行(列)的0元素至少有两个,比较这行各0元素所在列中0元素的数目,选择0元素少这个0元素加圈(表示选择性多的要“礼让”选择性少的)。然后划掉同行同列的其它0元素。可反复进行,直到所有0元素都已圈出和划掉为止。,分配问题与匈牙利法,若 元素的数目m 等于矩阵的阶数n(即:mn),那么这指派问题的
16、最优解已得到。若m n,则转入下一步。,3)用最少的直线通过所有0元素。其方法:,对没有的行打“”;对已打“”的行中所有含元素的列打“”;再对打有“”的列中含 元素的行打“”;重复、直到得不出新的打号的行、列为止;对没有打号的行画横线,有打号的列画纵线,这就得到覆盖所有0元素的最少直线数 l。,注:l 应等于m,若不相等,说明试指派过程有误,回到第2步,另行试指派;若 lm n,表示还不能确定最优指派方案,须再变换当前的系数矩阵,以找到n个独立的0元素,为此转第4步。,分配问题与匈牙利法,4)变换矩阵(bij)以增加0元素在没有被直线通过的所有元素中找出最小值,没有被直线通过的所有元素减去这个
17、最小元素;直线交点处的元素加上这个最小值。新系数矩阵的最优解和原问题仍相同。转回第2步。,分配问题与匈牙利法,例5.6 有一份中文说明书,需译成英、日、德、俄四种文字,分别记作A、B、C、D。现有甲、乙、丙、丁四人,他们将中文说明书译成不同语种的说明书所需时间如下表所示,问如何分派任务,可使总时间最少?,分配问题与匈牙利法,解:1)变换系数矩阵,增加0元素。,5,2)试指派(找独立0元素),找到 3 个独立零元素 但 m=3 n=4,分配问题与匈牙利法,3)作最少的直线覆盖所有0元素,独立零元素的个数m等于最少直线数l,即lm=3n=4;,4)没有被直线通过的元素中选择最小值为1,变换系数矩阵
18、,将没有被直线通过的所有元素减去这个最小元素;直线交点处的元素加上这个最小值。得到新的矩阵,重复2)步进行试指派,分配问题与匈牙利法,试指派,得到4个独立零元素,所以最优解矩阵为:,即完成4个任务的总时间最少为:241+8=15,分配问题与匈牙利法,例5.7 已知四人分别完成四项工作所需时间如下表,求最优分配方案。,分配问题与匈牙利法,解:1)变换系数矩阵,增加0元素。,2)试指派(找独立0元素),独立0元素的个数为4,指派问题的最优指派方案即为甲负责D工作,乙负责B工作,丙负责A工作,丁负责C工作。这样安排能使总的工作时间最少,为4491128。,分配问题与匈牙利法,例5.8 已知五人分别完
19、成五项工作耗费如下表,求最优分配方案。,分配问题与匈牙利法,-1,-2,解:1)变换系数矩阵,增加0元素。,分配问题与匈牙利法,2)试指派(找独立0元素),独立0元素的个数l45,故画直线调整矩阵。,分配问题与匈牙利法,选择直线外的最小元素为1;直线外元素减1,直线交点元素加1,其他保持不变。,分配问题与匈牙利法,l=m=4 n=5,选择直线外最小元素为1,直线外元素减1,直线交点元素加1,其他保持不变,得到新的系数矩阵。,分配问题与匈牙利法,总费用为=5+7+6+6+4=28,注:此问题有多个最优解,分配问题与匈牙利法,总费用为=7+9+4+3+5=28,分配问题与匈牙利法,总费用为=8+9
20、+4+3+4=28,分配问题与匈牙利法,课堂练习:用匈牙利法求解下列指派问题。,练习1:,练习2:,分配问题与匈牙利法,48,21,答案:,分配问题与匈牙利法,非标准型的指派问题:,匈牙利法的条件是:模型求最小值、效率cij0。当遇到各种非标准形式的指派问题时,处理方法是先将其转化为标准形式,然后用匈牙利法来求解。,分配问题与匈牙利法,1.最大化指派问题,处理方法:设m为最大化指派问题系数矩阵C中最大元素。令矩阵B(m-cij)nn则以B为系数矩阵的最小化指派问题和原问题有相同的最优解。,例5.9 某人事部门拟招聘4人任职4项工作,对他们综合考评的 得分如下表(满分100分),如何安排工作使总
21、分最多。,分配问题与匈牙利法,解:M95,令,用匈牙利法求解C,最优解为:,即甲安排做第二项工作、乙做第三项、丙做第四项、丁做第三项,最高总分Z92959080357,分配问题与匈牙利法,2.不平衡的指派问题,当人数m大于工作数n时,加上mn项虚拟工作,例如:,当人数m小于工作数n时,加上nm个人,例如,分配问题与匈牙利法,3.一个人可做几件事的指派问题,若某人可做几件事,则将该人化作相同的几个“人”来接受指派,且费用系数取值相同。,例如:丙可以同时任职A和C工作,求最优指派方案。,分配问题与匈牙利法,4.某事一定不能由某人做的指派问题,将该人做此事的效率系数取做足够大的数,可用M表示。,例5.10 分配甲、乙、丙、丁四个人去完成A、B、C、D、E五项任务。每个人完成各项任务的时间如表所示。由于任务数多于人数,考虑任务E必须完成,其他4项中可任选3项完成。试确定最优分配方案,使完成任务的总时间最少。,分配问题与匈牙利法,解:1)这是不平衡的指派问题,首先转换为标准型,再用匈牙利法求解。2)由于任务数多于人数,所以假定一名虚拟人,设为戊。因为工作E必须完成,故设戊完成E的时间为M(M为非常大的数),其余效率系数为0,则标准型的效率矩阵表示为:,分配问题与匈牙利法,用匈牙利法求出最优指派方案为:,即甲B,乙D,丙E,丁A,任务C放弃。最少时间为105。,