第五章整数线性规划.ppt
《第五章整数线性规划.ppt》由会员分享,可在线阅读,更多相关《第五章整数线性规划.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 整数线性规划整数线性规划 第第1节节 整数线性规划问题的提出整数线性规划问题的提出 第第2节节 分支定界解法分支定界解法 第第3节节 割平面解法割平面解法 第第4节节 0-1型整数线性规划型整数线性规划 第第5节节 指指 派派 问问 题题 第第1节节 整数线性规划问题的提出整数线性规划问题的提出 在前面讨论的线性规划问题中,有些最优解可能是分数或小数,但对于某些具体问题,常有要求解答必须是整数的情形(称为整数解)。例如,所求解是机器的台数、完成工作的人数或装货的车数等,分数或小数的解答就不合要求。为了满足整数解的要求,初看起来,似乎只要把已得到的带有分数或小数的解经过“舍入化整”就
2、可以了。但这常常是不行的,因为化整后不见得是可行解;或虽是可行解,但不一定是最优解。因此,对求最优整数解的问题,有必要另行研究。我们称这样的问题为整数线性规划(integerlinearprogramming),简称ILP,整数线性规划是最近几十年来发展起来的规划论中的一个分支。 整数线性规划中如果所有的变数都限制为(非负)整数,就称为纯整数线性规划(pureintegerlinearprogramming)或称为全整数线性规划(allintegerlinearprogramming);如果仅一部分变数限制为整数,则称为混合整数计划(mixedintegerlinearprogramming)
3、。整数线性规划的一种特殊情形是0-1规划,它的变数取值仅限于0或1。本章最后讲到的指派问题就是一个0-1规划问题。 现举例说明用前述单纯形法求得的解不能保证是整数最优解。例1某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制如表5-1所示。问两种货物各托运多少箱,可使获得利润为最大?表5-1货物 体积(m3/箱) 重量(100kg/箱) 利润(100 元/箱) 甲 乙 5 4 2 5 20 10 托运限制 24m3 1300kg 现在我们解这个问题,设x1,x2分别为甲、乙两种货物的托运箱数(当然都是非负整数)。这是一个(纯)整数线性规划问题,用数学式可表示为: max
4、 z =20 x1+10 x2 5x1+4x224 2x1+5x213 (5.1) x1,x20 x1,x2整数 它和线性规划问题的区别仅在于最后的条件。现在我们暂不考虑这一条件,即解(以后我们称这样的问题为与原问题相应的线性规划问题),很容易求得最优解为:x1=4.8,x2=0,maxz=96但x1是托运甲种货物的箱数,现在它不是整数,所以不合条件的要求。 是不是可以把所得的非整数的最优解经过“化整”就可得到合于条件的整数最优解呢?如将(x1=4.8,x2=0)凑整为(x1=5,x2=0),这样就破坏了条件(关于体积的限制),因而它不是可行解;如将(x1=4.8,x2=0)舍去尾数0.8,变
5、为(x1=4,x2=0),这当然满足各约束条件,因而是可行解,但不是最优解,因为当x1=4,x2=0,时z=80. 非整数的最优解在C(4.8,0)点达到。但当x1=4,x2=1(这也是可行解)时,z=90。本例还可以用图解法来说明。见图 5-1 图中画(+)号的点表示可行的整数解。凑整的(5,0)点不在可行域内,而C点又不合于条件。为了满足题中要求,表示目标函数的z的等值线必须向原点平行移动,直到第一次遇到带“+”号B点(x1=4,x2=1)为止。这样,z的等值线就由z=96变到z=90,它们的差值 z=96-90=6 表示利润的降低,这是由于变量的不可分性(装箱)所引起的。 由上例看出,将
6、其相应的线性规划的最优解“化整”来解原整数线性规划,虽是最容易想到的,但常常得不到整数线性规划的最优解,甚至根本不是可行解。因此有必要对整数线性规划的解法进行专门研究。第第2节节 分支定界解法分支定界解法 在求解整数线性规划时,如果可行域是有界的,首先容易想到的方法就是穷举变量的所有可行的整数组合,就像在图5-1中画出所有“+”号的点那样,然后比较它们的目标函数值以定出最优解。对于小型的问题,变量数很少,可行的整数组合数也是很小时,这个方法是可行的,也是有效的。在例1中,变量只有x1和x2 由条件,x1所能取的整数值为0、1、2、3、4共5个;由条件,x2所能取的整数值为0、1、2共3个,它的
7、组合(不都是可行的)数是35=15个,穷举法还是勉强可用的。对于大型的问题,可行的整数组合数是很大的。例如在本章第5节的指派问题(这也是整数线性规划)中,将n项任务指派n个人去完成,不同的指派方案共有n!种,当n=10,这个数就超过300万;当n=20,这个数就超过21018,如果一一计算,就是用每秒百万次的计算机,也要几万年的功夫,很明显,解这样的题,穷举法是不可取的。所以我们的方法一般应是仅检查可行的整数组合的一部分,就能定出最优的整数解。分支定界解法(branch and bound method)就是其中的一个. 分支定界法可用于解纯整数或混合的整数线性规划问题。在20世纪60年代初由
8、Land Doig和Dakin等人提出。由于这方法灵活且便于用计算机求解,所以现在它已是解整数线性规划的重要方法。设有最大化的整数线性规划问题A,与它相应的线性规划为问题B,从解问题B开始,若其最优解不符合A的整数条件,那么B的最优目标函数必是A的最优目标函数z*的上界,记作;而A的任意可行解的目标函数值将是z*的一个下界。分支定界法就是将B的可行域分成子区域(称为分支)的方法,逐步减小和增大,最终求到z*。现用下例来说明:例 2 求解A max z=40 x1+90 x2 9x1+7x256 7x1+20 x270 (5.2) x1,x20 x1,x2整数 解解 先不考虑条件,即解相应的线性
9、规划B,(见图5-2),得最优解x1=4.81,x2=1.82,z0=356 可见它不符合整数条件。这时z0是问题A的最优目标函数值z*的上界,记作z0= 。而在x1=0,x2=0时,显然是问题A的一个整数可行解,这时z=0,是z*的一个下界,记作 =0,即0z*356。zzzzz分支定界法的解法 首先注意其中一个非整数变量的解,如x1,在问题B的解中x1=4.81。于是对原问题增加两个约束条件x14,x15 可将原问题分解为两个子问题B1和B2(即两支), 给每支增加一个约束条件,如图5-3所示。这并不影响问题A的可行域,不考虑整数条件解问题B1和B2,称此为第一次迭代。得到最优解为:问题
10、B1 问题 B2 z1=349 x1=4.00 x2=2.10 z2=341 x1=5.00 x2=1.57 图5-3 x14,x15 显然没有得到全部变量是整数的解。因z1z2,故将 改为349,那么必存在最优整数解,得到z*,并且0z*349z继续对问题B1和B2进行分解 因z1z2,故先分解B1为两支。增加条件x22者,称为问题B3;增加条件x23者称为问题B4。在图5-3中再舍去x22与x33之间的可行域, 再进行第二次迭代。继续对问题B2进行分解 解题的过程都列在图5-4中。 图5-4从以上解题过程可得到,用分支定界法求解整数线性规划(最大化)问题的步骤为: 将要求解的整数线性规划问
11、题称为问题A, 将与它相应的线性规划问题称为问题B。 (1)解问题B,可能得到以下情况之一。 B没有可行解,这时A也没有可行解,则停止。 B有最优解,并符合问题A的整数条件,B的最优解即为A的最优解,则停止。 B有最优解,但不符合问题A的整数条件,记它的目标函数值为0z(2) 用观察法找问题A的一个整数可行解,一般可取xj=0,j=1,n,试探,求得其目标函数值,并记作 。以z*表示问题A的最优目标函数值;这时有z_*zzz进行迭代 第一步:分支,在B的最优解中任选一个不符合整数条件的变量xj,其值为bj,以bj表示小于bj的最大整数。构造两个约束条件 xjbj和xjbj+1 将这两个约束条件
12、,分别加入问题B,求两个后继规划问题B1和B2。不考虑整数条件求解这两个后继问题。 定界,以每个后继问题为一分支标明求解的结果,与其他问题的解的结果中,找出最优目标函数值最大者作为新的上界。从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界,若无可行解,0z第二步:比较与剪支 各分支的最优目标函数中若有小于 者,则剪掉这支(用打表示),即以后不再考虑了。若大于 ,且不符合整数条件,则重复第一步骤。一直到最后得到z*为止,得最优整数解xj*,j=1,n。 用分支定界法可解纯整数线性规划问题和混合整数线性规划问题。它比穷举法优越。因为它仅在一部分可行解的整数解中寻求最优解,计算量比穷举
13、法小。若变量数目很大,其计算工作量也是相当可观的。zz第第3节节 割平面解法割平面解法 整数线性规划问题的可行域是整数点集(或称格点集),割平面解法的思路是:首先不考虑变量xi是整数这一条件,仍然是用解线性规划的方法去解整数线性规划问题,若得到非整数的最优解,然后增加能割去非整数解的线性约束条件(或称为割平面)使得由原可行域中切割掉一部分,这部分只包含非整数解,但没有切割掉任何整数可行解。这个方法就是指出怎样找到适当的割平面(不见得一次就找到),使切割后最终得到这样的可行域,它的一个有整数坐标的极点恰好是问题的最优解。这个方法是R.E.Gomory提出来的,所以又称为Gomory的割平面法。以
14、下只讨论纯整数线性规划的情形,现举例说明。例例3 3 求解 目标函数 max z=x1+x2 约束条件: -x1+x21 3x1+x24 (5-3) x1,x20 x1,x2 整数 如不考虑条件,容易求得相应的线性规划的最优解:x1=34,x2=74,maxz=104 它就是图5-5中域R的极点A,但不合于整数条件。现设想,如能找到像CD那样的直线去切割域R(图5-6),去掉三角形域ACD,那么具有整数坐标的C点(1,1)就是域R的一个极点, 如在域R上求解,而得到的最优解又恰巧在C点就得到原问题的整数解,所以解法的关键就是怎样构造一个这样的“割平面”CD,尽管它可能不是唯一的,也可能不是一步
15、能求到的。下面仍就本例说明: 在原问题的前两个不等式中增加非负松弛变量x3、x4,使两式变成等式约束: -x1+x2+x3=1 3x1+x2+x4=4不考虑条件,用单纯形表解题,见表5-2。表5-2cj 1 1 0 0 CB XB b x1 x2 x3 x4 0 0 x3 x4 1 4 -1 3 1 1 1 0 0 1 初始计算表 cj-zj 0 1 1 0 0 1 1 x1 x2 3/4 7/4 1 0 0 1 -1/4 3/4 1/4 1/5 最终计算表 cj-zj -5/2 0 0 -1/2 -1/2 从表5-2的最终计算表中,得到非整数的最优解:x1=3/4,x2=7/4,x3=x4=
16、0,max z=5/2不能满足整数最优解的要求。为此考虑将带有分数的最优解的可行域中分数部分割去,再求最优解。就可以得到整数的最优解。可从最终计算表中得到非整数变量对应的关系式:474143434141432431xxxxxx为了得到整数最优解。将上式变量的系数和常数项都分解成整数和非负真分数两部分之和 (1+0)x1+(-1+3/4)x3+1/4x4=0+3/4 x2+(3/4)x3+(1/4)x4=1+3/4 然后将整数部分与分数部分分开,移到等式左右两边,得到:43243314143431414343xxxxxxx现考虑整数条件 要求x1、x2都是非负整数,于是由条件、可知x3、x4也都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 整数 线性规划
限制150内