= Welcome to the Bonmin Wiki =
Bonmin ('''B'''asic '''O'''pen-source '''N'''onlinear '''M'''ixed '''IN'''teger programming) 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}}}}.
Bonmin features several algorithms
* B-BB is a NLP-based branch-and-bound algorithm,
* B-OA is an outer-approximation decomposition algorithm,
* B-QG is an implementation of Quesada and Grossmann's branch-and-cut algorithm,
* B-Hyb is a hybrid outer-approximation based branch-and-cut algorithm.
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.
For Non-Convex MINLPs, a new Reformulation-Linearization based Branch-and-bound method has been recently added to the repository. Its name is BonCouenne and it is based on the Couenne cut generator library.
You can '''try Bonmin''' through the [http://neos.mcs.anl.gov/neos/solvers/minco:Bonmin/AMPL.html NEOS web interface].
Bonmin is also available in the latest release (22.5) of the [http://www.gams.com/ GAMS] modeling system. The system is available for
[http://download.gams-software.com/ download from GAMS]. Without buying a license it works as a demo with limited capabilities.
Bonmin is distributed under the Common Public
License ([http://www.opensource.org/licenses/cpl.php CPL]) on [http://www.coin-or.org COIN-OR]. The CPL is a license approved by the [http://www.opensource.org/ OSI] (Open Source
Initiative), thus Bonmin is OSI Certified Open Source Software.
For short download and installation instruction see GettingStarted.
More information and links can be found on [http://www.coin-or.org/Bonmin Bonmin homepage]. More on installation
and usage can be found in the Bonmin User's Manual (
[http://www.coin-or.org/Bonmin/Intro/index.html html], [https://projects.coin-or.org/Bonmin/browser/stable/0.1/Bonmin/doc/BONMIN_UsersManual.pdf?format=raw pdf]).
More information on the underlying algorithms in Bonmin can be found in:
[http://egon.cheme.cmu.edu/ibm/files/IBMReseReprc23771.pdf P. Bonami, L.T. Biegler, A.R. Conn, G. Cornuejols, I.E. Grossmann, C.D. Laird, J. Lee, A. Lodi, F. Margot, N.Sawaya and A. Waechter, An Algorithmic Framework for Convex Mixed Integer Nonlinear Programs, IBM Research Report RC23771. To appear in Discrete Optimization, in press.]
== Authors of the code ==
Project manager: [http://pageperso.lif.univ-mrs.fr/~pierre.bonami/index.html Pierre Bonami]
=== Contributors ===
* [http://www.andrew.cmu.edu/user/belotti/ Pietro Belotti], (Carnegie Mellon University),
* [http://pageperso.lif.univ-mrs.fr/~pierre.bonami/index.html Pierre Bonami], (Université de la Méditérannée)
* [http://www.or.deis.unibo.it/dambrosio.html Claudia D'Ambrosio] (Università di Bologna),
* [http://www.research.ibm.com/people/f/forrest/internet/ John J. Forrest] (IBM Copr.),
* Lazlo Ladanyi (IBM Copr.),
* [http://www.andrew.cmu.edu/user/claird/ Carl Laird], (Carnegie Mellon University),
* [http://domino.research.ibm.com/comm/research_people.nsf/pages/jonlee.index.html Jon Lee] (IBM Copr.),
* [http://wpweb2.tepper.cmu.edu/fmargot/index.html Francois Margot] (Carnegie Mellon University),
* [http://www.math.hu-berlin.de/~stefan/ Stefan Vigerske] (Humboldt-University, Berlin),
* [http://www.research.ibm.com/people/a/andreasw/ Andreas Waechter] (IBM Copr.)
== Acknowledgments ==
The code has been developed as part of a [http://egon.cheme.cmu.edu/ibm/page.htm collaboration] between Carnegie Mellon University and IBM Research to study new algorithms for MINLPs.
Credit should be given to our colleagues in this collaboration (which are not already cited as contributors): [http://www.cheme.cmu.edu/people/faculty/lb01.htm Larry T. Biegler], [http://www.research.ibm.com/people/a/arconn/ Andrew R Conn], [http://integer.tepper.cmu.edu/ Gerard Cornuejols], [http://www.cheme.cmu.edu/people/faculty/grossmann.htm Ignacio E. Grossmann], [http://www.or.deis.unibo.it/lodi.html Andrea Lodi] and Nick Sawaya.
They all took a very significant part in every aspects of the work and research which lead to Bonmin.
We, also, warmly thank [http://www.lehigh.edu/~jtl3/ Jeff Linderoth] and [http://plato.asu.edu/ Hans Mittelmann] for their help on installing Bonmin on NEOS and [http://www.math.hu-berlin.de/~stefan/ Stefan Vigerske] for his work on linking Bonmin with GAMS [https://projects.coin-or.org/GAMSlinks/ GAMSLinks].
== Project Links ==
* [http://www.coin-or.org/ COIN-OR Initiative]
* [http://egon.cheme.cmu.edu/ibm/page.htm IBM CMU Open Source MINLP project]
* [http://list.coin-or.org/mailman/listinfo/Bonmin Bonmin mailing list]
* [http://list.coin-or.org/mailman/listinfo/coin-discuss coin-discuss mailing list]
* [http://projects.coin-or.org/Bonmin/newticket Report a bug]
* ReleasesHistory page
* WishList wiki page
* HintTricks wiki page
* DevelopperWiki page
== External Links ==
* [http://www-neos.mcs.anl.gov/ NEOS] provides a web-interface to Bonmin and various other solvers.
* [http://plato.asu.edu/ftp/miqp.html] Hans Mittelman provides some independent benchmark comparing Bonmin to other MINLP solvers on problems with only quadratic constraints or objective.
* [http://www.coin-or.org/GAMSlinks/benchmarks/index.html#minlp] Stefan Vigerske provides some benchmark of various MINLP solver available in GAMS including Bonmin.
== Improve this page, report a bug, contribute to Bonmin ==
As an open-source code, contributions to Bonmin are welcome. To submit a contribution to Bonmin please follow the [http://www.coin-or.org/contributions.html COIN-OR guidelines].
The preferred way to report a bug is to use the ticket system. To report a bug using this system:
1. [http://www.coin-or.org/usingTrac.html Register and login],
1. [http://projects.coin-or.org/Bonmin/newticket Report a bug].
As all Wiki pages, this page is editable, this means that you can
modify the contents of this page simply by using your
web-browser. First [http://www.coin-or.org/usingTrac.html register and login] then simply click on the "Edit this page" link at the bottom
of the page. WikiFormatting will give you a detailed description of
available Wiki formatting commands.