wiki:WikiStart

Version 26 (modified by fmargot, 11 years ago) (diff)

--

Couenne, an exact solver for nonconvex MINLPs

Couenne (Convex Over and Under ENvelopes for Nonlinear Estimation) is a branch&bound algorithm to solve Mixed-Integer Nonlinear Programming (MINLP) problems. Its purpose is to find global optima of nonconvex MINLPs.

Couenne implements linearization, bound reduction, and branching methods within a Branch&Bound framework. Its main components are:

  • an expression library;
  • separation of linearization cuts;
  • branching rules;
  • bound tightening methods.

It is distributed on Coin-OR under the Common Public License (CPL). The CPL is a license approved by the Open Source Initiative (OSI), thus Couenne is OSI Certified Open Source Software.

Download, installation and usage

Couenne is found on the COIN-OR project page. It can be downloaded with Subversion -- see also some instructions on using svn. Run the command:

svn co https://projects.coin-or.org/svn/Couenne/trunk Couenne

to get the source code. Before building and installing Couenne, some third party packages are needed. These cannot be downloaded from COIN-OR, and have to be obtained independently. These packages are: ASL, Blas, Lapack, and HSL. The user is referred to the INSTALL file in each of the subdirectories of Couenne/ThirdParty? for instructions on how to obtain them.

To install Couenne, we refer to general installation instructions for COIN-OR projects. The impatient may want to issue the following commands:

cd Couenne
cd ThirdParty (read INSTALL.* file in each subdirectory and get third party software)
cd ..
mkdir build
cd build
../configure -C
make
make install

The above commands place Couenne in the Couenne/build/bin/ directory, libraries in Couenne/build/lib/, and include files in Couenne/build/include/. An alternative directory can be specified with the --prefix option of configure. For instance, when replacing "../configure -C" above with

../configure -C --prefix=/usr/local

the Couenne executable will be installed in /usr/local/bin/, the libraries in /usr/local/lib/, and the include files in /usr/local/include/. Couenne is run as follows:

couenne instance.nl

where instance.nl is an AMPL stub (.nl) file. Such files can be generated from AMPL with the command "write gfilename;" (notice the "g" before the file name), for example.

You may also specify a set of options to tweak the performance of Couenne. These are found in the couenne.opt option file. A sample option file is given in the Couenne/src/ directory.

Documentation

Doxygen documentation can be generated by running

make doxydoc

from the same build/ directory where you ran configure, make, and make install. Documentation in both html and LaTeX format can be found in the Doc/ subdirectory. Fire up your browser and take a look at Doc/html/index.html for documentation of Couenne.

Couenne is maintained by Pietro Belotti (belotti at lehigh dot edu).

Web page: https://projects.coin-or.org/Couenne/wiki

Dependencies: CoinUtils, Cbc, Cgl, Clp, Ipopt, and Osi (from Coin-OR); ASL (the Ampl Solver Library), Lapack, Blas, and HSL.

External resources: Coin-OR, Common Public License.

Improve this page, report a bug, contribute to Couenne

As an open-source code, contributions to Couenne are welcome. To submit a contribution to Couenne, please follow the COIN-OR guidelines.

In order to report a bug, use the ticket system. All you need to do is

  1. Register and login,
  2. Create a ticket.

As all Wiki pages, this page is editable: you can easily modify its contents with your web browser. First register and login, then click on the "Edit this page" link at the bottom of the page. WikiFormatting gives you a detailed description of available Wiki formatting commands.

Contributors

Acknowledgments

This project was initiated in 2006 within a collaboration between IBM and Carnegie Mellon University, aimed at developing algorithms for MINLP.

Credit should be given to our colleagues in this collaboration: Andreas, Pierre, and Stefan, who developed part of Couenne, and Larry T. Biegler, Gérard Cornuéjols, Ignacio E. Grossmann, Jon Lee, and François Margot. Each has contributed an essential part of the development of Couenne.