《第二讲整数规划与规划课件.ppt》由会员分享,可在线阅读,更多相关《第二讲整数规划与规划课件.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二讲整数规划与规划1第1页,此课件共34页哦什么是整数规划与0-1规划?n定义定义 规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。n整数规划的分类(一般指整数线性规划整数规划的分类(一般指整数线性规划)n变量全限制为整数时,称纯(完全)整数规划。n变量部分限制为整数的,称混合整数规划。1.变量只能取0或1时,称之为0-1整数规划。2第2页,此课件共34页哦例 13第3页,此课件共34页哦例例 2 背包问题背包问题4第4页,此课件
2、共34页哦 整数规划特点n(1)原线性规划有最优解,当自变量限制为整数后,其整数规划解出现下述情况:n原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致。n原线性规划最优解不全是整数,则整数规划最优解小于原线性规划最优解(max)或整数规划最优解大于原线性规划最优解(min)。n整数规划无可行解。1.(2)整数规划最优解不能按照实数最优解简单取整而获得。5第5页,此课件共34页哦整数规划求解方法分类(i)分枝定界法可求纯或混合整数线性规划。(ii)割平面法可求纯或混合整数线性规划。(iii)隐枚举法求解“0-1”整数规划:过滤隐枚举法;分枝隐枚举法。(iv)匈牙利法解决指派问题(“
3、0-1”规划特殊情形)。(v)蒙特卡洛法求解各种类型规划。6第6页,此课件共34页哦整数规划-分枝定界法n对有约束条件的最优化问题的可行解空间恰当地进行系统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界。在每次分枝后,凡是界限不优于已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。7第7页,此课件共34页哦例题演示121212975672070,0 xxxxx x 例 3 求解下述整数规划12Max4090zxx s.t.121
4、212975672070,0 xxxxx x且整12max4090zxxAB124.8092,1.8168,355.8779xxz先不考虑整数限制,即解相应的线性规划,得最优解为:8第8页,此课件共34页哦n显然它不符合整数条件显然它不符合整数条件。这时Z是问题A的最优目标函数值Z*的上界,记作 。而 显然是问题A的一个整数可行解,这时Z=0,是Z*的一个下界,记作 ,即z120,0 xxz*0356z124.8092,1.8168,355.8779xxz9第9页,此课件共34页哦分支分支n因为 当前均为非整数,故不满足整数要求,任选一个进行分枝。设选 进行分枝,把可行集分成2个子集:n因为4
5、与5之间无整数,故这两个子集内的整数解必与原可行集合整数解一致。这一步称为分枝。这两个子集的规划及求解如下:21,xx1x44.80921x514.80921x10第10页,此课件共34页哦再定界:n对问题B1再进行分枝得问题B11和B12,它们的最优解为:*0349z340,2,4:112111zxxB327.14,00.3x1.43,:122112zxB再定界:,并将B12剪枝。*340342zn对问题B2再进行分枝得问题B21和B22,它们的最优解为:083,00.1x5.44,:222121zxB22B无可行解。将 剪枝,于是可以断定原问题的最优解为:2221,BB*124,2,340
6、 xxz11第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的最优解即为A的最优解,则停止。(c)B有最优解,但不符合问题的整数条件,记它的目标函数值为 。z15第15页,此
7、课件共34页哦小结(续)nii)用观察法找问题A的一个整数可行解,一般可取 试探,求得其目标函数值,并记作 。以 表示问题的最优目标函数值;这时有 其次,进行迭代。n第一步:分枝,在B的最优解中任选一个不符合整数条件的变量xj,其值为bj,以bj表示小于bj的最大整数。构造两个约束条件:n将这两个约束条件,分别加入B问题,求两个后继规划问题B1和B2。不考虑整数条件求解这两个后继问题。n定界,以每个后继问题为一分枝标明求解的结果,与其它问题的解的结果中,找出最优目标函数值最大者作为新的上界 。从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界 ,若无作用 =0 。n第二步:比较与剪
8、枝,各分枝的最优目标函数中若有小于 者,则剪掉这枝,即以后不再考虑了。若大于 ,且不符合整数条件,则重复第一步骤。一直到最后得到 =为止。得最优整数解 。0,1,jxjnz*z*zzzjjxb 1jjxb16第16页,此课件共34页哦分析n整数规划关键是找到一下限-最大化问题(或上限-最小化问题),用来剪枝,通过观察法,我们往往可以得到这个下限或上限,但是有没有更好的办法来得到一个相对较好的值呢?n初值选取-蒙特卡洛法17第17页,此课件共34页哦MATALB求解命令n%x,y=IntLp(f,G,h,Geq,heq,lb,ub,x,id)n%整数线性规划分支定界法,可求解全整数或混合整数线性
9、规划。n%y=min f*x s.t.G*x10),这几乎是不可能的。因此常设计一些方法,只检查变量取值的组合的一部分,就能求到问题的最优解。这样的方法称为隐枚举法(Implicit Enumeration),分枝定界法也是一种隐枚举法。当然,对有些问题隐枚举法并不适用,所以有时穷举法还是必要的。25第25页,此课件共34页哦例 6123Max325zxxx12312312231232244346,01xxxxxxxxxxx x x或求解思路及改进措施:先试探性求一个可行解,易看出 满足约束条件,故为一个可行解,且相应的目标函数值为 因为是求极大值问题,故求最优解时,凡是目标值 的解不必检验是
10、否满足约束条件即可删除,因它肯定不是最优解,于是应增加一个约束条件(目标值下界):称该条件为过滤条件(Filtering Contraint)。123(,)(1,0,0)x x x3z 3z 1233253xx26第26页,此课件共34页哦从而原问题等价于:123Max325zxxx123123123122312332532244346,01xxxxxxxxxxxxxx x x或()()()()()()abcdef s.t.27第27页,此课件共34页哦从而得最优解 ,最优值 *123(,)(1,0,1)xxx*8z 28第28页,此课件共34页哦MATALB求解命令x=bintprog(f)
11、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=bintprog(.)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的分量全为
12、整数0或1,%其中N表示约束条件 Ax b中的前N个是等式,N=0时可以省略。%返回结果x是最优解,f是最优解处的函数值。29第29页,此课件共34页哦练习(一个分派问题)n有5个工人,要分派他们分别完成5项工作,每人做各项工作所消耗的时间如下表,问应如何安排工作,可使总的消耗时间最小?工 作工 人甲乙丙丁戊ABCDE535676457486756469275186830第30页,此课件共34页哦10,1,2,5ijijxi j分派第 工人完成第 工作其他111213141521222324253132333435414243444551525354555151min5684534661557
13、98.675767462811,2,511,2,501,1,2,5ijiijjijzxxxxxxxxxxxxxxxs txxxxxxxxxxxjxixi j或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
14、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 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
15、0 0 0 0 0 0 0 0 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页哦