Version 31 (modified by guest, 13 years ago) (diff)


Note that these project webpages are based on Wiki, i.e., webusers can modify the content, for example, in order to correct typos, add information, or --- something we would really be happy about --- to share their experience and tips with other users. You are welcome to contribute to these webpages; read more here.

COIN-OR Cut Generation Library

The COIN-OR Cut Generation Library (Cgl) is a collection of cut generators that can be used with other COIN-OR packages that make use of cuts, such as, among others, the linear solver Clp or the mixed integer linear programming solvers Cbc or BCP.

Language: C++.
License: CPL.
Mailing list: coin-discuss@…
Project Manager: Robin Lougee-Heimer.

Each cut generator is in a separate directory with its own maintainer. All generators are combined in one library when Cgl is compiled.

Available generators with link to their Wiki page and maintainer:

Download and Installation Instructions

Cgl is written in C++ and is released as open source code under the Common Public License (CPL). It is available from the COIN-OR initiative.

You can obtain the Cgl source code either via subversion or in form of nightly generated tarballs. The recommended method is subversion because it makes it easier to handle updates. Note that Cgl is automatically downloaded when you download other COIN packages (e.g. Cbc, BCP, SYMPHONY) using Cgl. The compilation and installation of Cgl, in that case, is handled from the base COIN package. The following instructions are useful only if you dowloaded Cgl as a stand-alone package.

The following commands may be used to obtain and build Cgl from the source code using subversion and default settings:

  1. svn co `` Coin-Cgl
  2. cd Coin-Cgl
  3. ./configure -C
  4. make
  5. make test
  6. make install

Step 1 issues the subversion command to obtain the source code. Alternatively the source code can be obtained from the tarball directory, by downloading a file with name of the form Cgl_YYYYMMMDD.tgz.

Step 3 runs a configure script that generates all the Makefiles.

Step 4 builds the Cgl library as well as other required libraries and executables.

Step 5 builds and runs the Cgl unitTest program. The code is in Coin-Cgl/Cgl/test. If the code is configured and compiled with all the default options, the output of the unitTest code should look like that.

Step 6 Installs libraries, executables, and header files in directories Coin-Cgl/lib, Coin-Cgl/bin and Coin-Cgl/include.

The BuildTools project has additional details on downloading, building, installing, available options and troubleshooting.

Cgl FAQs

Q: What is Cgl?
A: Cgl is a Cut Generator Library which will include standard cuts from the literature and provide a starting point for more advanced and problem specific cuts.

Q: What platforms does Cgl run on?
A: Cgl has been tested on:

  • AIX V4.3 using g++ V2.95.2 or higher
  • Windows using Microsoft Visual C++ V6
  • Windows under Cygwin
  • Linux using g++ V2.95.2 or higher
  • Solaris (SunOS 5.6 and 5.8) using g++ V2.95.2 or higher

Q: What LP and MIP solvers does Cgl use?
A: Cgl uses the abstract class OsiSolverInterface to use or communicate with a solver. It does not directly call a solver.

Hints and Tricks

Got one? Add it here.