Clp (Coin-or linear programming) is an open-source linear programming solver. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available. It is designed to find solutions of mathematical optimization problems of the form
minimize c'x such that lhs ≤ Ax ≤ rhs and lb ≤ x ≤ ub
CLP includes primal and dual Simplex solvers. Both dual and primal algorithms can use matrix storage methods provided by the user (0-1 and network matrices are already supported in addition to the default sparse matrix). The dual algorithm has Dantzig and Steepest edge row pivot choices; new ones may be provided by the user. The same is true for the column pivot choice of the primal algorithm. The primal can also use a non linear cost which should work for piecewise linear convex functions. CLP also includes a barrier method for solving LPs.
Clp is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code is written primarily by John J. Forrest, now retired from IBM Research. The project is currently managed by John Forrest, Lou Hafer, Julian Hall, and Matthew Saltzman.
The Clp website is https://github.com/coin-or/Clp.
Binaries for most platforms are available for download from Bintray
- Linux: On Debian/Ubuntu, Cbc is available in the package
coinor-clp
and can be installed with apt. On Fedora, Cbc is available in the packagecoin-or-Clp
. - Windows: The easiest way to get Cbc on Windows is to download from Bintray, although an old interactive installer for the COIN-OR Optimization Suite is also still available.
- Mac OS X: The easiest way to get Cbc on Mac OS X is through Homebrew.
brew tap coin-or-tools/coinor
brew install clp
- AMPL also provides stand-alone Clp executables that can be used with (or without) AMPL.
- The GAMS distribution includes Clp.
Due to license incompatibilities, pre-compiled binaries lack some functionality. If binaries are not available for your platform for the latest version and you would like to request them to be built and posted, feel free to let us know on the mailing list.
Source code can be obtained either by
- Downloading a snapshot of the source code for the latest release version of Cbc from the Clp source code download page, or
- Checking out the code from Github or using the
coinbrew
script (recommended).
Below is a quick start guide for building on common platforms. More detailed build instructions are here (this is a work in progress).
To build Clp from source, obtain the coinbrew
script from
https://coin-or.github.io/coinbrew/
and run
/path/to/coinbrew fetch Clp
/path/to/coinbrew build Clp --prefix=/dir/to/install --test
/path/to/coinbrew install Clp
The coinbrew
script will fetch these additional projects.
- Install these Dependencies
- Obtain the source code, e.g., from https://github.com/coin-or/Clp
- Run
./configure -C
to generate makefiles - Run
make
to build the CoinUtils library - Run
make test
to build and run the CoinUtils unit test program - Run
make install
to install library and header files.
For Microsoft Visual C++ users, there are project files for version 10
available in the MSVisualStudio
directory. First, obtain the source code
using either a Windows git client or download a snapshot. In MSVC++ Version
10, open the solution file (this should be converted to whatever version of
MSVC+ you are using) and build the Clp project. The code should build out of
the box with default settings.
It is also possible to build Clp with the Visual Studio compiler from the
command line using the procedure for Unix-like environments, using the Msys2
shell or CYGWIN. This is the recommended and best-supported way of building
Clp in Windows from source. To do so, make sure the cl
compiler is in your
path and add --enable-msvc to build command of
coinbrew`.
If you have Doxygen
available, you can build a HTML documentation by typing
make doxydoc
in the build directory.
If Clp was build via coinbrew
, then the build directory is ./build/Clp
.
The doxygen documentation main file is found at ./doxydoc/html/index.html
in the build directory.
If Doxygen
is not available, you can use also use this link.
Help:
Documentation:
- Doxygen-generated html documentation
- Source code examples
- User's Guide (from 2004)
Interfaces: