QQ登录

只需要一步,快速开始

 注册地址  找回密码

tag 标签: several

相关日志

分享 bnb20工具箱版
子夜虚竹 2013-7-24 17:49
bnb20工具箱版本比较老,很多地方与Maltab新版本不兼容,甚至没法使用,不建议一般用户使用 附件中提供了4个版本的Matlab中的bnb20函数,第一个是5.3版本的(提供了GUI界面,而其他三个没有),建议下载最新版本的bnb_ml70.rar 该工具箱的主要功能是完成,一般非线性整数规划 在实际应用着经常需要求解非线性整数规划或混合规划问题,该领域中的一种常用的算法是分支定界(branch and bound)算法,但是matlab工具箱中没有相关的函数。荷兰Groningen大学的Koert Kuipers编写的的BNB20工具箱可以用来求解一般非线性整数规划问题。 % BNB20 Finds the constrained minimum of a function of several possibly integer variables. % Usage: = % BNB20(fun,x0,xstatus,xlb,xub,A,B,Aeq,Beq,nonlcon,settings,options,P1,P2,...) % % BNB solves problems of the form: % Minimize F(x) subject to: xlb = x0 =xub % A*x = B Aeq*x=Beq % C(x)=0 Ceq(x)=0 % x(i) is continuous for xstatus(i)=0 % x(i) integer for xstatus(i)= 1 % x(i) fixed for xstatus(i)=2 注意:在使用该工具箱之前请保证安装了优化工具箱,由于该工具箱需要调用Matlab中的fmincon函数 下面给出一个例子说明bnb20的使用方法 对著名的Rosenbrock函数稍加修改,使得下面的方程 %===================================主调函数=================================== %一般非线性整数型优化问题 %bnb20工具箱优化工具箱使用实例说明 %建议使用最新版本的,老版本会出现不兼容 %平台Matlab7.6 for windows %使用程序bnb20_7.0 clc clear disp('按任意键开始执行') pause(); display('正在求解........') %目标函数,注意必须是字符串(就是M函数名),不支持inline和@()函数 objfun= 'objfun'; %初值,必须是列向量 x0= '; %变量类型,0为实数,1为整数,2为常数 xstatus= '; %边界,必须和x0具有相同的size,同时如果说变量的类型是整数,那么对应的边界也必须是整数,即使给出的边界不是,也要将它改为最近的整数 xlb= -100* '; xub= 100* '; %线性不等式约束 A= ; %线性等式约束 Aeq = ; %非线性约束,必须是字符串 nonlcon= 'nonlcon'; %相关一些设置,具体看说明 settings= = bnb20(objfun,x0,xstatus,xlb,xub,A,b,Aeq,beq,nonlcon,settings,options) %调用优化工具箱验证下 = fmincon(objfun,x0,A,b,Aeq,beq,xlb,xub,nonlcon,options) %===================================bnb20工具箱的运行结果=================================== Branch and Bound completed time elapsed: 0.1 secs total cycles: 9 cycles cycles failed: 0 cycles response value at optimum: 9.8479e+000 optimum design points for subproblem: 1.4181 2.0000 errmsg = '' Z = 9.8479 X = 1.4181 2.0000 t = 0.1247 c = 10 fail = 0 %===================================优化工具箱的运行结果=================================== x = 1.5434 2.3705 fval = 9.0791 exitflag = 1 output = iterations: 8 funcCount: 39 lssteplength: 1 stepsize: 1.5650e-006 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search' firstorderopt: 5.8883e-007 constrviolation: 3.3005e-012 message: %注意到了,两个工具箱的运行结果不一样,这是因为我们在bnb20中设置x2必须是整数,可是优化工具箱中没有如此限制 复制代码%===================================目标函数=================================== function f=objfun(x) f=100.*(x(2)-x(1).^2).^2+(4.5543-x(1)).^2; 复制代码%===================================非线性约束=================================== function = nonlcon(x) %nonlinear inequality constraints c = -8.63*x(1)+x(2)^3; %nonlinear equality constraints ceq=[]; 复制代码
个人分类: matlab|667 次阅读|0 个评论
qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-5-23 20:35 , Processed in 0.217456 second(s), 24 queries .

回顶部