MINLP Solver Software
Michael R. Bussieck and Stefan Vigerske
GAMS Development Corp., 1217 Potomac St, NW Washington, DC 20007, USA
mbussieck@gams.com, svigerske@gams.com

March 10, 2014

Abstract
In this article we give a brief overview of the start-of-the-art in software for the solutionof mixed integer nonlinear programs (MINLP). We establish several groupings with respect
to various features and give concise individual descriptions for each solver. The provided
information may guide the selection of a best solver for a particular MINLP problem.
Keywords: mixed integer nonlinear programming, solver, software, MINLP, MIQCP

1Introduction

The general form of an MINLP is
minimizef (x, y)subject to g(x, y) ≤ 0

(P)

x∈X
y∈Y

integer

The function f : Rn+s → R is a possibly nonlinear objective function and g : Rn+s → Rm
a possibly nonlinear constraint function. Most algorithms require the functions f and g to
be continuous and differentiable, but some may even allow for singular discontinuities. The
variables x and y are the decision variables, where y is required to be integer valued. The
sets X ⊆ Rn and Y ⊆ Rs are bounding-box-type restrictions on the variables. Additionallyto integer requirements on variables, other kinds of discrete constraints are commonly used.
These are, e.g., special-ordered-set constraints (only one (SOS type 1) or two consecutive(SOS type 2) variables in an (ordered) set are allowed to be nonzero) [8], semicontinuous
variables (the variable is allowed to take either the value zero or a value above some bound),semiinteger variables (like semicontinuous variables, but with an additional integer restriction), and indicator variables (a binary variable indicates whether a certain set of constraints
has to be enforced). In all cases it is possible to reformulate such constraints into a standard
form by introducing additional variables and linear constraints. The purely continuous case(s = 0) is not considered here, c.f. the chapter titled “NLP Software” for an overview.
Computational tractability depends significantly on whether the functions f (x, y) andg(x, y) are convex or not, c.f. Sec. 3.3. In this chapter, we say an MINLP is convex if bothf (x, y) and g(x, y) are convex over X × Y . Otherwise the MINLP is said to be nonconvex.
1

Note that some solvers for convex MINLPs can also be applied under less strict notions ofconvexity, e.g., to the case where the set defined by the constraints g(x, y) ≤ 0 is convex, or
where the objective function and constraints are only pseudo-convex [70]. (A differentiable
function h : X → R is pseudo-convex on a convex set X ⊆ Rn if for every x, y ∈ X withh(x) < h(y) it follows that h∇h(y), x − yi < 0. An important property of a pseudo-convex
function is the convexity of its level-sets.)

2

History

To the best of our knowledge, the earliest commercial software package that could solve
MINLP problems was SCICONIC in the mid 1970’s [7, 29, 59]. Rather than handling nonlinearities directly, linked Special-Ordered-Set variables provided a mechanism to represent
low dimensional nonlinear terms by a piecewise linear approximation and thus allowed touse mixed-integer linear programming (MIP) to obtain solutions to an approximation of the
MINLP. In the mid 1980’s Grossmann and Kocis developed DICOPT, a general purpose
algorithm for convex MINLP based on the outer approximation method [19]. Since then, anumber of academic and commercial codes for convex MINLP have emerged, either based onouter approximation using MIP relaxations [19], an integration of outer approximation intoa linear programming (LP) relaxation based branch and cut [52], or nonlinear programming(NLP) relaxation based branch and bound algorithms [39]. For the global solution of nonconvex MINLP, the first general purpose solvers were alphaBB, BARON, and GLOP, all basedon convexification techniques for nonconvex constraints [5, 55, 60, 61]. See also Section 3.3
for a small discussion of MINLP algorithms.

3

Groupings

3.1

Embedded vs. independent

Due to the high complexity of MINLP and the wide range of applications that can be modeled as MINLPs, it is sometimes desirable to customize the MINLP solver for a specific application in order to achieve good computational performance [12, 13, 22]. Further, MINLP
solvers are often built by combining LP, MIP, and NLP solvers. These are two main reasons for tightly integrating some MINLP solvers into modeling systems (general systems like
AIMMS [53], AMPL [30], and GAMS [31] or vendor specific systems like FICO XpressMosel, LINGO [58], and OPL [17]). For example, the AIMMS Outer Approximation solver
AOA allows modifications of its algorithm by the user. Further, the solvers DICOPT and
SBB are exclusively available for GAMS users since they revert to MIP and NLP solvers in
the GAMS system for the solution of subproblems. Also for an efficient use of the solver
OQNLP it is preferable to use one of the GAMS NLP solvers.
On the other side, there are many solvers that can be used independently of a modelingsystem, even though they may still require the presence of an LP, MIP, or NLP solver plugin.
However, often also these “independent” solvers are used within a modeling system, since themodeling system typically provides evaluators for nonlinear functions, gradients, and Hessians
and gives easy access to algebraic information about the problem.

2

3.2

Extending MIP vs. extending NLP vs. starting from scratch

MINLP solvers are not always developed completely from scratch. In many cases, an MIP oran NLP solver builds the basis for an extension towards MINLP. Solvers that can be categorized as extending an MIP solver with capabilities for nonlinear objectives and constraints
are BONMIN, Couenne, CPLEX, FICO Xpress-Optimizer, FilMINT, Gurobi, LindoAPI without global solver option, MOSEK, and SCIP. On the other hand, solvers where
an NLP solver was extended to handle discrete variables are bnb, FICO Xpress-SLP, fminconset, Knitro, MILANO, MINLP BB, MISQP, OQNLP, and SBB.
Finally, there is a group of solvers which were more-or-less developed from scratch,
but which may solve LP, MIP, NLP, or MINLP subproblems. In this category we have
ANTIGONE, alphaBB, AlphaECP, AOA, BARON, DICOPT, LaGO, LindoAPI, MIDACO, and MINOTAUR.

3.3

Algorithms

Algorithms for solving MINLPs are often build by combining algorithms from Linear Programming, Integer Programming, and Nonlinear Programming, e.g., branch and bound, outerapproximation, local search, global optimization. We refer to the chapters titled “Fundamental Techniques”, “Nonlinear Programming and Global Optimization”, and “Models andAlgorithms” for an introduction into these topics.
Most of the solvers implement one (or several) of three algorithmic ideas to tackle MINLPs.
First, there are branch and bound solvers that use NLP relaxations: alphaBB, bnb, BONMIN (in B-BB mode), CPLEX, FICO Xpress-Optimizer, FICO Xpress-SLP (in “SLPwithin MIP” mode), fminconset, Gurobi, Knitro, LindoAPI without global solver option, MILANO, MINLP BB, MINOTAUR, MOSEK, and SBB. Except for alphaBB, allof them obtain the NLP relaxation by relaxing the integrality restriction in (P). Since the
NLP solver used to solve this possibly nonconvex NLP relaxation usually ensures only local
optimal solutions, these solvers work as heuristics in case of a nonconvex MINLP. The solver
alphaBB, however, generates a convex NLP relaxation by using convex underestimators forthe functions f (x, y) and g(x, y) in (P). This solver can therefore be applied also to nonconvex
MINLPs, too.
As an alternative to relaxing integrality restrictions and keeping nonlinear constraints,
some solvers keep the integrality constraints and instead replace the nonlinear functions
f (x, y) and g(x, y) by a linear relaxation. In an outer-approximation algorithm [19, 26],
a relaxation is obtained by using gradient-based linearizations of f (x, y) or g(x, y) at solution
points of NLP subproblems. The resulting MIP relaxation is then solved by an MIP solver.
Solvers in this class are AOA, BONMIN (in B-OA mode), CPLEX, DICOPT, Gurobi,
MISQP (with OA extension), and FICO Xpress-SLP (in “MIP within SLP” mode). Since
gradient-based linearizations yield an outer-approximation only for convex MINLPs, thesesolvers ensure global optima only for convex MINLPs. In contrast to outer-approximation
based algorithms, an extended cutting plane algorithm solves a sequence of MIP relaxations
which encapsulate optimal solutions of (P) by cutting planes and supports of f (x, y) rather
than outer-approximating the whole feasible region of (P) [69]. This algorithm is implemented
by the solver AlphaECP, which can be applied to convex as well as pseudo-convex MINLPs.
A third class of solvers are those which integrate the linearization of f (x, y) and g(x, y)
into the branch and cut process [52]. Thus, an LP relaxation is successively solved, new3

linearizations of f (x, y) and g(x, y) are generated to improve the relaxation, and integrality
constraints are enforced by branching on the y variables. Solvers which use gradient-based
linearizations are AOA, BONMIN (in B-QG mode) and FilMINT.
Since the use of gradient-based linearizations in a branch and cut algorithm ensures global
solutions only for convex MINLPs, solvers for nonconvex MINLPs use convexification techniques to compute linear underestimators of a nonconvex function. However, the additional
convexification step may require to branch also on continuous variables in nonconvex terms (socalled spatial branching). Such a branch and cut algorithm is implemented by ANTIGONE,
BARON, CPLEX, Couenne, LaGO, LindoAPI, and SCIP. In difference to the othersolvers, ANTIGONE uses an MIP relaxation, i.e., does not relax integrality requirements.
The remaining solvers implement a different methodology. BONMIN (in B-Hyb mode)
alternates between LP and NLP relaxations during one branch and bound process. MISQP
integrates the handling of integrality restrictions into the solution of a nonlinear program via
sequential quadratic programming, i.e., it ensures that f (x, y) and g(x, y) are only evaluatedat points where y is integral. MIDACO applies an extended ant colony optimization method
and can use MISQP as a local solver. Finally, OQNLP applies a randomized approach bysampling starting points and fixings of integer variables for the solution of NLP subproblems.

3.4

Capabilities

Not every solver accepts general MINLPs as input. Solvers that currently handle only
MINLPs where the objective function and constraints are quadratic (so-called MIQCPs)
or second order cone (SOC) programs are CPLEX, FICO Xpress-Optimizer, Gurobi,
and MOSEK. All solvers support convex quadratic functions. Further, nonconvex quadratic
functions that involve only binary variables are supported by CPLEX, Gurobi, and FICO
Xpress-Optimizer. Quadratic constraints that permit a SOC representation are supported
by CPLEX and Gurobi. SOC constraints are supported by MOSEK. Nonconvex quadratic
objective functions are supported by CPLEX.
Solvers that guarantee global optimal solutions for general convex MINLPs but not for general nonconvex MINLP are AlphaECP, AOA, bnb, BONMIN, DICOPT, FICO XpressSLP, FilMINT, fminconset, Knitro, LaGO, LindoAPI without global option, MILANO, MINLP BB, MINOTAUR, MISQP with OA extension, and SBB. In case of anonconvex MINLP, these solvers can still be used as a heuristic. Especially branch and boundbased algorithms that use NLPs for bounding often find good solutions also for nonconvex
problems, while pure outer approximation based algorithms may easily run into infeasible
LP or MIP relaxations due to wrong cutting planes. Note, that AlphaECP ensures global
optimal solutions also for pseudo-convex MINLPs.
Solvers that also guarantee global optimality for nonconvex general MINLPs require an
algebraic representation of the functions f (x, y) and g(x, y) for the computation of convex
envelopes and underestimators. That is, each function needs to be provided as a composition of basic arithmetic operations and functions (addition, multiplication, power, exponential, trigonometric, ...) on constants and variables. The solvers alphaBB, ANTIGONE,
BARON, Couenne, LindoAPI, and SCIP belong into this category.
MIDACO, MISQP, and OQNLP can handle general MINLPs, but do not guarantee
global optimality even on convex problems.

4

4

MINLP solvers

In the following we briefly discuss individual solvers for MINLPs. We have excluded solvers
from this list that are clearly no longer available (e.g., SCICONIC). The solvers listed below
have different levels of reliability and activity with respect to development and maintenance.
Wide availability through modeling systems and other popular software indicates that a solver
has reached a decent level of maturity. Hence, in this list, we mention availability (e.g.,
open source, standalone binary, interfaces to general modeling systems) in addition to asolver’s developer, capability, and algorithmic details. Table 1 summarizes the list of solvers
and indicates for each solver the availability via AIMMS, AMPL, GAMS, and the NEOS
server [16].
alphaBB (α-Branch-and-Bound) [4, 5]. This solver has been developed by the researchgroup of C. Floudas at the Computer-Aided Systems Laboratory of Princeton University. It
is available to their collaborators.
alphaBB can be applied for convex and nonconvex MINLPs. It implements a branch
and bound algorithm that utilizes convex NLPs for bounding. Convex envelopes and tightconvexifications are obtained for specially structured nonconvex terms (e.g., bilinear, trilinear, multilinear, univariate concave, edge concave, generalized polynomials, fractional), andconvex α underestimators for general twice continuously differentiable functions. The latterare determined by adding a non-positive convex function to the original nonconvex function
such that the Hessian of the sum is guaranteed to be positive semidefinite (PSD) [3]. Various
interval arithmetic based techniques for estimating rigorous bounds on the minimal eigenvalueof the Hessian of the original nonconvex function are available.
AlphaECP (α-Extended Cutting Plane) [68, 70]. This solver has been developedby the research group of T. Westerlund at the Process Design and Systems Engineering
Laboratory of the Åbo Akademi University, Finland. It is available as a commercial solver
within GAMS.
AlphaECP ensures global optimal solutions for convex and pseudo-convex MINLPs. It
generates and successively improves an MIP outer approximation of a neighborhood of the setof optimal solutions of the MINLP and can solve NLP subproblems to find feasible solutions
early. The MIP is here refined by linearizing nonlinear constraints at solutions of the MIP
outer approximation. By shifting hyperplanes, pseudo-convex functions can also be handled.
ANTIGONE (Algorithms for coNTinuous/Integer Global Optimization) [46, 47].
This solver has been developed by R. Misener and C. Floudas at the Computer-Aided Systems
Laboratory of Princeton University. It is available as a commercial solver within GAMS.
ANTIGONE ensures global optimal solutions for convex and nonconvex MINLPs. It
implements a spatial branch-and-bound algorithm that utilizes MIPs for bounding. The
MIP relaxation is generated from a reformulation of the MINLP. Especially for quadratic
constraints, it employs a large collection of convexification and bound tightening techniques.
AOA (AIMMS Outer Approximation) [53]. This solver has been developed by Paragon Decision Technology. AOA is available as an “open solver” inside AIMMS. The open
solver approach allows the user to customize the algorithm for a specific application.

5

AOA ensures global optimal solutions only for convex MINLPs. It generates and successively improves an MIP outer approximation of the MINLP and can solve NLP subproblems
to find feasible solutions early. In contrast to AlphaECP, AOA constructs an MIP outerapproximation of the feasible region of the MINLP by linearizing nonlinear functions in solutions of NLP subproblems [19]. Since for a nonconvex constraint such a linearization may not
be valid, the MIP relaxation is modified such that the corresponding hyperplane is allowed tomove away from its support point. Recently, also a branch and bound algorithm that utilizes
LPs for bounding [52] has been added to AOA.
BARON (Branch-And-Reduce Optimization Navigator) [61, 62]. This solver was
originally developed by the group of N.V. Sahinidis at the University of Illinois at UrbanaChampaign and is currently developed by N.V. Sahinidis at Carnegie Mellon University and
M. Tawarmalani at Purdue University. It is available as a commercial solver within AIMMS
and GAMS.
BARON can be applied to convex and nonconvex MINLPs. It implements a spatial
branch and bound algorithm that utilizes LPs for bounding. The linear outer-approximation
is based on a reformulation of (P) that it constructed (by adding auxiliary variables) in a waythat it contains only nonconvex terms for which a convex underestimator (or concave overestimator) is known. The algorithm is enhanced by using advanced box reduction techniques
and new convexification techniques for quadratic functions [6]. Further, BARON is able touse NLP relaxations for bounding [33], even though this option is not encouraged.
bnb (Branch ’n Bound) . This solver has been developed by K. Kuipers of the Department of Applied Physics at the University of Groningen. It is available as Matlab [45]source.
bnb ensures global optimal solutions for convex MINLPs. It implements a branch andbound algorithm utilizing nonlinear relaxations for the bounding step [39]. The NLPs are
solved by the Matlab Optimization Toolbox routine fmincon.
BONMIN (Basic Open-source Nonlinear Mixed Integer Programming) [11]. This
open-source solver has been developed primarily by P. Bonami in a cooperation of Carnegie
Mellon University and IBM Research. It is available in source code and as standalone binaries
from COIN-OR (Computational Infrastructure for Operations Research) [42], has an AMPL
interface, and is distributed as a free solver within GAMS.
BONMIN ensures global optimal solutions only for convex MINLPs. Among others, it
implements the following four algorithms: B-OA is an outer-approximation algorithm thatgenerates and successively improves an MIP outer approximation of (P) [19], B-QG is abranch and bound algorithm that utilizes LPs for bounding [52], B-BB is a branch and boundalgorithm that utilizes NLPs for bounding [39], and B-Hyb is a hybrid of B-QG and BBB which alternates between LP and NLP relaxations for bounding. BONMIN has been
implemented on top of the MIP solver CBC [28] and can use filterSQP [27] and IPOPT [67]as NLP solvers.
Couenne (Convex Over and Under ENvelopes for Nonlinear Estimation) [9]. This
open-source solver has been developed primarily by P. Belotti, originally in a cooperation ofCarnegie Mellon University and IBM Research, and now at FICO. It is available in source6

code and as standalone binaries from COIN-OR, has an AMPL interface, and is distributed
as a free solver within GAMS.
Couenne ensures global optimal solutions for convex and nonconvex MINLPs. It implements a spatial branch and bound algorithm that utilizes LPs for bounding. Similar to
BARON, the linear outer-approximation is generated from a reformulation of the MINLP.
The algorithm is enhanced by bound tightening techniques, disjunctive cuts, MINLP heuristics, and symmetry handling. Couenne has been implemented on top of BONMIN.
CPLEX. This solver has been developed by CPLEX Optimization, Inc. (later acquired by
ILOG and recently acquired by IBM). It is available as standalone binaries and as a component
in many modeling systems.
CPLEX can solve convex MIQCPs. For models that only have binary variables in thepotentially indefinite quadratic matrices, CPLEX automatically reformulates the problem
to an equivalent MIQCP with PSD matrices. For convex MIQCPs, CPLEX implements a
branch and bound algorithm that utilizes LPs or QCPs for bounding. Recently, nonconvex
quadratic objective functions can be handled by using a spatial branch and bound algorithm
that uses LPs or quadratic programs for bounding. Further, an option to solve general
nonconvex MIQCPs by a branch and bound algorithm that utilizes NLPs for bounding [39]is also available, but global optimality is not guaranteed for this case.
DICOPT (Discrete and Continuous Optimizer) [31, 37]. This solver has been developed by the research group of I. E. Grossmann at the Engineering Research Design Centerat Carnegie Mellon University. It is available as a commercial solver within GAMS.
DICOPT ensures global optimal solutions for convex MINLPs. Starting with the NLP
relaxation (obtained from (P) by relaxing the integer requirement on y), it alternates between
solving MIP outer approximations and NLP subproblems of (P) to compute lower and upperbounds [19]. To accommodate also nonconvex MINLPs, nonlinear equality constraints arerelaxed by replacing them with inequalities where the linearizations of the nonlinear functions
are allowed to move away from their support point by the use of slack variables and throughan augmented penalty function in the MIP relaxation. Since for this case valid lower bounds
cannot be obtained, the termination criterion is based on lack of improvement in the objectiveof the NLP subproblem.
FICO Xpress-Optimizer [25]. This solver has been developed by Dash Optimization(later acquired by FICO). It is available as standalone binaries and as a component in manymodeling systems.
FICO Xpress-Optimizer can solve convex MIQCPs. For models that only have binary variables in the potentially indefinite quadratic matrices, FICO Xpress-Optimizer
automatically reformulates the problem to an equivalent MIQCP with PSD matrices. It
implements a branch and bound algorithm that utilizes QCPs for bounding.
FICO Xpress-SLP [24]. This solver has been developed by Dash Optimization (later
acquired by FICO). It is available as standalone binaries and as a FICO Xpress-Mosel
module.
FICO Xpress-SLP ensures global optimal solutions for convex MINLPs. It implements
three algorithms: The (default) “SLP within MIP” variant is a branch and bound algorithm
7that utilizes NLPs for bounding [39]. The NLP subproblems are solved by Successive Linear
Programming (SLP). Solving MIPs as subproblems of the SLP algorithm leads to the “MIP
within SLP” variant, which is comparable with an MIP relaxation based outer-approximation
algorithm [19]. A third variant (“SLP then MIP”) solves first an NLP relaxation (by SLP),
then an MIP relaxation, and finally an NLP subproblem to obtain a feasible solution to the
MINLP [24]. To accommodate also nonconvex constraints, in all variants, the hyperplanes
obtained from gradient-based linearizations in SLP can move away from their support point.
FilMINT (Filter-Mixed Integer Optimizer) [1]. This solver has been developed by
the research groups of S. Leyffer at the Laboratory for Advanced Numerical Simulations ofArgonne National Laboratory and J. Linderoth at the Department of Industrial and Systems
Engineering of Lehigh University. It has an AMPL interface.
FilMINT ensures global optimal solutions only for convex MINLPs. It implements a
branch and bound algorithm that utilizes LPs for bounding [52], where different strategies forchoosing the linearization point for the nonlinear functions are available. Further, FilMINT
includes several variants of disjunctive cutting planes for convex MINLP and a feasibility
pump. FilMINT has been implemented on top of the MIP solver MINTO [50] and the NLP
solver filterSQP [27].
fminconset. This solver had been developed by I. Solberg at the Department of Engineering
Cybernetics of the University of Trondheim (now NTNU). It is available as Matlab source.
fminconset ensures global optimal solutions for convex MINLPs. It implements a branch
and bound algorithm utilizing nonlinear relaxations for the bounding step [39]. The NLPs
are solved by the Matlab Optimization Toolbox routine fmincon.
Gurobi [54]. This solver has been developed by Gurobi Optimization, Inc. It is available
as standalone binaries and as a component in many modeling systems.
Gurobi can solve convex MIQCPs. Products of binary variables are linearized by introducing additional variables and constraints. Gurobi implements a branch and boundalgorithm that utilizes LPs or QCPs for bounding.
Knitro [15]. This solver has been developed by Ziena Optimization, Inc. It is available asstandalone binary and as a component in many modeling systems.
Knitro ensures global optimal solutions for convex MINLPs. MINLPs are solved bybranch and bound, where both linear or nonlinear problems can be used for the bounding
step [39, 52].
LaGO (Lagrangian Global Optimizer) [51]. This open-source solver had been developed by the research group of I. Nowak at the Department of Mathematics of Humboldt
University Berlin. It is available in source code from COIN-OR and provides AMPL and
GAMS interfaces.
LaGO ensures global optimal solutions for convex MINLPs and nonconvex MIQCPs.
It implements a spatial branch and bound algorithm utilizing a linear relaxation for thebounding step. The relaxation is obtained by linearizing convex functions, underestimating quadratic nonconvex functions, and approximating nonconvex nonquadratic functions byquadratic ones.
8LindoAPI [41]. This solver library has been developed by LINDO Systems, Inc. It isavailable within the LINDO environment, LINGO [58], What’sBest!, and as a commercial
solver within GAMS.
LindoAPI ensures global optimal solutions for convex and nonconvex MINLPs. It implements a branch and cut algorithm that utilizes LPs for bounding [32, 41]. Branching is
performed for subproblems that are not provably infeasible and where nonconvex constraints
are present or the LP relaxation has a fractional solution. LindoAPI can also handle some
nonsmooth or discontinuous functions like abs(x), floor(x), and max(x,y).
Additionally, LindoAPI allows to disable the global solver components, by what the
MIP solver is used together with nonlinear relaxations for the bounding step [39]. This
option still ensures global optimal solutions for convex MINLPs. It was the first commerciallyavailable solver implementing a branch and bound algorithm utilizing nonlinear relaxations
for bounding. The NLP relaxations are solved by CONOPT [18, 31].
MIDACO (Mixed Integer Distributed Ant Colony Optimization) [56, 57]. Thissolver has been developed by M. Schlüter at the Theoretical & Computational Optimization
Group of the University of Birmingham, now at Hokkaido University. It works as a librarywith C/C++, Fortran, Matlab, and Python interfaces and is available from the author onrequest.
MIDACO can be applied to convex and nonconvex MINLPs. It implements an extended
ant colony search method based on an oracle penalty function and can be combined withMISQP as solver for local searches in (P). It targets applications where the problem formulation is unknown (f (x, y) and g(x, y) are black-box functions) or involves critical properties
like nonconvexities, discontinuities, flat spots, or stochastic distortions. Further, MIDACO
can exploit distributed computer architectures by parallelizing function evaluation calls.
MILANO (Mixed-Integer Linear and Nonlinear Optimizer) [10]. This solver isdeveloped by H. Y. Benson at the Department of Decision Sciences of Drexel University. It
is still in development and available as Matlab source.
MILANO ensures global optimal solutions for convex MINLPs. It implements a branch
and bound algorithm utilizing nonlinear relaxations for the bounding step [39]. The NLPs are
solved by LOQO [64], where special emphasis is put on how to warmstart this interior-point
solver.
MINLP BB (Mixed Integer Nonlinear Programming Branch-and-Bound) [39].
This solver had been developed by R. Fletcher and S. Leyffer at the University of Dundee.
It provides an AMPL interface and is available for Matlab via the TOMLAB Optimization
Environment [36].
MINLP BB ensures global optimal solutions for convex MINLPs. It implements a branch
and bound algorithm utilizing nonlinear relaxations for the bounding step [39]. The NLPs
are solved by filterSQP.
MINOTAUR (Mixed-Integer Nonconvex Optimization Toolbox – Algorithms,
Underestimators, Relaxations) [43, 44]. This solver is developed by S. Leyffer, J. Linderoth, J. Luedtke, A. Mahajan, and T. Munson at Argonne National Laboratory and the
University of Wisconsin-Madison. It provides an AMPL interface.
9MINOTAUR ensures global optimal solutions for convex MINLPs. It implements a
branch and bound algorithm utilizing nonlinear relaxations for the bounding step [39], where
the NLPs are solved by IPOPT or filterSQP. Additionally, it offers to replace the NLP
relaxations by faster to solve QP approximations, can recognize unions of second-order cones,
and is continuously extended towards a solver for nonconvex MINLPs.
MISQP (Mixed Integer Sequential Quadratic Programming) [21, 20]. This solver
has been developed by the research group of K. Schittkowski at the Department of Computer Science of the University of Bayreuth. It works as a standalone library with a Fortraninterface.
MISQP can be applied to convex and nonconvex MINLPs, but assumes that the valuesof the nonlinear functions f (x, y) and g(x, y) do not change drastically as a function of y.
MISQP implements a modified sequential quadratic programming (SQP) method, where
functions are only evaluated at points (x, y) with y integer. It targets applications where theevaluation of f (x, y) or g(x, y) may be expensive. Additionally, a combination with outerapproximation [19] that guarantees convergence for convex MINLPs is available [38].
MOSEK [49]. This solver has been developed by MOSEK ApS. It is available as a standalone binary, has AMPL and Matlab interfaces, and is distributed as a commercial solver
within AIMMS and GAMS.
MOSEK can be applied to convex MIQCPs and to mixed-integer conic programs. It implements a branch and bound method that utilizes QCPs or SOC programs for bounding [52].
OQNLP (OptQuest Nonlinear Programming) [31, 63]. This solver has been jointly
developed by OptTek Systems, Inc. and Optimal Methods, Inc. It is available as a standalone
library, for Matlab via the TOMLAB Optimization Environment, and is distributed as acommercial solver within GAMS.
OQNLP is a heuristic that can be applied to any MINLP. It implements a multistart
scatter search algorithm which solves NLP subproblems with fixed discrete variables.
SBB (Simple Branch-and-Bound) [31]. This solver has been developed by ARKI Consulting and Development A/S. It is available as a commercial solver within GAMS.
SBB ensures global optimal solutions for convex MINLPs. It implements a branch andbound algorithm utilizing nonlinear relaxations for the bounding step [39]. The NLP relaxations are solved by one (or several) of the NLP solvers available with GAMS. Using the
GAMS Branch-Cut-and-Heuristic facility [13], SBB allows the user to implement a modelspecify heuristic in the GAMS language.
SCIP (Solving Constraint Integer Programs) [2, 66]. This solver has been developedby the Optimization Department at the Zuse Institute Berlin and its collaborators. For
academic institutions, it is available in source code and as standalone binary and is distributed
within GAMS.
SCIP ensures global optimal solutions for convex and nonconvex MINLPs. It implementsa spatial branch and bound algorithm that utilizes LPs for the bounding step. Similar to

10

BARON, the outer-approximation is generated from a reformulation of the MINLP. Additionally, SCIP includes large-neighborhood search heuristics and a new sub-MIP MINLP
heuristic.

5

Outlook and Summary

Combining discrete and nonlinear optimization results in a rich modeling paradigm applicable to many real world optimization problems. At the same time, mixed integer nonlinear
programming represents a theoretically and computationally challenging problem class andhence provides many interesting research opportunities. Software for solving MINLP models facilitates co-operation between research and application and explains the popularity andincreased level of activity around MINLP.
While state-of-the-art MIP solvers typically implement advanced automatic reformulation and preprocessing algorithms, such techniques are less commonly available in MINLP
solvers, and in a limited form. Therefore, the modeler’s choice of problem formulation isstill very important when solving an MINLP. However, software for guided automatic model
reformulations and relaxations has recently been developed. LogMIP [65], one of the firstsystems available, translates an MINLP with disjunctions into a standard MINLP by applying
bigM and convex hull reformulations [35]. More recently, frameworks like GAMS/EMP (Extended Mathematical Programming) [23] and ROSE (Reformulation/Optimization Software
Engine) [40] provide a growing toolbox for reformulating MINLPs. Other recent activities
like libMC [48] focus on (convex) relaxations for (nonconvex) MINLP.
Another important area is the collection and dissemination of MINLP models. Instancecollections like MacMINLP1 and MINLPLib [14] provide valuable test cases for solver developers. The new Cyber-Infrastructure for MINLP [34] features a growing library of problems
with high level model descriptions, reformulations, and problem instances.
In this paper we have given a concise description of the state-of-the-art in MINLP solvers
and have established several groupings with respect to various features of the software. We
hope that these groupings and the individual descriptions give sufficient information to guidethe selection of the best solver for a particular MINLP problem.
Acknowledgments. We thank Oliver Bastert, Pietro Belotti, Zsolt Csizmadia, Steve Dirkse, Arne Drud, Christodoulos Floudas, Ignacio Grossmann, Marcel Hunting, Ed Klotz, Nikolaos Sahinidis, Martin Schlüter, Linus Schrage, and Tapio Westerlund for their invaluablecomments. The second author was supported by the DFG Research Center Matheon Mathematics for key technologies in Berlin.

References[1] K. Abhishek, S. Leyffer, and J.T. Linderoth. FilMINT: An outer-approximation-based
solver for nonlinear mixed integer programs. INFORMS Journal On Computing, 22(4):555–567, 2010. doi:10.1287/ijoc.1090.0373.
[2] T. Achterberg. SCIP: Solving Constraint Integer Programs. Mathematical Programming
Computation, 1(1):1–41, 2009. doi:10.1007/s12532-008-0001-1.
1

http://wiki.mcs.anl.gov/leyffer/index.php/MacMINLP

11

[3] C.S. Adjiman and C.A. Floudas. Rigorous convex underestimators for general twicedifferentiable problems. Journal of Global Optimization, 9(1):23–40, 1996. doi:10.1007/
BF00121749.
[4] C.S. Adjiman, I.P. Androulakis, and C.A. Floudas. Global optimization of mixed-integer
nonlinear problems. Journal of the American Institute of Chemical Engineers, 46(9):1769–1797, 2000. doi:10.1002/aic.690460908.
[5] I.P. Androulakis, C.D. Maranas, and C.A. Floudas. αBB: A global optimization method
for general constrained nonconvex problems. Journal of Global Optimization, 7(4):337–
363, 1995. doi:10.1007/BF01099647.
[6] X. Bao, N.V. Sahinidis, and M. Tawarmalani. Multiterm polyhedral relaxations fornonconvex, quadratically-constrained quadratic programs. Optimization Methods andSoftware, 24(4-5):485–504, 2009. doi:10.1080/10556780902883184.
[7] E.M.L. Beale. Branch and bound methods for numerical optimization of non-convex
functions. In M.M. Barritt and D. Wishart, editors, COMPSTAT 80 Proceedings in
Computational Statistics, pages 11–20, Vienna, 1980. Physica-Verlag.
[8] E.M.L. Beale and J.A. Tomlin. Special Facilities in a General Mathematical Programming System for Nonconvex Problems Using Ordered Sets of Variables, pages 447–454.
Number 69 in Operational Research. Tavistock Publishing, London, 1970.
[9] P. Belotti, J. Lee, L. Liberti, F. Margot, and A. Wächter. Branching and bounds tightening techniques for non-convex MINLP. Optimization Methods and Software, 24(4-5):
597–634, 2009. doi:10.1080/10556780903087124.
[10] H. Y. Benson. Mixed integer nonlinear programming using interior-point methods. Optimization Methods and Software, 26(6):911–931, 2011. doi:10.1080/10556781003799303.
[11] P. Bonami, L.T. Biegler, A.R. Conn, G. Cornuéjols, I.E. Grossmann, C.D. Laird, J. Lee,
A. Lodi, F. Margot, N. Sawaya, and A. Wächter. An algorithmic framework for convex
mixed integer nonlinear programs. Discrete Optimization, 5(2):186–204, 2008. doi:10.
1016/j.disopt.2006.10.011.
[12] C. Bragalli, C. D’Ambrosio, J. Lee, A. Lodi, and P. Toth. On the optimal design of water
distribution networks: a practical MINLP approach. Optimization and Engineering, 13:
219–246, 2012. doi:10.1007/s11081-011-9141-7.
[13] M.R. Bussieck. Introduction to GAMS Branch-and-Cut Facility. Technical report, GAMS
Development Corp., 2003. URL http://www.gams.com/docs/bch.htm.
[14] M.R. Bussieck, A.S. Drud, and A. Meeraus. MINLPLib – a collection of test models
for mixed-integer nonlinear programming. INFORMS Journal on Computing, 15(1):114–119, 2003. doi:10.1287/ijoc.15.1.114.15159.
[15] R. H. Byrd, J. Nocedal, and R.A. Waltz. KNITRO: An integrated package for nonlinear
optimization. In G. di Pillo and M. Roma, editors, Large-Scale Nonlinear Optimization,
volume 83 of Nonconvex Optimization and Its Applications, pages 35–59. Springer, 2006.
doi:10.1007/0-387-30065-1 4.
12

[16] J. Czyzyk, M. Mesnier, and J. Moré. The NEOS server. IEEE Journal on Computational
Science and Engineering, 5(3):68–75, 1998. doi:10.1109/99.714603. http://neos.mcs.
anl.gov.
[17] T. Dong.
Efficient modeling with the IBM ILOG OPL-CPLEX Development Bundles. http://public.dhe.ibm.com/common/ssi/rep_wh/n/WSW14059USEN/
WSW14059USEN.PDF, 2009.
[18] A. Drud. CONOPT – a large-scale GRG code. INFORMS Journal on Computing, 6(2):207–216, 1992. doi:10.1287/ijoc.6.2.207.
[19] M.A. Duran and I.E. Grossmann. An outer-approximation algorithm for a class of mixedinteger nonlinear programs. Mathematical Programming, 36(3):307–339, 1986. doi:10.
1007/BF02592064.
[20] O. Exler and K. Schittkowski. A trust region SQP algorithm for mixed-integer nonlinear
programming. Optimization Letters, 1(3):269–280, 2007. doi:10.1007/s11590-006-0026-1.
[21] O. Exler, T. Lehmann, and K. Schittkowski. A comparative study of SQP-type algorithms for nonlinear and nonconvex mixed-integer optimization. Mathematical Programming Computation, 4(4):383–412, 2012. doi:10.1007/s12532-012-0045-0.
[22] T. Farkas, B. Czuczai, E. Rev, and Z. Lelkes. New MINLP model and modified outerapproximation algorithm for distillation column synthesis. Industrial & Engineering
Chemistry Research, 47(9):3088–3103, 2008. doi:10.1021/ie0711426.
[23] M.C. Ferris, S.P. Dirkse, J.-H. Jagla, and A. Meeraus. An extended mathematical programming framework. Computers & Chemical Engineering, 33(12):1973–1982, 2009.
doi:10.1016/j.compchemeng.2009.06.013.
[24] Xpress-SLP Program Reference Manual. FICO, 1.41 edition, 2008. http://www.fico.
com/xpress.
[25] Xpress-Optimizer Reference manual. FICO, 20.0 edition, 2009. http://www.fico.com/
xpress.
[26] R. Fletcher and S. Leyffer. Solving mixed integer nonlinear programs by outer approximation. Mathematical Programming, 66(1-3):327–349, 1994. doi:10.1007/BF01581153.
[27] R. Fletcher and S. Leyffer. Nonlinear programming without a penalty function. Mathematical Programming, 91(2):239–270, 2002. doi:10.1007/s101070100244.
[28] J.J.H. Forrest. COIN-OR Branch and Cut. http://projects.coin-or.org/Cbc.
[29] J.J.H. Forrest and J.A. Tomlin.
Branch and bound, integer, and non-integer
programming. Annals of Operations Research, 149(1):81–87, 2007. doi:10.1007/
s10479-006-0112-x.
[30] R. Fourer, D.M. Gay, and B.W. Kernighan. AMPL: A Modeling Language for Mathematical Programming. Duxbury Press, Brooks/Cole Publishing Company, 1993. ISBN
0534388094.

13

[31] GAMS Development Corp. GAMS – The Solver Manuals. Washington DC, 2014.
[32] C. Gau and L. Schrage. Implementation and testing of a branch-and-bound based methodfor deterministic global optimization: Operations research applications. In C.A. Floudas
and P.M. Pardalos, editors, Frontiers in Global Optimization, volume 74 of Nonconvex
Optimization and Its Applications, pages 145–164. Springer, 2003.
[33] V. Ghildyal and N.V. Sahinidis. Solving global optimization problems with BARON.
In A. Migdalas, P.M. Pardalos, and P. Värbrand, editors, From Local to Global Optimization, volume 53 of Nonconvex Optimization and Its Applications, chapter 10, pages
205–230. Springer, 2001. ISBN 978-0-7923-6883-0.
[34] I. E. Grossmann and J. Lee. Cyberinfrastructure for mixed-integer nonlinear programming. SIAG/OPT Views-and-News, 22(1):8–12, 2011. URL http://www.minlp.org.
[35] I. E. Grossmann and S. Lee. Generalized disjunctive programming: Nonlinear convex hull
relaxation and algorithms. Computational Optimization and Applications, (26):83–100,
2003. doi:10.1023/A:1025154322278.
[36] K. Holmström. The TOMLAB optimization environment in MATLAB. Advanced Modeling and Optimization, 1(1):47–69, 1999. http://tomopt.com/tomlab.
[37] G.R. Kocis and I.E. Grossmann. Computational experience with DICOPT: Solving
MINLP problems in process systems engineering. Computers & Chemical Engineering,13(3):307–315, 1989. doi:10.1016/0098-1354(89)85008-2.
[38] T. Lehmann. On Efficient Solution Methods for Mixed-Integer Nonlinear and MixedInteger Quadratic Optimization Problems. PhD thesis, Universität Bayreuth, 2013.
urn:nbn:de:bvb:703-opus4-12758.
[39] S. Leyffer. Integrating SQP and branch-and-bound for mixed integer nonlinear programming. Computational Optimization and Applications, 18(3):295–309, 2001. doi:
10.1023/A:1011241421041.
[40] L. Liberti, S. Cafieri, and F. Tarissan. Reformulations in mathematical programming:
A computational approach. In A. Abraham, A.-E. Hassanien, and P. Siarry, editors,
Foundations of Computational Intelligence Volume 3: Global Optimization, volume 203of Studies in Computational Intelligence, pages 153–234. Springer, New York, 2009. doi:
10.1007/978-3-642-01085-9 7.
[41] Y. Lin and L. Schrage. The global solver in the LINDO API. Optimization Methods &Software, 24(4–5):657–668, 2009. doi:10.1080/10556780902753221.
[42] R. Lougee-Heimer. The Common Optimization INterface for Operations Research:
Promoting open-source software in the operations research community. IBM Journal of Research and Development, 47(1):57–66, 2003. doi:10.1147/rd.471.0057. http://www.coin-or.org.
[43] A. Mahajan and T. Munson. Exploiting second-order cone structure for global optimization. Technical Report ANL/MCS-P1801-1010, Argonne National Laboratory, 2010.
URL http://www.optimization-online.org/DB_HTML/2010/10/2780.html.
14

[44] A. Mahajan, S. Leyffer, and C. Kirches. Solving mixed-integer nonlinear programs by
QP-diving. Preprint ANL/MCS-P2071-0312, Argonne National Laboratory, 2012. URL
http://www.optimization-online.org/DB_HTML/2012/03/3409.html.
[45] The MathWorks. MATLAB User’s Guide, 2009. http://www.mathworks.com.
[46] R. Misener and C. A. Floudas. GloMIQO: Global mixed-integer quadratic optimizer.
Journal of Global Optimization, 57(1):3–50, 2013. doi:10.1007/s10898-012-9874-7.
[47] R. Misener and C. A. Floudas. ANTIGONE: Algorithms for coNTinuous / Integer Global
Optimization of Nonlinear Equations. Accepted for Journal of Global Optimization, 2014.
[48] A. Mitsos, B. Chachuat, and P.I. Barton. McCormick-based relaxations of algorithms.
SIAM Journal on Optimization, 20(2):573–601, 2009. doi:10.1137/080717341.
[49] The MOSEK optimization tools manual. MOSEK Corporation, 6.0 edition, 2009. http://www.mosek.com.
[50] G.L. Nemhauser, M.W.P. Savelsbergh, and G.S. Sigismondi. MINTO, a Mixed INTeger
Optimizer. Operations Research Letters, 15(1):47–58, 1994. doi:10.1016/0167-6377(94)90013-2.
[51] I. Nowak and S. Vigerske. LaGO: a (heuristic) branch and cut algorithm for nonconvex
MINLPs. Central European Journal of Operations Research, 16(2):127–138, 2008. doi:
10.1007/s10100-007-0051-x.
[52] L. Quesada and I.E. Grossmann. An LP/NLP based branch and bound algorithm forconvex MINLP optimization problems. Computers & Chemical Engineering, 16(10-11):
937–947, 1992. doi:10.1016/0098-1354(92)80028-8.
[53] M. Roelofs and J. Bisschop. AIMMS 3.9 – The Language Reference. Paragon Decision
Technology B.V., Haarlem, The Netherlands, 2009.
[54] E. Rothberg.
Solving quadratically-constrained models using gurobi,
2012.
URL
http://www.gurobi.com/resources/seminars-and-videos/
gurobi-quadratic-constraints-webinar.
[55] N.V. Sahinidis. BARON: A general purpose global optimization software package. Journal of Global Optimization, 8(2):201–205, 1996. doi:10.1007/BF00138693.
[56] M. Schlüter and M. Gerdts. The oracle penalty method. Journal of Global Optimization,
47(2):293–325, 2009. doi:10.1007/s10898-009-9477-0.
[57] M. Schlüter, M. Gerdts, and J.J. Rückmann. A numerical study of MIDACO on 100
MINLP benchmarks. Optimization, 61(7):873–900, 2012. doi:10.1080/02331934.2012.
668545.
[58] L. Schrage. Optimization Modeling with LINGO. Lindo Systems, Inc., 2008. http://www.lindo.com.
[59] SCICON Ltd. SCICONIC User Guide Version 1.40. Scicon Ltd., Milton Keynes, UK,
1989.
15

[60] E.M.B. Smith and C.C. Pantelides. A symbolic reformulation/spatial branch-and-boundalgorithm for the global optimization of nonconvex MINLPs. Computers & Chemical
Engineering, 23(4-5):457–478, 1999. doi:10.1016/S0098-1354(98)00286-5.
[61] M. Tawarmalani and N.V. Sahinidis. Convexification and Global Optimization in Continuous and Mixed-Integer Nonlinear Programming: Theory, Algorithms, Software, andApplications, volume 65 of Nonconvex Optimization and Its Applications. Kluwer Academic Publishers, 2002. ISBN 978-1-4020-1031-6.
[62] M. Tawarmalani and N.V. Sahinidis. Global optimization of mixed-integer nonlinear
programs: A theoretical and computational study. Mathematical Programming, 99:563–
591, 2004. doi:10.1007/s10107-003-0467-6.
[63] Z. Ugray, L. Lasdon, J. Plummer, F. Glover, J. Kelly, and R. Martı́. Scatter search andlocal NLP solvers: A multistart framework for global optimization. INFORMS Journal
on Computing, 19(3):328–340, 2007. doi:10.1287/ijoc.1060.0175.
[64] R.J. Vanderbei and D.F. Shanno. An interior-point algorithm for nonconvex nonlinear
programming. Computational Optimization and Applications, 13(1-3):231–252, 1999.
doi:10.1023/A:1008677427361.
[65] A. Vecchietti and I.E. Grossmann. LOGMIP: A disjunctive 0-1 nonlinear optimizer
for process system models. Computers & Chemical Engineering, 23(4-5):555–565, 1999.
doi:10.1016/S0098-1354(98)00293-2.
[66] S. Vigerske. Decomposition of Multistage Stochastic Programs and a Constraint Integer
Programming Approach to Mixed-Integer Nonlinear Programming. PhD thesis, Humboldt
Universität zu Berlin, 2013. urn:nbn:de:kobv:11-100208240.
[67] A. Wächter and L.T. Biegler. On the implementation of a primal-dual interior point filter
line search algorithm for large-scale nonlinear programming. Mathematical Programming,
106(1):25–57, 2006. doi:10.1007/s10107-004-0559-y. http://projects.coin-or.org/
Ipopt.
[68] T. Westerlund and K. Lundquist. Alpha-ECP, version 5.04. an interactive MINLPsolver based on the extended cutting plane method. Technical Report 01-178-A, Process
Design Laboratory, Åbo Akademi University, Åbo, Finland, 2003. http://www.abo.fi/~twesterl/A-ECPManual.pdf.
[69] T. Westerlund and F. Pettersson. An extended cutting plane method for solving convex
MINLP problems. Computers & Chemical Engineering, 19(suppl.):131–136, 1995. doi:
10.1016/0098-1354(95)87027-X.
[70] T. Westerlund and R. Pörn. Solving pseudo-convex mixed integer optimization problems
by cutting plane techniques. Optimization and Engineering, 3(3):253–280, 2002. doi:
10.1023/A:1021091110342.

16

17

MIQCP

a

general MINLP

[15]
[51]
[41]
[65]
[56, 57][10][39][43, 44][21, 20][31, 63][31][2, 66][11][9][31, 37][24][1][4, 5][68, 70][46, 47][53][61, 62]

–
–
–
–
–
–
X
X
–
–
X
–
X
X
–
–
–
–
X
X
–
–
–
X

–
X
X
–
X
–
X
X
X
–
–
–
X
Xa
X
X
–
–
–
–
–
X
X
X

X
X
X
X

GAMS

http://www.mosek.com

http://www.fico.com/xpress

http://www.gurobi.com

http://www.cplex.com

URL–
http://titan.princeton.edu
X
http://www.abo.fi/~twesterl–
http://helios.princeton.edu/ANTIGONE–
http://www.aimms.com
X
http://archimedes.cheme.cmu.edu/?q=baron–
http://www.mathworks.com/matlabcentral/fileexchange/95
X
https://projects.coin-or.org/Bonmin
X
https://projects.coin-or.org/CouenneX
http://www.gams.com/solvers–
http://www.fico.com/xpress
X
http://www.neos-server.org/neos/solvers/minco:FilMINT/AMPL.html–
http://www.mathworks.com/matlabcentral/fileexchange/96
X
http://www.ziena.com–
https://projects.coin-or.org/LaGO
X
http://www.lindo.com–
http://www.logmip.ceride.gov.ar–
http://www.midaco-solver.com–
http://www.pages.drexel.edu/~hvb22/milano
X http://wiki.mcs.anl.gov/leyffer/index.php/Sven_Leyffer’s_Software#MINLPBB–
http://wiki.mcs.anl.gov/minotaur–
http://www.klaus-schittkowski.de/misqp.htm
X
http://www.gams.com/solvers
X
http://www.gams.com/solvers
X
http://scip.zib.de

–
–
–
–

NEOS

Table 1: An overview on solvers for MINLP.

–
–
–
X
X
–
–
–
–
–
–
–
X
–
–
–
–
–
–
–
–
–
–
–

X
X
X
X

AMPL

interface for MINLPs available, but not included in GAMS distributionalphaBB
AlphaECPANTIGONE
AOA
BARON
bnb
BONMIN
CouenneDICOPT
FICO Xpress-SLP
FilMINT
fminconset
KnitroLaGO
LindoAPI
LogMIP
MIDACOMILANOMINLP BBMINOTAUR
MISQP
OQNLP
SBB
SCIP

X
X
X
X

literature AIMMS

CPLEX
Gurobi[54]
FICO Xpress-Optimizer [25]
MOSEK
[49]

solver