MILANO:Mixed-Integer Linear and Nonlinear Optimizer
MILANO is a Matlab-based solver for mixed-integer linear and nonlinear programming problems.
It uses a branch-and-bound method for handling integer variables, and an interior-point
method for solving the linear and nonlinear relaxations. The warmstarting scheme is
based on the primal-dual penalty framework of Benson and Shanno, as documented
here and here.
MILANO is still in development, but available for testing to the research community. Feel
free to contact me with any questions and bug reports.
- The source for MILANO (Version 1.4, May 2012) is available as a gzipped tarball of Matlab .m files. You can download it
here. The Branch-and-Bound code is in the directory MILANO-BB and the Outer Approximation code
is in the director MILANO-OA.
- You will also need to download the linear algebra routines, which are available here. They are common to both versions of MILANO (BB and OA) and can be placed in any directory in the path.
- Here is an example for building models to solve with MILANO.
The code is called as [x,fval,exitflag] = milano(f, gradf, g, jac, hessn, intflag, K), where
intflag is a 0-1 array indicating which variables are binary-valued, and K includes information
on the cone, similar to SeDuMi.
- Here are additional examples from portfolio optimization problems with discrete decisions.
The development of this page and all posted materials was supported by
NSF Grant CCF-0725692. Other materials are available here