Mixed-Integer Nonlinear Programming

Basic Concepts

Mixed integer nonlinear programming (MINLP) refers to optimization problems with continuous and discrete variables and nonlinear functions in the objective function and/or the constraints. MINLPs arise in applications in a wide range of fields, including chemical engineering, finance, and manufacturing. The general form of a MINLP is

\mbox{min} & f(x,y) & & & \\
\mbox{s.t.} & c_i(x,y) & = & 0 & \forall i \in E \\
& c_i(x,y) & \leq & 0 & \forall i \in I \\
& x & \in & X & \\
& y & \in & Y & \mbox{integer}
\] where each \(c_i(x,y) \,\) is a mapping from \(R^n \,\) to \(R \,\), and \(E \,\) and \(I \,\) are index sets for equality and inequality constraints, respectively. Typically, the functions \(f\) and \(c_i\) have some smoothness properties, i.e., once or twice continuously differentiable.

Software developed for MINLP has generally followed two approaches:

  • Outer Approximation/Generalized Bender’s Decomposition: These algorithms alternate between solving a mixed-integer LP master problem and nonlinear programming subproblems.
  • Branch-and-Bound: Branch-and-bound methods for mixed-integer LP can be extended to MINLP with a number of tricks added to improve their performance.

For a recent survey of MINLP applications, models, and solution methods, see Belotti et al. (2013).

Test Problems
  • MacMINLP, a collection of MINLP test problems in AMPL
  • MINLPLib, a collection of MINLP test problems