6.4混合整数规划问题的计算机求解.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
混合整数规划问题的计算机求解整数线性问题求解 最优化问题的要求除了满足约束条件的规则外,还需要是的全部和部分自变量取整数,这类问题又称为整数规划。其中要求全部。 要求全部自变量均为整数的最优问题又称为纯整数规划问题,部分自变量要求为整数的最优化问题又称为混合整数规划问题。要求自变量只能是0或1,这类规划问题又称为0-1规划问题。 整数规划问题又分为线性整数规划问题和非线性整数规划问题。书中介绍整数规划问题是分为了:整数线性规划问题,整数非线性规划问题,0-1整数规划问题。整数线性问题求解整数线性规划的一般数学描述为Matlab中自身没有提供整数线性规划的函数,一般采用荷兰的Eindhoven科技大学Michel Berkelaar等人开发的LP_Solve包中的MATLAB支持的mex文件。函数表示为如下:intlist为整数约束标示,其第i个分量为1表示需要xi为整数。当前的版本ipslv_mex()函数不能用于MALTLAB7.*下。一般非线性整数规划问题求解在实际应用中经常需要求解非线性整数规划或混合规划问题,常用的方法是分枝定界算法。给出基于此算法编写的函数bnb20()该函数的调用格式为:[err,f,x]=bnb20(fun,x0,intlist,xm,Xm,A,B,Aeq,Beq,CFun)err为函数的错误信息字符串,x和f分别为最优解和其函数值。如果正确返回最优解,则err字符串为空字符串。该函数尚有不完全之处,一方面,接受xm和xM时,非整数的向量会导致问题;另一方面,得出的解往往不是很精确的整数,所以应该在该函数调用前后给出下面的补丁语句调用前:ix=(intlist==1);xm(ix)=ceil(xm(ix));xM(ix)=floor(xM(ix));调用后:if lengthe(err)==0,x(ix)=round(x(ix)),end一般非线性整数规划问题求解A=[0 2 1 4 2;3 4 5 -1 -1];intlist=ones(5,1);Aeq=[];Beq=[];B=[54;62];xm=[0,0,3.32, 0.678,2.57];xM=2000*ones(5,1);ix=(intlist==1);xm(ix)=ceil(xm(ix));x0=xm;[errmsg,f,X]=bnb20(c6miopt,x0,intlist,xm,xM,A,B,Aeq,Beq); if length(errmsg)==0,x(ix)=round(x(ix)),end intlist=[1,0,0,1,1];ix=(intlist==1);xm(ix)=ceil(xm(ix)); [errmsg,f,X]=bnb20(c6miopt,x0,intlist,xm,xM,A,B,Aeq,Beq); if length(errmsg)==0,X(ix)=round(X(ix)),end一般非线性整数规划问题求解x0=[1;1];xm=-100*[1;1];xM=100*[1;1]; A=[];B=[];Aeq=[];Beq=[];intlist=[1 1]; [errmsg,f,x]=bnb20(c6fun1,x0,intlist,xm,xM,A,B,Aeq,Beq); x if length(errmsg)==0,x=round(x),end; x xm=-20*[1;1];xM=20*[1;1]; [errmsg,f,x]=bnb20(c6fun1,x0,intlist,xm,xM,A,B,Aeq,Beq); if length(errmsg)==0,x=round(x),end;x0-1规划问题求解0-1规划,指自变量xi的值或者为0,或者为1。Matlab提供了一个新函数bintprog()可以用来求解0-1线性规划问题,调用格式为x=bintprog(f,A,B,Aeq,Beq)f=[-3,2,-5];A=[1 2 -1;1 4 1;1 1 0;0 4 1];B=[2;4;5;6];x=bintprog(f,A,B,[],[])0-1规划问题求解x0=[1;1;1];xm=[0;0;0];xM=[1;1;1];intlist=[1;1;1];A=[1 2 -1;1 4 1;1 1 0;0 4 1];B=[2;4;5;6];Aeq=[];Beq=[];[errmsg,f,x]=bnb20(c6fun2,x0,intlist,xm,xM,A,B,Aeq,Beq)使用bnb20求解0-1规划问题割平面法算法原理:Gommory割平面法首先求解非整数约束的线性规划,在选择一个不是整数的基变量,定义新的约束,增加到原来的约束中,增加到原来的约束中,新的约束缩小了可行域,但是保留了原问题的全部整数可行解。

文档评论(0)

有一二三 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档