《第二讲整数规划与规划.ppt》由会员分享,可在线阅读,更多相关《第二讲整数规划与规划.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二讲整数规划与规划1现在学习的是第1页,共34页什么是整数规划与0-1规划?n定义定义 规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。n整数规划的分类(一般指整数线性规划整数规划的分类(一般指整数线性规划)1.变量全限制为整数时,称纯(完全)整数规划。2.变量部分限制为整数的,称混合整数规划。3.变量只能取0或1时,称之为0-1整数规划。2现在学习的是第2页,共34页例 13现在学习的是第3页,共34页例例 2 背包问题背包问题
2、4现在学习的是第4页,共34页 整数规划特点n(1)原线性规划有最优解,当自变量限制为整数后,其整数规划解出现下述情况:1.原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致。2.原线性规划最优解不全是整数,则整数规划最优解小于原线性规划最优解(max)或整数规划最优解大于原线性规划最优解(min)。3.整数规划无可行解。n(2)整数规划最优解不能按照实数最优解简单取整而获得。5现在学习的是第5页,共34页整数规划求解方法分类(i)分枝定界法可求纯或混合整数线性规划。(ii)割平面法可求纯或混合整数线性规划。(iii)隐枚举法求解“0-1”整数规划:过滤隐枚举法;分枝隐枚举法。(i
3、v)匈牙利法解决指派问题(“0-1”规划特殊情形)。(v)蒙特卡洛法求解各种类型规划。6现在学习的是第6页,共34页整数规划-分枝定界法n对有约束条件的最优化问题的可行解空间恰当地进行系统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界。在每次分枝后,凡是界限不优于已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。7现在学习的是第7页,共34页例题演示例 3 求解下述整数规划 s.t.AB先不考虑整数限制,即解相应的线性规划,得最
4、优解为:8现在学习的是第8页,共34页n显然它不符合整数条件显然它不符合整数条件。这时Z是问题A的最优目标函数值Z*的上界,记作 。而 显然是问题A的一个整数可行解,这时Z=0,是Z*的一个下界,记作 ,即9现在学习的是第9页,共34页分支分支n因为 当前均为非整数,故不满足整数要求,任选一个进行分枝。设选 进行分枝,把可行集分成2个子集:n因为4与5之间无整数,故这两个子集内的整数解必与原可行集合整数解一致。这一步称为分枝。这两个子集的规划及求解如下:10现在学习的是第10页,共34页再定界:n对问题B1再进行分枝得问题B11和B12,它们的最优解为:再定界:,并将B12剪枝。n对问题B2再
5、进行分枝得问题B21和B22,它们的最优解为:无可行解。将 剪枝,于是可以断定原问题的最优解为:11现在学习的是第11页,共34页0=Z*=355.8799340=Z*=355.8799340=Z*=341.412现在学习的是第12页,共34页13现在学习的是第13页,共34页14现在学习的是第14页,共34页小结n从以上解题过程可得用分枝定界法求解整数规划(最大化)问题的步骤为:n首先,将要求解的整数规划问题称为问题A,将与它相应的线性规划问题称为问题B。ni)解问题B可能得到以下情况之一:(a)B没有可行解,这时A也没有可行解,则停止 (b)B有最优解,并符合A问题的整数条件,B的最优解即
6、为A的最优解,则停止。(c)B有最优解,但不符合问题的整数条件,记它的目标函数值为 。15现在学习的是第15页,共34页小结(续)nii)用观察法找问题A的一个整数可行解,一般可取 试探,求得其目标函数值,并记作 。以 表示问题的最优目标函数值;这时有 其次,进行迭代。n第一步:分枝,在B的最优解中任选一个不符合整数条件的变量xj,其值为bj,以bj表示小于bj的最大整数。构造两个约束条件:n将这两个约束条件,分别加入B问题,求两个后继规划问题B1和B2。不考虑整数条件求解这两个后继问题。n定界,以每个后继问题为一分枝标明求解的结果,与其它问题的解的结果中,找出最优目标函数值最大者作为新的上界
7、 。从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界 ,若无作用 =0 。n第二步:比较与剪枝,各分枝的最优目标函数中若有小于 者,则剪掉这枝,即以后不再考虑了。若大于 ,且不符合整数条件,则重复第一步骤。一直到最后得到 =为止。得最优整数解 。16现在学习的是第16页,共34页分析n整数规划关键是找到一下限-最大化问题(或上限-最小化问题),用来剪枝,通过观察法,我们往往可以得到这个下限或上限,但是有没有更好的办法来得到一个相对较好的值呢?n初值选取-蒙特卡洛法17现在学习的是第17页,共34页MATALB求解命令n%x,y=IntLp(f,G,h,Geq,heq,lb,ub,
8、x,id)n%整数线性规划分支定界法,可求解全整数或混合整数线性规划。n%y=min f*x s.t.G*x10),这几乎是不可能的。因此常设计一些方法,只检查变量取值的组合的一部分,就能求到问题的最优解。这样的方法称为隐枚举法(Implicit Enumeration),分枝定界法也是一种隐枚举法。当然,对有些问题隐枚举法并不适用,所以有时穷举法还是必要的。25现在学习的是第25页,共34页例 6求解思路及改进措施:1.先试探性求一个可行解,易看出 满足约束条件,故为一个可行解,且相应的目标函数值为 2.因为是求极大值问题,故求最优解时,凡是目标值 的解不必检验是否满足约束条件即可删除,因它
9、肯定不是最优解,于是应增加一个约束条件(目标值下界):称该条件为过滤条件(Filtering Contraint)。26现在学习的是第26页,共34页从而原问题等价于:s.t.27现在学习的是第27页,共34页从而得最优解 ,最优值 28现在学习的是第28页,共34页MATALB求解命令x=bintprog(f)x=bintprog(f,A,b)x=bintprog(f,A,b,Aeq,beq)x=bintprog(f,A,b,Aeq,beq,x0)x=bintprog(f,A,b,Aeq,Beq,x0,options)x,fval=bintprog(.)x,fval,exitflag=bin
10、tprog(.)x,fval,exitflag,output=bintprog(.)nx,f=Lp01_e(c,A,b,N)%枚举法nx,f=Lp01_ie(c,A,b,N)%隐枚举法%Lp01_e和Lp01_ie分别为枚举法和隐枚举法%求解0-1线性规划问题%min f=c*x,s.t.A*x=b,x的分量全为整数0或1,%其中N表示约束条件 Ax b中的前N个是等式,N=0时可以省略。%返回结果x是最优解,f是最优解处的函数值。29现在学习的是第29页,共34页练习(一个分派问题)n有5个工人,要分派他们分别完成5项工作,每人做各项工作所消耗的时间如下表,问应如何安排工作,可使总的消耗时间
11、最小?工 作工 人甲乙丙丁戊ABCDE535676457486756469275186830现在学习的是第30页,共34页31现在学习的是第31页,共34页c=5 6 8 4 5 3 4 6 6 1 5 5 7 9 8 6 7 5 7 6 7 4 6 2 8;A=1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1
12、0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
13、0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1;b=1;1;1;1;1;1;1;1;1;1;x0 f0=bintprog(c,A,b);nX0=1 0 0 00 0 0 00 1 0 10 0 0 00 1 0 00 0 0 10 即是:x11=x25=x32=x43=x54=1,其它全为0 f0=1832现在学习的是第32页,共34页蒙特卡洛法(随机取样法)n前面介绍的常用的整数规划求解方法,主要是针对线性整数规划而言,而对于非线性整数规划目前尚未有一种成熟而有效的求解方法,因为非线性规划本身的通用有效解法尚未找到,更何况是非线性整数规划。n然而,尽管整数规划由于限制变量为整数而增加了难度;然而又由于整数解是有限个,于是为枚举法提供了方便。当然,当自变量维数很大和取值范围很宽情况下,企图用显枚举法(即穷举法)计算出最优值是不现实的,但是应用概率理论可以证明,在一定的计算量的情况下,完全可以得出一个满意解。33现在学习的是第33页,共34页见附录34现在学习的是第34页,共34页