运筹学课件:第5章-整数线性规划-第1-2节

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章整数线性规划•第1节整数线性规划问题的提出•第2节分支定界解法•第3节割平面解法•第4节0-1型整数线性规划•第5节指派问题第1节整数线性规划问题的提出•在前面讨论的线性规划问题中,有些最优解可能是分数或小数,但对于某些具体问题,常有要求解答必须是整数的情形(整数解)。•例如,所求解是机器的台数、完成工作的人数或装货的车数等,分数或小数的解答就不合要求。•为了满足整数解的要求,初看起来,似乎只要把已得到的带有分数或小数的解经过“舍入化整”就可以了。但这常常是不行的,因为化整后不见得是可行解;或虽是可行解,但不一定是最优解。•因此,对求最优整数解的问题,有必要另行研究。我们称这样的问题为整数线性规划(integerlinearprogramming),简称ILP,整数线性规划是最近几十年来发展起来的规划论中的一个分支。•整数线性规划中如果所有的变数都限制为(非负)整数,就称为纯整数线性规划(pureintegerlinearprogramming)或称为全整数线性规划(allintegerlinearprogramming);如果仅一部分变数限制为整数,则称为混合整数计划(mixedintegerlinearprogramming)。•整数线性规划的一种特殊情形是0-1规划,它的变数取值仅限于0或1。本章最后讲到的指派问题就是一个0-1规划问题。•现举例说明用前述单纯形法求得的解不能保证是整数最优解。•例1:某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制如表5-1所示。问两种货物各托运多少箱,可使获得利润为最大?•表5-1货物体积(米3/箱)重量(百公斤/箱)利润(百元/箱)甲乙54252010托运限制24米313百公斤•现在我们解这个问题,设x1,x2分别为甲、乙两种货物的托运箱数(当然都是非负整数)。•这是一个(纯)整数线性规划问题,用数学式可表示为:maxz=20x1+10x2①5x1+4x2≤24②2x1+5x2≤13③(5.1)x1,x2≥0④x1,x2整数⑤它和线性规划问题的区别仅在于最后的条件⑤。现在我们暂不考虑这一条件,即解①~④(以后我们称这样的问题为与原问题相应的线性规划问题)很容易求得最优解为:x1=4.8x2=0maxz=96但x1是托运甲种货物的箱数,现在它不是整数,所以不合条件⑤的要求。•是不是可以把所得的非整数的最优解经过“化整”就可得到合于条件⑤的整数最优解呢?•如将(x1=4.8,x2=0)凑整为(x1=5,x2=0),这样就破坏了条件②(关于体积的限制),因而它不是可行解;•如将(x1=4.8,x2=0)舍去尾数0.8,变为(x1=4,x2=0),这当然满足各约束条件,因而是可行解,但不是最优解,因为当x1=4,x2=0,时z=80。但当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•表示利润的降低,这是由于变量的不可分性(装箱)所引起的。•由上例看出,将其相应的线性规划的最优解“化整”来解原整数线性规划,虽是最容易想到的,但常常得不到整数线性规划的最优解,甚至根本不是可行解。因此有必要对整数线性规划的解法进行专门研究。第2节分支定界解法•在求解整数线性规划时,如果可行域是有界的,首先容易想到的方法就是穷举变量的所有可行的整数组合,就像在图5-1中画出所有“+”号的点那样,然后比较它们的目标函数值以定出最优解。对于小型的问题,变量数很少,可行的整数组合数也是很小时,这个方法是可行的,也是有效的。•在例1中,变量只有x1和x2•由条件②,x1所能取的整数值为0、1、2、3、4共5个;由条件③,x2所能取的整数值为0、1、2共3个;它的组合(不都是可行的)数是3×5=15个,穷举法还是勉强可用的。•对于大型问题,可行的整数组合数是很大的。•例如在本章第5节的指派问题(这也是整数线性规划)中,将n项任务指派n个人去完成,不同的指派方案共有n!种,当n=10,这个数就超过300万;当n=20,这个数就超过2×1018,如果一一计算,就是用每秒百万次的计算机,也要几万年的功夫,很明显,解这样的题,穷举法是不可取的。所以我们的方法一般应是仅检查可行的整数组合的一部分,就能定出最优的整数解。•分支定界解法(branchandboundmethod)就是其中的一个。•分支定界法可用于解纯整数或混合的整数线性规划问题。在20世纪60年代初由LandDoig和Dakin等人提出。由于这方法灵活且便于用计算机求解,所以现在它已是解整数线性规划的重要方法。•设有最大化的整数线性规划问题A,与它相应的线性规划为问题B,从解问题B开始,若其最优解不符合A的整数条件,那么B的最优目标函数必是A的最优目标函数z*的上界;而A的任意可行解的目标函数值将是z*的一个下界。分支定界法就是将B的可行域分成子区域(称为分支)的方法,逐步减小和增大,最终求到z*。例2•求解Amaxz=40x1+90x2①9x1+7x2≤56②7x1+20x2≤70③(5.2)x1,x2≥0④x1,x2整数⑤解先不考虑条件⑤,即解相应的线性规划B,①~④(见图5-2),得最优解x1=4.81,x2=1.82,z0=356可见它不符合整数条件⑤。这时z0是问题A的最优目标函数值z*的上界,记作z0=。而在x1=0,x2=0时,显然是问题A的一个整数可行解,这时z=0,是z*的一个下界,记作=0,即0≤z*≤356zz分支定界法的解法•首先注意其中一个非整数变量的解,如x1,在问题B的解中x1=4.81。于是对原问题增加两个约束条件x1≤4,x1≥5。•可将原问题分解为两个子问题B1和B2(即两支),给每支增加一个约束条件,如图5-3所示。•这并不影响问题A的可行域,不考虑整数条件解问题B1和B2,称此为第一次迭代。图5-3x1≤4,x1≥5•得到最优解为:•显然没有得到全部变量是整数的解。•因z1>z2,故将改为349,那么必存在最优整数解,得到z*,并且0≤z*≤349z问题B1问题B2z1=349x1=4.00x2=2.10z2=341x1=5.00x2=1.57继续对问题B1和B2进行分解•因z1>z2,故先分解B1为两支。增加条件x2≤2者,称为问题B3;增加条件x2≥3者称为问题B4。在图5-3中再舍去x2>2与x3<3之间的可行域,•再进行第二次迭代。继续对问题B2进行分解图5-4解题的过程都列在图5-4中。从以上解题过程可得到,用分支定界法求解整数线性规划(最大化)问题的步骤为:•将要求解的整数线性规划问题称为问题A,•将与它相应的线性规划问题称为问题B。•(1)解问题B,可能得到以下情况:•①B没有可行解,这时A没有可行解,停止。•②B有最优解,并符合问题A的整数条件,B的最优解即为A的最优解,停止。•③B有最优解,但不符合问题A的整数条件,记它的目标函数值为0z(2)用观察法找问题A的一个整数可行解,一般可取xj=0,j=1,…,n,试探,求得其目标函数值,并记作。以z*表示问题A的最优目标函数值;这时有zzzz*进行迭代第一步:分支定界•分支•在B的最优解中任选一个不符合整数条件的变量xj,其值为bj,以[bj]表示小于bj的最大整数。构造两个约束条件xj≤[bj]和xj≥[bj]+1•将这两个约束条件,分别加入问题B,求两个后继规划问题B1和B2。•不考虑整数条件求解这两个后继问题。•定界•以每个后继问题为一分支标明求解的结果,与其他问题的解的结果中,找出最优目标函数值最大者作为新的上界。•从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界,若无可行解,0z第二步:比较与剪支•各分支的最优目标函数中若有小于者,则剪掉这支(用打×表示),即以后不再考虑了。若大于,且不符合整数条件,则重复第一步骤。•直到最后得到z*为止,得最优整数解xj*,j=1,…,n。zz•用分支定界法可解纯整数线性规划问题和混合整数线性规划问题。它比穷举法优越。因为它仅在一部分可行解的整数解中寻求最优解,计算量比穷举法小。若变量数目很大,其计算工作量也是相当可观的。

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功