BONMIN#

The COIN Bonmin solver (BONMIN) is an experimental open-source C++ code for solving general MINLP (Mixed Integer NonLinear Programming) problems of the form:

   min     f(x)

s.t.       g_L <= g(x) <= g_U
           x_L <=  x   <= x_U
           x_i in Z for all i in I and,
           x_i in R for all i not in I.

where f(x): R^n --> R, g(x): R^n --> R^m are twice continuously differentiable functions and I is a subset of {1,..,n}.

The algorithms in Bonmin are exact when the functions f and g are convex; in the case where f or g or both are non-convex they are heuristics.

Learn More | Options | Download BONMIN

How to use it#

ampl: option solver bonmin; # change the solver
ampl: option bonmin_options 'option1=value1 option2=value2'; # specify options
ampl: solve; # solve the problem

How to install using amplpy:

# Install Python API for AMPL:
$ python -m pip install amplpy --upgrade

# Install AMPL & solver modules:
$ python -m amplpy.modules install coin # install BONMIN

# Activate your license (e.g., free ampl.com/ce or ampl.com/courses licenses):
$ python -m amplpy.modules activate <your-license-uuid>

How to use:

from amplpy import AMPL
ampl = AMPL()
...
ampl.solve(solver="bonmin", bonmin_options="option1=value1 option2=value2")

Learn more about what we have to offer to implement and deploy Optimization in Python.

AMPL APIs are interfaces that allow developers to access the features of the AMPL interpreter from within a programming language. We have APIs available for:

Resources#

Solver options#

Full list of solver options:

More details on solver options: Features guide.

Retrieving solutions#

The outcome of the last optimization is stored in the AMPL parameter solve_result_num and the relative message in solve_result.

display solve_result_num, solve_result;

BONMIN solve result codes:

          0- 99 solved: optimal for an optimization problem, feasible for a satisfaction problem
        100-199 solved? solution candidate returned but error likely
        200-299 infeasible
        300-399 unbounded
        400-499 limit
        500-999 failure, no solution returned