Couenne
Convex Over and Under ENvelopes for Nonlinear Estimation is an open-source library for solving global optimization problems, also termed mixed integer nonlinear optimization problems. A global optimization problem requires to minimize a function, called objective function, subject to a set of constraints. Both the objective function and the constraints might be nonlinear and nonconvex. For solving these problems, Couenne uses a reformulation procedure and provides a linear programming approximation of any nonconvex optimization problem.
Couenne is an implementation of a branch-and-bound where every subproblem is solved by constructing a linear programming relaxation to obtain a lower bound. Branching may occur at both continuous and integer variables, which is necessary in global optimization problems. It requires the input to be specified in A Mathematical Programming Language .nl format, so as to be used from AMPL, and writes as an output a file.sol containing the best solution found until that moment or the global optimum if it completes without interruption.
The development of Couenne began in 2006 within a collaboration between IBM and Carnegie Mellon University. It is open-source software and is currently released under the Eclipse Public License v1.0.
The source code is available for download in the Computational Infrastructure for Operations Research COIN-OR repository and on Github. Couenne uses other packages both in COIN-OR and outside, MUltifrontal Massively Parallel sparse direct Solver, Nauty, Solving Constraint Integer Programs.