Version 12 (modified by robinlh@…, 13 years ago) (diff)


COIN-OR Cut Generation Library

The COIN-OR Cut Generation Library (CGL) is a collection of cutting planes, or "cut generators" that can be used with other COIN-OR native tools that make use of cuts.

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

Each cut generator is it's own project, with it's own project manager.

CGL FAQs: <under construction - your input welcome!>

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

Q: What cut generators are currently in Cgl?
A: At the moment the following cut generators: [[BR]

CglClique, clique cuts CglDuplicateRow, fix variables and find duplicate/dominated rows CglFlowCover, flow covers cuts CglGomory, gomory cuts CglKnapsackCover, knapsack covers cover CglLiftAndProject, lift-and-project cuts using "norm 1" CglMixedIntegerRounding, mixed-integer rounding CglOddHole, generalized odd hole CglProbing, probing cuts CglSimpleRounding, simple rounding cut meant to be a simple example for people wanting to write their own cut generator (not practically useful) CglTwomir, two step mixed-integer rounding

The knapsack cover cut generator has a variety of methods for finding and lifting covers. You can re-use the various cover-finding methods and cover-lifting methods to build your own variations of this classic cut.
Q: What platforms does CGL run on?
A: CGL has been tested on:

AIX V4.3 using g++ V2.95.2 Windows using Microsoft Visual C++ V6 Windows using the Cygwin toolchain Linux using g++ V2.95.2. Solaris (SunOS 5.6 and 5.8) using g++ V2.95.2

Q: What LP and MIP solvers does CGL use?
A: CGL uses OSI to access a solver. It does not directly call a solver.

Download and installation instructions

A note here: tarballs will be created as before.
For standalone projects checking out the latest version (not a branch) of project Foo is fine and should be done by

svn checkout Foo

For projects that depend on other projects in COIN (like Clp) checking out the latest version (not a branch) of project Foo should be done by

svn checkout Coin-Foo

(The reason to check things out into a directory named Coin-Foo is that a subdirectory named Foo will be created within, and Foo/Foo? looks weird :-)