File Exchange

image thumbnail

mixed-integer LP

version 1.0 (3.67 KB) by

This function solves the mixed integer linear programming problems.

23 Ratings



No License

This function solves the mixed integer linear programming problems. It uses the linprog.m function that comes with the optimization toolbox of MATLAB. It employs the branch and bound algorithm. It uses depth first search.

Comments and Ratings (35)

y li

y li (view profile)

when solving milp, I got infeasible solution!


RK (view profile)


RK (view profile)

Hi Amani,

Click on the tag ( general integer linear programming), then you will see the code.


Amani mahdy

why i cannot download it ><


Thank you very much for the code.It saved a lot of my time.For binary integer (0,1) problems , just set the upper and lower bound as 0 and 1.

It was very helpful, Thanks


Ziba (view profile)

Thank you very much

mostafa amer

how to u use?



thank you very much!

Marino Pagan

Thank you!

Try a large scale Integer linear programming problem (e.g. 100000 variable). Because of rec function you will get the following error.

Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.

Error in optimget>optimgetfast
is there any way to fix it ?

It does not work for only 2 integer variables. Please bother to at least understand the syntax. M is a vector which denotes the indices of 'x' which are integers.


Tom (view profile)

what datatype do the inputs have to be? I've tried all except 'e' being single, double, int16/32/64, uint16/32/64 with no luck...i keep getting the error message 'Undefined function 'IP1' for input arguments of type 'XXXX'.'


Naveen (view profile)

some of my variables are binary integers (0 or 1). how can i specify them by using this function?


Varun (view profile)

Does this code work for only 2 variable problems???


Varun (view profile)

I used the code for a model but I got the following error- Please Comment on the same:

??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
Error in ==> IP>rec at 86
Error in ==> IP at 36
[x,val,status,b]=rec(f,A,b,Aeq,beq,lb,ub,x0,val0,M,e,bound); % a recursive function that processes the BB tree
Error in ==> Full at 573
[x v s]= IP(f,A,b,Aeq,beq,lb,ub,M,e)

I am getting very close to my deadline so a fast solution would be appreciated.

Ez Zaza

Can you provide the code for finding 0/1 optimization? Thank you

Bojan Oslaj

Arendo B

Many Thanks, but for some example if i chang the arrangment of rows for A(and b) or Aeq(and beq), the result is changed. for exapmle when the A or Aeq are very narrow. (the columns are more than rows)

P Banerjee

I spent 5 days trying to write my code on similar lines to the way bintprog is written and finally I gave up. This free code is simply very good and serves all my purposes.

Hanen Hanna

akro makro

sun bo

This is a very good function However m=1 or 2 respectively mean?

3adel Emam

it solves a problem with 2 integer variables only. what if we have more continues or discrete variables?
the other thing is the MILP function has to create and search the whole branch and bound tree,not just two subproblems.

Altaf Alfarhan

IP function is excellent for solving pure integer linear programming problems.
It was very helpful for me as a student.

David Zeng

Only one word, Excellent!

Vincenzo Manzoni

I am an italian student of engineering. Thanks a lot for your Matlab function: it works very good.

Ruoyu Cheng

Based on the solution to several test MILP problems, I would like to say that this function is rather valuable for academic studies on mixed-integer linear programming.
The interested researchers can conveniently modify the file to adapt to their own purposes, .e.g., to incorporate more advanced techniques.

zhang lipu

i am a teacher from china.
tks a lot.

Toni Jarimo


An example of how to use the function is added

MATLAB Release
MATLAB 6.5 (R13)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video