File Exchange

## bnb

version 1.0 (138 KB) by

BNB20 solves mixed integer nonlinear optimization problems

4.05882
35 Ratings

Updated

BNB20 solves mixed integer nonlinear optimization problems. It is a branch-and-bound type algorithm.

qiang zhang

qiang zhang

Edouard Schaal

### Edouard Schaal (view profile)

Is it possible to solve continuous non convex optimization problems with this package?

Karsten Labusch

### Karsten Labusch (view profile)

When i try to start the BNBGUI I always get this error message:

Cannot find an exact (case-sensitive) match for 'bnbguicb'

The closest match is: BNBGUICB in C:\Users\User\Documents\MatlabProgramm\Hauptprogramm\bnb20\BNBGUICB.m

Krishnakumar Gopalakrishnan

### Krishnakumar Gopalakrishnan (view profile)

Does this work with black-box objective function ?

Pujun

Pujun

### Pujun (view profile)

I used this package for portfolio optimization with threshold trade constraints. Thanks Koert for posting it! One suggestion for other users: the BNB GUI does not work anymore. So if you get errors with the last rows of BNB20, you can delete them:
%if ishandle(handleupdate)
% taghandleupdate=get(handleupdate,'Tag');
% if strcmp(taghandleupdate,'update BNB GUI')
% close(handleupdate);
% end;
% end;
%
% eval(['warning ',currentwarningstate]);

It doesn't work at all!

zhneghong jin

### zhneghong jin (view profile)

fun must be a string

function f=fun(x)
f=100*(x(1)-x(2))^2+(4.5543-x(1))^2;
end

[err,fm,x]=BNB20('fun',x0,intlist,xm,Xm,A,B,Aeq,Beq,ff)

H H

### H H (view profile)

fun must be a string
Can you please let us know how to define the function?

Monique Bakker

### Monique Bakker (view profile)

M N Alam, I have the same issue of errmsg= fun must be a string.
How did you solve it?

Thanks

amna sakli

### amna sakli (view profile)

please houw to use this BNB with rosenbrock function ? what inputs should i put ? thkx

Chucolate Brownies

### Chucolate Brownies (view profile)

Dear Koert Kuipers and all user,

I have just used bnb file and I try to run it on MATLAB2012. I found error like this below.

>> BNB20

ans =

BNB needs at least 2 input arguments.

How to fix it? Could you please explain me? and How to use this code with my function?

If you have something to share, please suggest me.

M N Alam

### M N Alam (view profile)

The problem is

function f = myfun(x)
f = x(1)^2 + 2*x(2)^2;

function [c,ceq] = mycon(x)
c = 1.5/x(1) - x(2);
ceq = [];

M N Alam

### M N Alam (view profile)

I will be very much thankful to the person who can solve my problem.

When I am running the problem with the following run file within stars (***);
*****************
clc
clear all
x0=[1;2];
xstat=1;
xl=[0;0];
xu=[10;10];
a=[];
b=[];
aeq=[];
beq=[];
setts=0;
opts = optimset;
varargin=0;

[errmsg,Z,X,t,c,fail] = BNB20(@myfun,x0,xstat,xl,xu,a,b,aeq,beq,@mycon,setts,opts,varargin)

************************
The results are as follows:

errmsg =

fun must be a string.

Z =

[]

X =

[]

t =

0

c =

0

fail =

0

>>

Kindly find out the error with the codes:
Thanking you

Tseng

### Tseng (view profile)

Thank for your great job in practical BNB implementation.

I wonder does the method of B&B can always find the "optimal value" of Convex Mixed Integer Nonlinear Programming? Is there any reference or prove to above statement?

Thanks a lot.

hi,
i want to solve the flow shop scheduling with branch and bound algorithm.i can not write and write it in matlab code! can any body help me? :(

### Jehan Ziad Ghafuri (view profile)

How can I write & run this example??
%function (maxz)=-x1+4x2
%subject to
%-10x1+20x2<=22
% 5x1+10x2<=49
% x1 <= 5
%x1,x2>=0, x1&x2 are integers

And by using which file??

GLAYSSON

### GLAYSSON (view profile)

Hi,

I am using Matlab R2011b - 7.13.0.0564.

And when I type BNBGUI this message appear:

Cannot find an exact (case-sensitive) match for 'bnbguicb'.
Do you want: BNBGUICB
(in C:\MATLAB\R2011b\BNBGUICB.m)?

Error in BNBGUI (line 29)
bnbguicb('init');

What is wrong? Thanks!!!!

Hao

### Hao (view profile)

Thank you so much for providing this file. It really helps.

Charlie

### Charlie (view profile)

I had to dig into the code to get this sucker to work (sans GUI). Below is a matlab file for a function of a single variable in FuncEval with nonlinears in constraintEval. Also, note that you will get an error when it's done. You can either ignore it, or comment out the very last line of BNB20.m . If your function requires separate inputs other than x, put those in the call to BNB20 after options.

%% BNB Call
% Initialize x0, Column Vector
x0 = [1];
% BNB variable types
% Continuous for xstatus(i)=0
% Integer for xstatus(i)= 1
% Fixed for xstatus(i)=2
xstat = [1];
% this problem has no inequality constraints
A = [];
b = [];
% this problem has no equality constraints
Aeq = [];
beq = [];
% Given Bounds in problem statement
lb = [ ...
0
];
ub = [ ...
31
];
% Set settings
setts = []; % Leave as default
% Set options
options = optimset('Display','iter','TolX',1e-4,'maxSQPiter',Inf)
%% Run the BNB Code!
[errmsg,Z,X,t,c,fail] = BNB20('FuncEval',x0, ...
xstat,lb,ub,A,b,Aeq,beq,'constraintEval',setts,options)

ZHOU YANG

### ZHOU YANG (view profile)

I get the same error every time as well, and can't figure out what's going on.
who can submit a successful example?
thanks!!!

Gautham

### Gautham (view profile)

I get the same error every time as well, and can't figure out what's going on.

mhihn

### mhihn (view profile)

I'm trying to run a mixed integer nonlinear programming (MINLP) problem using BNB20. However, irrespective of the complexity of my algorithm, I'm always getting the following results. It would be great if anyone can explain this result.

*** searched 0 % of tree
*** Z : Inf
*** t : 0.0 secs
*** c : 0 cycles
*** fail : 0 cycles
Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
11 31
12 32
13 33
34
35
36
37
38
39
40
41
42
43
44
45
??? Error using ==> lt
Matrix dimensions must agree.

Error in ==> BNB20 at 247
elseif all(abs(round(x(K))-x(K))<errx) & convflag>0

Bartosz

### Bartosz (view profile)

I have a problem with this algorithm I start it like that
[errmsg,Z,X,t,c,fail] = BNB20(fun,para',[0 0 1 1 1 1]',[150 125 3 2 11 1]',ub',[],[],[],[],'problemconstraints',[],options,dmodel,SampMin,weight,constraints)
yet one of the parameters is assigned a negative value during the operation of the algorithm

liu bingbing

very good!

Luo chengjin

I think it's good!

Guo Xiaoyu

Thank you very mucn

Sun Qiyue

I can not work it out? the example is not so good and I always get the error: fun caused error

Yubin Bao

easy to use

mark elec

Does the algorithm support for non-convex problem ???

jacky LI

the example is not good enough!

wang lingli

study

Mojtaba Hajihasani

Your proposed method suffers from big problem, beacuse in sub-problem you have brought the problem into continues domain.

Dingyu Xue

Further suggestions
1) better to allow function handles
2) fine-tuning of the argument and results for integer variables:
2a. in the starting part of the function, give xlb(xstat)=ceil(xlb(xstat)); xub(xstat)=floor(xub(xstat))
2b. at the end of the function, X(xstat)=round(X(xstat))

Naresh Nandola

Puthut Wibowo

Hmmm......

Bess Bai

Thanks! is there the manual for bnb.m (matlab) file?

kinky leung

Thanks!But is it free?

sir,
can you please send the manual for bnb.m (matlab) file.

Dear sir,
Your work is excellent, we are using your work for our project.

Regards,
( BE (CSE)Final Year)
BCET Bangalore-560081

Bakhtiyar Tokpayev

vinod kumar

please provide pdf help files and pseudo codes and comments on each step.

Andrew Odjo

Atanas Chervenkov

Nguyen Quoc Vo

H hasper

George Pau

Very good basic implementation of branch and bound.

 16 Nov 2001 Found some bugs and added an example. mod desc
MATLAB 5.3 (R11)