Projects

This page gives links to the web pages for all COIN-OR projects. An alphabetical list with details follows the list by category below.

Projects by Category

Development tools

Documentation

Graphs

Interfaces

Metaheuristics

Modeling systems

Optimization bilevel

Optimization convex non-differentiable

Optimization deterministic linear

Optimization deterministic linear continuous

Optimization deterministic linear discrete

Optimization deterministic nonlinear

Optimization deterministic nonlinear discrete

Optimization deterministic nonlinear nonconvex mixed-integer

Optimization deterministic semidefinite continuous

Optimization stochastic

Optimization utility

Python tools

Stochastic modeling

Visualization software

Projects Alphabetically

ABACUS An LP-based branch-and-cut framework. Inactive

ABACUS is a software system written in C++ that provides a framework for the implementation of branch-and-bound algorithms using linear programming relaxations. Cutting planes or columns can be generated dynamically (branch-and-cut, branch-and-price, branch-and-cut-and-price).

Project manager
Frank Baumann, Mark Sprenger
Home page
https://github.com/coin-or/ABACUS
License
Lesser GNU general public license
Programming language
C++
Development status
Activity: Inactive · Maturity level: 4 · Stable version: 3.2betaU1 · Stable release: no release version
Linked COIN-OR projects
OSI, CLP, DyLP, SYMPHONY, Vol
Categories
Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc-4.1
ADOL-C A package for the automatic differentiation of C and C++ programs. Active

ADOL-C is an open-source package for the automatic differentiation of C and C++ programs. The resulting evaluation routines for first and higher-order derivatives may be called from C, C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run time and random access memory required by the given function evaluation program. Derivative matrices are obtained by columns, by rows or in sparse format. For solution curves defined by ordinary differential equations, special routines are provided that evaluate the Taylor coefficient vectors and their Jacobians with respect to the current state vector. For explicitly or implicitly defined functions derivative tensors are obtained with a complexity that grows only quadratically in their degree.

Project manager
Andrea Walther
Home page
https://github.com/coin-or/ADOL-C
License
Eclipse Public License 2.0 or GNU General Public License 2.0
Programming language
C and C++
Development status
Activity: Active · Maturity level: 4 · Stable version: 2.7 · Stable release: 2.7.2
Categories
Optimization utility

Third-party software

PackageRequired/Optional
ColPackOptional (for exploitation of sparsity)

Builds and passes unit tests on

Operating systemCompiler
Linuxg++
LinuxIntel icpc
Mac OS Xg++
Microsoft WindowsCYGWIN/icl
Microsoft WindowsMSVC++/cl
BCP A framework for constructing parallel branch-cut-price algorithms for mixed-integer linear programs. Active

BCP is a parallel framework for implementing branch, cut, and price algorithms for solving mixed integer programs (MIPs). BCP provides the user with an object-oriented framework that can be used to develop an efficient problem class specific MIP solver without all the implementational effort. involved with implementing a branch and bound framework from scratch.

Project manager
ladanyi at us dot ibm dot com
Home page
https://github.com/coin-or/Bcp
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 1.4 · Stable release: 1.4.4
Linked COIN-OR projects
BuildTools, CoinUtils, Cgl, OSI, CLP
Categories
Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc
Linuxgcc
OSXgcc
Solarix X86gcc
Solarix X86sunpro
BONMIN An experimental open-source C++ code for solving general MINLP (Mixed Integer NonLinear Programming) problems. Inactive

BONMIN (Basic Open-source Nonlinear Mixed INteger programming) is an open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems. It is distributed on COIN-OR under the CPL (Common Public License).

Project manager
Pierre Bonami
Home page
https://coin-or.github.io/Bonmin
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 4 · Stable version: 1.8 · Stable release: 1.8.8
Linked COIN-OR projects
CBC, Cgl, CLP, CoinUtils, Ipopt, OSI
Categories
Optimization deterministic nonlinear discrete

Third-party software

PackageRequired/Optional
Ampl Solver LibraryOptional
BlasRequired (any implementation)
CPLEXOptional
LapackOptional (any implementation)
MA27Required

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsCYGWIN/g++
Microsoft WindowsMSys/g++
Linuxg++
Mac OSXg++
BuildTools Tools for managing configuration and compilation of various COIN-OR projects under Linux, Unix, and Cygwin. Active

COIN-OR developer tools and documentation, tools for managing configuration and compilation of various COIN-OR projects under Linux, Unix, and Cygwin.

Project manager
stefan at gams dot com
Home page
https://github.com/coin-or-tools/BuildTools
License
Eclipse Public License 2.0
Programming language
Shell script (/bin/sh); autoconf
Development status
Activity: Active · Maturity level: 4 · Stable version: 0.8 · Stable release: 0.8.10
Categories
Development tools
CBC An LP-based branch-and-cut library. Active

CBC is an open-source MILP solver. It uses many of the COIN-OR components and is designed to be used with CLP. It is available as a library and as a standalone solver.

Project manager
Ted Ralphs, ted at lehigh dot edu
Home page
https://github.com/coin-or/Cbc
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 2.10 · Stable release: 2.10.5
Linked COIN-OR projects
CoinUtils, OSI, CLP, Cgl
Categories
Optimization deterministic linear discrete

Third-party software

PackageRequired/Optional
GLPKOptional
GNU ReadlineOptional
GNU HistoryOptional
AMPL Solver Library (ASL)Optional
BLASOptional
LAPACKOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsVisual Studio, cl
Microsoft Windows / Cygwin / Msys / MinGWgcc, cl
Linuxgcc
Mac OS Xgcc
Cgc A collection of network representations and algorithms. Inactive

Cgc is a collection of network representations to facilitate the development and implementation of network algorithms.

Project manager
hpwalton at yahoo.com
Home page
https://github.com/coin-or/Cgc
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 2
Categories
Graphs, Optimization utility

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Cgl A library of cutting-plane generators. Active

The COIN-OR Cut Generation Library (Cgl) is an open collection of cutting plane implementations (“cut generators”) for use in teaching, research, and applications. Cgl can be used with other COIN-OR packages that make use of cuts, such as the mixed-integer linear programming solver Cbc. Each cut generator has its own maintainer who leads the development of its functionality, testing, and documentation. See below for a listing of available generators. All the generators are combined in one library when Cgl is compiled.

Project manager
Robin Lougee (rlougee at us.ibm.com)
Home page
https://github.com/coin-or/Cgl
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 0.60 · Stable release: 0.60.3
Linked COIN-OR projects
CoinUtils, OSI
Categories
Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
GNU/Linuxgcc
Mac OS Xgcc, clang
Microsoft Windows with MSys2gcc, cl, icl
Microsoft WindowsVisual Studio, cl

Subprojects

Combinatorial cuts:

  • CglAllDifferent
  • CglBKClique
  • CglClique
  • CglCliqueMerging
  • CglKnapsackCover
  • CglOddHole
  • CglOddHoleWC
  • CglZeroHalf

Flow cover cuts:

  • CglFlowCover

Gomory cuts and variants:

  • CglGomory
  • CglGMI
  • CglRedSplit
  • CglRedSplit2

Lift-and-project cuts:

  • CglLiftAndProject
  • CglLandP

Mixed integer rounding cuts and variants:

  • CglMixedIntegerRounding
  • CglMixedIntegerRounding2
  • CglTwomir
  • CglResidualCapacity

Strengthening:

  • CglDuplicateRow
  • CglPreprocess
  • CglProbing
  • CglSimpleRounding
CHiPPS A framework for constructing parallel tree search algorithms (includes an LP-based branch-cut-price implementation). Active

CHiPPS is the COIN-OR Open Parallel Search Framework, a framework for implementing parallel algorithms based on tree search. The current CHiPPS architecture consists of three layers. The Abstract Library for Parallel Search (ALPS) is the base layer of a hierarchy consisting of implementations of various tree search algorithms for specific problem types. The Branch, Constrain, and Price Software (BiCePS) is a data management layer built on top of ALPS for implementing relaxation-based branch and bound algorithms. The BiCePS Linear Integer Solver (BLIS) is a concretization of the BiCePS layer for solving mixed-integer linear programs. ALPS, BiCePS, and BLIS are sub-repostories of the CHiPPS Subversion repository.

Project manager
Ted Ralphs, ted at lehigh dot edu
Home page
https://github.com/coin-or/CHiPPS-ALPS
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: see project home page · Stable release: see project home page
Linked COIN-OR projects
BuildTools, CoinUtils, Cgl, OSI, CLP
Categories
Optimization deterministic linear discrete, Optimization utility

Third-party software

PackageRequired/Optional
BLASOptional
LAPACKOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc
Linuxgcc
OSXgcc
Solarix X86gcc
Solarix X86sunpro
CLP A simplex solver. Active

CLP is a high quality open-source LP solver. Its main strengths are its Dual and Primal Simplex algorithms. It also has a barrier algorithm for Linear and Quadratic objectives. There are limited facilities for Nonlinear and Quadratic objectives using the Simplex algorithm. It is available as a library and as a standalone solver. It was written by John Forrest, jjforre at us.ibm.com.

Project manager
Julian Hall, jajhall@ed.ac.uk
Home page
https://github.com/coin-or/Clp
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 1.17 · Stable release: 1.17.6
Linked COIN-OR projects
CoinUtils, OSI
Categories
Optimization deterministic linear continuous

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
Mac OS Xgcc
Microsoft WindowsVisual Studio, cl
Microsoft Windows with MSys2gcc, cl, icl
CMPL A mathematical programming language and a system for mathematical programming and optimisation of linear optimisation problems. Active

CMPL is a mathematical programming language and a system for mathematical programming and optimisation of linear optimisation problems. CMPL executes CBC (default), GLPK, SCIP, Gurobi or CPLEX directly to solve the generated model instance. Because it is also possible to transform the mathematical problem into MPS, Free-MPS or OSiL files, alternative solvers can be used. The CMPL distribution contains Coliop which is an (simple) IDE (Integrated Development Environment) for CMPL. The CMPL package also contains pyCMPL, jCMPL and CMPLServer. pyCMPL is the CMPL application programming interface (API) for Python and an interactive shell and jCMPL is CMPL’s Java API. CMPLServer is an XML-RPC-based web service for distributed and grid optimisation that can be used with CMPL, pyCMPL and jCMPL.

Project manager
Mike Steglich – mike.steglich at th-wildau dot de
Home page
https://github.com/coin-or/Cmpl
License
GPLv3 (CMPL and Coliop) and LGPLv3 (pyCMPL, jCMPL, CMPLServer)
Programming language
C++, Python, Java
Development status
Activity: Active · Maturity level: Not Yet Classified · Stable version: 1.12 · Stable release: 1.12.0
Linked COIN-OR projects
CBC
Categories
Interfaces, Modeling systems

Third-party software

PackageRequired/Optional
CPLEXOptional
GLPKRequired
GurobiOptional
SCIPOptional
Qt5Required

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc, Python 2.7, Java 7
Mac OS Xgcc, Python 2.7, Java 7
Microsoft WindowsMSYS/MinGW/gcc, Python 2.7, Java 7
Coin Bazaar Small examples and extensions of COIN-OR projects. Active

The Coin Bazaar project facilitates community involvement in the COIN-OR repositories. This project allows OR researchers to contribute code examples, application examples and code extensions and plugins without directly contributing to a regular COIN-OR project. Thus, this project helps bridge the gap between core package development and package extensions. Specific goals of this project are (1) to manage extensions to COIN-OR packages that have limited subversion access, (2) allow developers and COIN-OR users to share code and application examples, and (3) provide a home for auxilliary software tools that facilitate the use of COIN-OR tools.

Project manager
William Hart, wehart at sandia dot gov
Home page
https://github.com/coin-or-tools/CoinBazaar
License
Individual Coin Bazaar projects are licensed separately under OSI approved licenses.
Programming language
Coin Bazaar packages may be written in a variety of languages.
Development status
Activity: Active · Maturity level: Various
Categories
Development tools, Optimization utility
CoinBinary Pre-compiled binary distributions of COIN-OR projects. Active

The goal of this project is to provide sets of libraries and executables precompiled and tested on the most popular platforms for those users who do not need to look at or modify the source code of the COIN projects themselves. The CoinAll distribution is an associated effort to develop a distribution consisting of a set of consistent, interoperable binaries built from the source code of as large a subset of COIN-OR projects as possible. The idea is to allow a user who wants binaries for a large number of COIN projects and wants to ensure that they will all interoperate to be able to download them all at once in a single distribution.

Project manager
Ted Ralphs, ted at lehigh dot edu
Home page
https://github.com/coin-or/CoinBinary
License
Eclipse Public License 2.0
Programming language
C/C++
Development status
Activity: Active · Maturity level: 5 · Stable version: see project management page · Stable release: see project management page
Linked COIN-OR projects
BCP, BuildTools, CHiPPS, CBC, Cgl, CLP, CoinUtils, DyLP, FLOPC++, Ipopt, OSI, Optimization Services, SMI, Test Tools, Vol
Categories
Interfaces, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Optimization deterministic nonlinear, Optimization stochastic, Optimization utility

Third-party software

PackageRequired/Optional
GlpkOptional
GNU ReadlineOptional
GNU HistoryOptional
AMPL Solver Library (ASL)Optional
BLASOptional
LAPACKOptional
Harwell Subroutine LibraryOptional
MumpsOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc
Linuxgcc
OSXgcc
Solarix X86gcc
Solarix X86sunpro
CoinEasy New user information and support, CoinEasy is designed for new users of COIN-OR. The objective is to make it easy to use COIN-OR projects. Different users have different objectives and we provide information on how to get up and running easily depending upon the objective

Please consult the CoinEasy home page for further information.

CoinMP A lightweight API and DLL for CLP, CBC, and CGL. Active

CoinMP is a C-API interface library that supports most of the functionality of the CLP (Coin LP), CBC (Coin Branch-and-Cut), and CGL (Cut Generation Library) projects. When compiled for Windows it generates a CoinMP.dll library that can be readily used in other Windows C/C++ projects. When compiled for Unix it generates a CoinMP.so library that can be similarly used in other Unix C/C++ projects. The project includes precompiled CoinMP.dll that is ready to be used as is in other Windows applications.

Project manager
Bjarni Kristjansson, bjarni at maximalsoftware dot com
Home page
https://github.com/coin-or/CoinMP
License
Eclipse Public License 2.0
Programming language
C
Development status
Activity: Active · Maturity level: 4 · Stable version: 1.8 · Stable release: 1.8.4
Linked COIN-OR projects
CoinUtils, CLP, CBC, Cgl, OSI, BuildTools
Categories
Interfaces, Modeling systems, Optimization utility

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc/cl
Linuxgcc/g++
Mac OSXgcc
Solaris x86gcc
CoinUtils Utilities, data structures, and linear algebra methods for COIN-OR projects. Active

The CoinUtils project is a collection of open-source utilities developed and used by a variety of other projects in the COIN-OR repository. The project includes classes for storing and manipulating sparse matrices and vectors, performing matrix factorization, parsing input files in standard formats, building representations of mathematical programs, comparing floating point numbers with a tolerance, performing simple presolve operations, and warm starting algorithms for mathematical programs, among others.

Project manager
Laszlo Ladanyi, ladanyi at us dot ibm dot com
Home page
https://www.github.com/coin-or/CoinUtils
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 2.11 · Stable release: 2.11.4
Categories
Optimization utility

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
Mac OS Xgcc
Microsoft WindowsMSys2/cl
Microsoft WindowsMSys2/icl
Microsoft WindowsMSys2/gcc
Microsoft WindowsMSVC++/cl
Couenne A branch-and-bound algorithm for mixed integer nonlinear programming problems. Active

Couenne (Convex Over and Under ENvelopes for Nonlinear Estimation) is a spatial branch & bound algorithm that implements linearization, bound reduction, and branching techniques for Mixed-integer, Nonlinear Programming (MINLP) problems. The purpose of Couenne is to find global optima of nonconvex MINLPs.

Project manager
Pietro Belotti
Home page
https://github.com/coin-or/Couenne
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 3 · Stable version: 0.5 · Stable release: 0.5.8
Linked COIN-OR projects
BuildTools, CoinUtils, Cgl, OSI, CLP, Ipopt, BONMIN, CBC
Categories
Optimization deterministic nonlinear nonconvex mixed-integer

Third-party software

PackageRequired/Optional
Ampl Solver LibraryOptional
BlasRequired (any implementation)
LapackOptional (any implementation)
At least one sparse linear solver (Mumps or MA27)Required

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
Microsoft WindowsCYGWIN/gcc
CppAD A tool for differentiation of C++ functions. Active

Given a C++ algorithm that computes function values, CppAD generates an algorithm that computes corresponding derivative values.

Project manager
Brad Bell, https://www.seanet.com/~bradbell
Home page
/CppAD
License
Eclipse Public License 2.0 or (GNU General Public License 2.0 or later)
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 20200000 · Stable release: 20200000.1
Categories
Optimization utility

Third-party software

PackageRequired/Optional
ADOL-COptional
Boost: uBlas vector, ThreadOptional
ColPackOptional
EigenOptional
FADBADOptional
IpoptOptional
OpenMPOptional
PthreadOptional
SacadoOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++
Macclang
Cygwingcc, clang
Msys2gcc, clang
Linuxgcc, clang
Crème An implementation of the randomized thermal relaxation method to find a feasible solution of the Maximum Feasible Subsystem problem. Inactive

Crème (COIN-OR RElaxation MEthod) is an implementation of a heuristic for the Maximum Feasible Subsystem (MaxFS) problem. The MaxFS problem consists of finding the subsystem of an infeasible LP such that the subsystem is feasible and contains a maximum number of constraints. Crème implements a randomized and thermal variant of the relaxation method proposed by Agmon (1954) and Motzkin and Schoenberg (1954). Crème is a heuristic that updates an iterate while keeping track of the number of inequalities satisfied at each iteration. See E. Amaldi, P. Belotti, R. Hauser, Randomized Relaxation Methods for the Maximum Feasible Subsystem Problem. In M. Juenger, V. Kaibel (eds.), Integer Programming and Combinatorial Optimization, 11th International IPCO Conference, Berlin, Germany, June 8-10, 2005, pages 249-264, 2005.

Project manager
Pietro Belotti (pbelott at clemson dot edu)
Home page
https://github.com/coin-or/Creme
License
Eclipse Public License 2.0
Programming language
C
Development status
Activity: Inactive · Maturity level: 2 · Stable version: no stable version · Stable release: no release version
Linked COIN-OR projects
BuildTools
Categories
Optimization deterministic linear

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
CSDP A software package for semidefinite programming. Active

A software package for semidefinite programming.

Project manager
Brian Borchers borchers at nmt dot edu
Home page
https://github.com/coin-or/Csdp
License
Eclipse Public License 2.0
Programming language
C
Development status
Activity: Active · Maturity level: 4 · Stable version: 6.2 · Stable release: 6.2.0
Categories
Optimization deterministic semidefinite continuous

Third-party software

PackageRequired/Optional
BLASRequired
LAPACKRequired

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
WindowsMinGW gcc
Solarissunpro
AIXxlc
cuOpt NVIDIA® cuOpt™ is a GPU-accelerated optimization engine Active

NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in mixed integer linear programming (MILP), linear programming (LP), and vehicle routing problems (VRP). It enables near real-time solutions for large-scale challenges with millions of variables and constraints, offering easy integration into existing solvers and seamless deployment across hybrid and multi-cloud environments.

Project manager
Anandh Anandh
Home page
https://github.com/coin-or/cuOpt
License
Apache License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5
Categories
Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
LinuxCUDA
CyLP a Python interface to Cbc and Clp Abandoned

CyLP is a Python interface to COIN-OR’s Linear and mixed-integer program solvers (CLP, CBC, and CGL). CyLP’s unique feature is that one can use it to alter the solution process of the solvers from within Python. For example, one may define cut generators, branch-and-bound strategies, and primal/dual Simplex pivot rules completely in Python.

Project manager
Mehdi Towhidi, mehdi dot towhidi at kronos dot com
Home page
https://github.com/coin-or/CyLP
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Abandoned · Maturity level: 5
Linked COIN-OR projects
CBC, CLP, Cgl
Categories
Interfaces, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Python tools

Third-party software

PackageRequired/Optional
NumpyRequired
ScipyRequired
DFO a package for solving general nonlinear optimization problems when derivatives are unavailable

Please consult the DFO home page for further information.

DIP A framework for implementing a variety of decomposition-based branch-and-bound algorithms for solving mixed-integer linear programs. Active

DIP (Decomposition in Integer Programming) is a framework for implementing a wide variety of decomposition-based algorithms for solving integer programs.

Project manager
Ted Ralphs, ted at lehigh dot edu
Home page
https://github.com/coin-or/Dip
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 0.92 · Stable release: 0.92.4
Linked COIN-OR projects
BuildTools, CoinUtils, CHiPPS, Cgl, OSI, CLP, CBC
Categories
Optimization deterministic linear discrete

Third-party software

PackageRequired/Optional
BLASOptional
LAPACKOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc
Linuxgcc
OSXgcc
Solarix X86gcc
Solarix X86sunpro
DisCO A solver library for MISOCP. Active

DisCO is an open-source distributed memory parallel solver library for MISOCP. It implements various algorithms and is compatible with various other solvers at solving continuous relaxations.

Project manager
Aykut Bulut, aykutblt at gmail dot com
Home page
https://github.com/coin-or/DisCO
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 2
Linked COIN-OR projects
BuildTools, CoinUtils, OSI, CLP, Cgl, Ipopt, CHiPPS-ALPS, CHiPPS-BiCePS
Categories
Optimization deterministic linear continuous, Optimization deterministic linear discrete, Optimization deterministic nonlinear, Optimization deterministic nonlinear discrete

Third-party software

PackageRequired/Optional
Blas
Lapack
Glpk
HSL
Metis
Mumps
OsiConic
CglConic
OsiMosek
OsiCplex

Builds and passes unit tests on

Operating systemCompiler
GNU/Linuxgcc
Mac OSX 10.11clang Xcode 8
Mac OSX 10.12clang Xcode 8.2
Djinni A templatized C++ framework with Python bindings for heuristic search. Inactive

Djinni is a templatized C++ framework with python bindings for heuristic search.

Project manager
Justin C. Goodson
Home page
https://github.com/coin-or/Djinni
License
ISC License
Programming language
C++, Python
Development status
Activity: Inactive · Maturity level: 5 · Stable version: 2.2 · Stable release: 2.2.4
Categories
Metaheuristics

Third-party software

PackageRequired/Optional
boostOptional
PyGTKOptional

Builds and passes unit tests on

Operating systemCompiler
Mac OS XGCC
SolarisGCC
FreeBSDGCC
LinuxGCC
DyLP An implementation of the dynamic simplex method. Active

DyLP is an open-source implementation of the dynamic simplex algorithm for linear programming. DyLP is pure C, heavily instrumented and commented, targetted toward algorithm development. A C++ OSI interface, OsiDylp, is also available.

Project manager
Lou Hafer, lou@cs.sfu.ca
Home page
https://github.com/coin-or/DyLP
License
Default is Eclipse Public License (EPL) 1.0. Gnu General Public License (GPL) on request.
Programming language
C (dylp), C++ (OsiDylp)
Development status
Activity: Active · Maturity level: 5 · Stable version: 1.10 · Stable release: 1.10.4
Categories
Optimization deterministic linear continuous

Builds and passes unit tests on

Operating systemCompiler
Microsoft Windows 7, XP / Cygwin / MinGW / MsysGCC, cl
Microsoft Windows 7, XP / Visual Studiocl
Fedora LinuxGCC
Solaris (SPARC, x86)Studio, GCC
Mac OSXGCC
filterSD A library for nonlinear optimization written in Fortran. Active

FilterSD is an open-source package for solving Nonlinear Programming Problems and Linearly Constrained Problems in continuous optimization, written in Fortran.

Project manager
Frank E. Curtis
Home page
https://github.com/coin-or/filterSD
License
Eclipse Public License 2.0
Programming language
Fortran 77
Development status
Activity: Active · Maturity level: 2 · Stable version: 2.0 · Stable release: 2.0.1
Categories
Optimization deterministic nonlinear

Builds and passes unit tests on

Operating systemCompiler
Mac OS Xgfortran
FLOPC++ An algebraic modeling language embedded in C++. Active

An open source algebraic modelling language implemented as a C++ class library.

Project manager
Tim Hultberg, tim dot hultberg at eumetsat dot int
Home page
https://github.com/coin-or/FlopC++
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 4 · Stable version: 1.2 · Stable release: 1.2.5
Linked COIN-OR projects
CoinUtils, Cgl, CLP, OSI, CBC, SMI, BuildTools
Categories
Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Optimization stochastic
GiMPy a Python library containing pure Python implementations of a variety of graph algorithms with visualizations Active

Graph Methods in Python (GiMPy) is a Python graph library containing pure Python implementations of a variety of graph algorithms. The goal is clarity in implementation rather than eficiency. Most methods have an accompanying visualization and are thus appropriate for use in the classroom.

Project manager
Ted Ralphs, ted at lehigh.edu
Home page
https://github.com/coin-or/GiMPy
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Active · Maturity level: 5
Categories
Graphs, Modeling systems, Python tools, Visualization software

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsPython 2.7
LinuxPython 2.7
OS XPython 2.7
Gravity Gravity is an open source, scalable, memory efficient modeling language for solving mathematical models in Optimization and Machine Learning. Active

Gravity is an open source, scalable, memory efficient modeling language for solving mathematical models in Optimization and Machine Learning. It exploits structure to reduce function evaluation time including Jacobian and Hessian computation. Gravity is implemented in C++ with a flexible interface allowing the user to specify the numerical accuracy of variables and parameters and can handle arbitrary Mixed-Integer Nonlinear Programs (MINLPs) as well as Mixed-Integer Semidefinite Programs (MISDPs). It is also designed to offer efficient iterative model solving, convexity detection, multithreading of subproblems, and lazy constraint generation. When compared to state-of-the-art modeling languages such as JuMP, Gravity is 5 times faster in terms of function evaluation and up to 60 times more memory efficient. Short term goals include Lasserre’s hierarchy implementation for polynomial optimization and automatic symbolic variable elimination for MINLPs.

Project manager
Hassan Hijazi, hlh at lanl dot com
Home page
https://github.com/coin-or/Gravity
License
BSD-3 Clause
Programming language
C++
Development status
Activity: Active · Maturity level: 3
Categories
Modeling systems

Third-party software

PackageRequired/Optional
IPOPTOptional
BONMINOptional
GUROBIOptional
CPLEXOptional
MOSEKOptional

Builds and passes unit tests on

Operating systemCompiler
LINUXGNU
MACGNU/CLANG
GrUMPy a Python library for visualizing various aspects of mathematical programming, including visualizations of the branch-and-cut process, branch-and-bound trees, polyhedra, cutting plane methods, etc. Active

Graphics for Understanding Mathematical Programming in Python (GrUMPy) is a Python library for visualizing various aspects of mathematical programming, including visualizations of the branch-and process, branch-and-bound trees, polyhedra, cutting plane methods, etc. The goal is clarity in implementation rather than efficiency. Most methods have an accompanying visualization and are thus appropriate for use in the classroom.

Project manager
Ted Ralphs, ted at lehigh.edu
Home page
https://github.com/coin-or/GrUMPy
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Active · Maturity level: 5 · Stable version: 0.6 · Stable release: 0.6.1
Categories
Graphs, Optimization deterministic linear discrete, Optimization utility, Python tools, Visualization software

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsPython 2.7
LinuxPython 2.7
OS XPython 2.7
HiGHS Linear optimization software Active

High performance serial and parallel solver for large scale sparse linear programming

Project manager
Julian Hall, jajhall at ed dot ac dot uk
Home page
https://github.com/ERGO-Code/HiGHS
License
MIT License
Programming language
C++
Development status
Activity: Active · Maturity level: 2
Linked COIN-OR projects
OSI
Categories
Optimization deterministic linear continuous

Builds and passes unit tests on

Operating systemCompiler
LinuxGCC
LinuxCLANG
Ipopt A solver for general large-scale nonlinear continuous optimization. Active

Ipopt is an open-source solver for large-scale nonlinear continuous optimization. It can be used from various modeling environments and is available as callable library with interfaces to C++, C, Fortran, Java, and R. Ipopt uses an interior point method, together with a filter linear search procedure.

Project manager
andreas dot waechter at northwestern dot edu
Home page
https://github.com/coin-or/Ipopt
License
Eclipse Public License
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: see project page · Stable release: see project page
Categories
Optimization deterministic nonlinear

Third-party software

PackageRequired/Optional
BlasRequired (any implementation)
LapackRequired (any implementation)
Ampl Solver LibraryOptional
A sparse linear solver (MA27, MA57, HSL_MA86, HSL_MA97, WSMP, Pardiso, MUMPS)Required (at least one)
MetisOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft Windows with MSYS2/MinGWg++
Microsoft Windows with MSYS2cl
Microsoft Windows with MSYS2icl+ifort
Linuxg++
Mac OSXg++
Mac OSXclang
jMarkov An open-source tool for Markov chain modeling, including finite Markov chains, quasi-birth-and-death processes, phase-type distributions, and Markov decision processes. Active

jMarkov is an open-source tool for Markov chain modeling. jMarkov includes support for finite Markov chain, quasi-birth-and-death processes, phase-type distributions, and Markov decision processes.

Project manager
Juan F. Perez
Home page
https://github.com/coin-or/jMarkov
License
Eclipse Public License 2.0
Programming language
Java
Development status
Activity: Active · Maturity level: 4 · Stable version: no stable version · Stable release: 1.0
Categories
Stochastic modeling

Builds and passes unit tests on

Operating systemCompiler
Microsoft Windowsjavac
Java Operations Research Library (jORLib) jORLib is a Java library that provides algorithmic implementations and frameworks for optimization problems in the area of Operations Research. Active

jORLib is a Java library that provides algorithmic implementations and frameworks for optimization problems in the area of Operations Research.

Project manager
Joris Kinable, jkinable at cs dot cmu dot edu
Home page
https://github.com/coin-or/jORLib
License
LGPLv2.1
Programming language
Java 8
Development status
Activity: Active · Maturity level: 5
Categories
Development tools, Metaheuristics, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Optimization utility

Third-party software

PackageRequired/Optional
jGraphT 0.9.0Required
Guava 14.0.1Required
Logback 0.9.28Required
Slf4j 1.6.1Required
JUnit 4.12Optional (unit tests only)

Builds and passes unit tests on

Operating systemCompiler
Linux
Microsoft Windows
LaGO A package for the global optimization of nonconvex mixed-integer nonlinear programs. Inactive

LaGO (Lagrangian Global Optimizer) is a software-package for the global optimization of nonconvex mixed-integer nonlinear programs (MINLP). LaGO can work with black-box formulations of the functions, but assumes to have sparsity information and methods for the evaluation of function values, gradients, and Hessian-vector-multiplications.

Project manager
Stefan Vigerske
Home page
https://github.com/coin-or/LaGO
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 2 · Stable version: 0.3 · Stable release: no release version
Linked COIN-OR projects
BuildTools, CoinUtils, Cgl, CLP, OSI, Ipopt
Categories
Optimization deterministic nonlinear, Optimization deterministic nonlinear discrete

Third-party software

PackageRequired/Optional
GAMS I/O librariesRequired if no ASL available
AMPL Solver Library (ASL)Required if no GAMS I/O libraries available
BlasRequired if IPOPT is used
LapackOptional
A sparse linear solver (MA27, MA57, WSMP, Paradiso, HSL, MUMPS)Required if IPOPT is used
FILIB++Optional
METISRequired
ranlibRequired
TNTRequired
CPLEXOptional

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
LEMON A C++ template library aimed at combinatorial optimization tasks, especially those working with graphs and networks. Active

Library of Efficient Models and Optimization in Networks – A C++ template library providing easy-to-use implementations of common graph and network related data structures and algorithms.

Project manager
alpar at cs.elte.hu
Home page
https://lemon.cs.elte.hu/
License
Boost License 1.0
Programming language
C++
Development status
Activity: Active · Maturity level: 4 · Stable version: 1.2 · Stable release: 1.2.1
Categories
Graphs, Optimization utility

Builds and passes unit tests on

Operating systemCompiler
LinuxGCC 3.3 and upwards
LinuxIntel C++ 11.1,13.1.3
AIXxlC
Microsoft WindowsVisual C++ 2005,2008
Microsoft WindowsCygwin/GCC
Microsoft WindowsMinGW
MC++ A toolkit for bounding factorable functions. Inactive

MC++ is a toolkit for bounding factorable functions. It provides methods for computing bounds on a factorable function in the form of convex/concave relaxations, Taylor models, and spectral bounds.

Project manager
Benoit Chachuat
Home page
https://github.com/coin-or/MCpp
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 4
Categories
Optimization deterministic nonlinear

Third-party software

PackageRequired/Optional
fadbad++Required
BlasRequired
LapackRequired
PROFILOptional
FILIB++Optional
CppUnitOptional

Builds and passes unit tests on

Operating systemCompiler
LinuxGNU
METSlib An object oriented metaheuristics optimization framework and toolkit in C++. Inactive

METSlib is an object oriented metaheuristics optimization framework and toolkit in C++. Hill Climbing, Steepest Descent, Random Restart Local Search, Variable Neighborhood Search, Iterated Local Search, Simulated Annealing and Tabu Search algorithms are applicable to one unified modeling framework.

Project manager
Mirko Maischberger
Home page
https://github.com/coin-or/metslib
License
GPLv3.0 or, at your option, EPL 1.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 3 · Stable version: 0.5 · Stable release: 0.5.3
Categories
Metaheuristics

Builds and passes unit tests on

Operating systemCompiler
GNU/LinuxGCC 4.3.2
Microsoft WindowsCYGWIN 1.7/gcc4
OpenSolarisx86gcc-4.x
MibS Solver for mixed integer bilevel optimization problems. Active

MibS is a solver for mixed integer bilevel optimization problems.

Project manager
Ted Ralphs, tkralphs at lehigh dot edu
Home page
https://github.com/coin-or/MibS
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 2
Linked COIN-OR projects
CHiPPS, CBC, SYMPHONY
Categories
Interfaces, Optimization bilevel, Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
LinuxGCC
Mac OS Xclang
Microsoft WindowsMSVC++/cl
MOCHA Heuristics and algorithms for multicriteria matroid optimization. Inactive

MOCHA is a software package which contains algorithms and heuristics to solve multicriteria matroid optimization problems. Beyond specific algorithms and heuristics, our package also contains and uses matroid (and related) data structures which can be used as a foundation for new and old algorithms and heuristics.

Project manager
David Haws
Home page
https://github.com/coin-or/MOCHA
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 2 · Stable version: 1.0 · Stable release: 1.0.0
Categories
Graphs, Optimization deterministic nonlinear, Optimization stochastic

Third-party software

PackageRequired/Optional
LAPACKRequired
BLASRequired
GMPOptional

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
Macgcc
NLPAPI A subroutine interface for defining and solving nonlinear programming problems. Inactive

NLPAPI is a set of subroutines and data structures for defining nonlinear programming problems. It includes an interface to call LANCELOT to solve the problem (you need to get your own copy of LANCELOT), and an interface to IPOPT.

Project manager
Michael E Henderson
Home page
https://github.com/coin-or/NLPAPI
License
Eclipse Public License 2.0
Programming language
C
Development status
Activity: Inactive · Maturity level: 4 · Stable version: 0.9 · Stable release: 0.9.0
Categories
Development tools, Optimization deterministic nonlinear

Builds and passes unit tests on

Operating systemCompiler
Windows cygwingcc
GNU/Linuxgcc
AIXxlc
oBB Parallel global optimization of Hessian Lipschitz continuous functions. Inactive

An algorithm for the parallel global optimization of functions with a Lipschitz continuous gradient or Hessian.

Project manager
Jaroslav Fowkes
Home page
https://github.com/coin-or/oBB
License
Gnu Lesser General Public License Version 3
Programming language
Python
Development status
Activity: Inactive · Maturity level: 4 · Stable version: no stable version · Stable release: no release version
Categories
Optimization deterministic nonlinear

Third-party software

PackageRequired/Optional
PythonRequired
OpenMPI or another working implementation of MPI-2Required
NumPyRequired
MPI for PythonRequired
CVXOPTRequired
matplotlibOptional

Builds and passes unit tests on

Operating systemCompiler
LinuxGNU
OBOE Optimization of convex problems with user-supplied methods delivering key first order information (like support to the feasible set, support to the objective function). Inactive

OBOE (Oracle Based Optimization Engine) is an open source software for general convex optimization. It assumes that a user-made code, thereafter named oracle, is capable of delivering first order information on the key elements of the problem (support the feasible set, support to the objective function). The engine exploits this information to construct the so-called localization set which is a polyhedral approximation of the set of optimal solutions.

Project manager
Nidhi Swahncy
Home page
https://github.com/coin-or/OBOE
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 4 · Stable version: 1.0.4 · Stable release: 1.0.3
Linked COIN-OR projects
CLP
Categories
Optimization convex non-differentiable

Third-party software

PackageRequired/Optional
BLASRequired
LAPACKRequired
LapackppRequired
GLPKOptional
Boost serialization (on Linux)Optional

Builds and passes unit tests on

Operating systemCompiler
Linuxg++
Microsoft WindowsVisual Studio .NET
Microsoft WindowsMinGW32/g++
OptiML interior point, active set method and parametric solvers for support vector machines, solver for the sparse inverse covariance problem

Please consult the OptiML home page for further information.

Optimization Services A package for representing optimization instances, results, solver options, and communication between clients and solvers in a distributed environment using Web Services. Active

The objective of Optimization Services (OS) is to provide a set of standards for representing optimization instances, results, solver options, and communication between clients and solvers in a distributed environment using Web Services. This COIN-OR project provides source code for libraries and executable programs that implement OS standards.

Project manager
Kipp Martin kipp.martin at chicagogsb dot edu and Jun Ma
Home page
https://github.com/coin-or/OS
License
Eclipse Public License 2.0
Programming language
C,C++
Development status
Activity: Active · Maturity level: 4 · Stable version: 2.10 · Stable release: 2.10.2
Linked COIN-OR projects
BuildTools, CBC, Cgl, CLP, CoinUtils, CppAD, DyLP, Ipopt, OSI, SYMPHONY, Vol
Categories
Interfaces

Third-party software

PackageRequired/Optional
AMPL Solver Library (ASL)Optional
BlasOptional
GLPKOptional
HSLOptional
KNITROOptional
LapackOptional
LINDOOptional
MUMPSOptional

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
Mac OS X (Intel)gcc
Mac OS X (Power PC)gcc
Microsoft WindowsMinGW/gcc
Microsoft WindowsCygwin/gcc
Microsoft WindowsMsys/MS cl
Microsoft WindowsVisual Studio cl
OSI A uniform API for calling embedded linear and mixed-integer programming solvers. Active

The COIN-OR Open Solver Interface is a uniform API for interacting with callable solver libraries. It supports linear programming solvers as well as the ability to “finish off” a mixed-integer problem calling the solver library’s MIP solver. A list of supported solvers appears at the bottom of the page.

Project manager
Matthew Saltzman, Lou Hafer
Home page
https://www.github.com/coin-or/Osi
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 5 · Stable version: 0.108 · Stable release: 0.108.6
Linked COIN-OR projects
CBC, Cgl, CLP, CoinUtils, Data, DyLP, HiGHS, SYMPHONY, Vol
Categories
Interfaces

Third-party software

PackageRequired/Optional
CPLEXOptional
GlpkOptional
FICO-XpressOptional
GurobiOptional
MosekOptional
SoPlexOptional

Builds and passes unit tests on

Operating systemCompiler
GNU/Linuxgcc
Mac OS Xgcc
Microsoft Windows with MSys2gcc, cl, icl
Microsoft WindowsVisual Studio, cl

Subprojects

Solver Interfaces:

  • OsiCpx: CPLEX
  • OsiGlpk: GNU LP Toolkit
  • OsiGrb: Gurobi
  • OsiMsk: Mosek
  • OsiSpx: Soplex
  • OsiXpr: XPRESS-MP
OTS a framework for constructing tabu search algorithms

Please consult the OTS home page for further information.

Paver Python scripts to do comparisons of solver performance. Active

These tools are meant to simplify the task of performance data comparison and visualization.

Project manager
Stefan Vigerske, stefan at gams.com
Home page
https://github.com/coin-or/Paver
License
Eclipse Public License 2.0
Programming language
Python 2.x
Development status
Activity: Active · Maturity level: 3
Categories
Optimization utility, Python tools

Third-party software

PackageRequired/Optional
Python 2.7required
Numpyrequired
Pandasrequired
Matplotlibrequired

Builds and passes unit tests on

Operating systemCompiler
LinuxPython 2.7
PFunc A lightweight and portable library that provides C and C++ APIs to express task parallelism. Inactive

PFunc, short for Parallel Functions, is a lightweight and portable library that provides C and C++ APIs to express task parallelism. The features offered by PFunc are a strict superset of the features offered by current solutions for task parallelism such as Cilk and Intel’s Threading Building Blocks. Specifically, PFunc extends the feature set of current solutions with custom task scheduling, task priorities and task affinities. Furthermore, PFunc offers task groups for SPMD-style programming and multiple task completion notifications for parallel execution of DAGs. PFunc’s extended feature set is geared towards helping knowledgeable users optimize their application performance.

Project manager
Prabhanjan Kambadur
Home page
https://github.com/coin-or/PFunc
License
Eclipse Public License 2.0
Programming language
C, C++
Development status
Activity: Inactive · Maturity level: 3 · Stable version: 1.0 · Stable release: 1.0.2
Categories
Optimization utility

Builds and passes unit tests on

Operating systemCompiler
Ubuntu Linuxgcc
Fedora Linuxgcc
RHEL Server release 5.5gcc
OS X Leopardgcc
AIXxlc
Windows XP ProVisual Studio Express 10.0
PuLP A Python library for modeling linear and integer programs. Active

PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, GUROBI to solve linear problems.

Project manager
Stuart Mitchell
Home page
https://github.com/coin-or/Pulp
License
MIT License
Programming language
python
Development status
Activity: Active · Maturity level: 3 · Stable version: 1.4 · Stable release: 1.4.8
Categories
Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete

Third-party software

PackageRequired/Optional
GLPKOptional

Builds and passes unit tests on

Operating systemCompiler
Microsoft Windowspython 2.5
Microsoft Windowspython 2.4
Linuxpython 2.6
Linuxpython 2.5
Linuxpython 2.4
Pyomo Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. Active

Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. Modeling optimization applications is a core capability of Pyomo. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Thus, Pyomo provides a capability that is commonly associated with algebraic modeling languages such as AMPL, AIMMS, and GAMS, but Pyomo’s modeling objects are embedded within a full-featured high-level programming language with a rich set of supporting libraries.

Project manager
William Hart, wehart at sandia dot gov, Jean-Paul Watson, jwatson at sandia dot gov and John Siirola, jdsiiro at sandia dot gov
Home page
https://www.pyomo.org/
License
BSD
Programming language
Python
Development status
Activity: Active · Maturity level: 4 · Stable version: 4.2 · Stable release: 4.2.10784
Categories
Development tools, Modeling systems, Optimization stochastic, Optimization utility

Builds and passes unit tests on

Operating systemCompiler
AnyPython 2.6, 2.7, 3.3, and 3.4
Python MIP Python MIP is a collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs). Active

Python MIP is a collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs). MIP syntax was inspired by Pulp. Just like CyLP it also provides access to advanced solver features like cut generation, MIPstarts and solution Pools. Porting Pulp and Gurobi models should be quite easy.

Project manager
Haroldo Gambini Santos
Home page
https://github.com/coin-or/python-mip
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Active · Maturity level: 3
Linked COIN-OR projects
CBC
Categories
Interfaces, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Optimization utility

Third-party software

PackageRequired/Optional
GurobiOptional
qpOASES An open-source C++ implementation of the recently proposed online active set strategy. Active

qpOASES is an open-source C++ implementation of the recently proposed online active set strategy for solving quadratic programming (QP) problems. It has several theoretical features that make it particularly suited for model predictive control (MPC) applications. Further numerical modifications have made qpOASES a reliable QP solver, even when tackling semi-definite, ill-posed or degenerated QP problems. Moreover, several interfaces to third-party software make qpOASES easy-to-use even for users without knowledge of C/C++.

Project manager
Joachim Ferreau
Home page
https://github.com/coin-or/qpOASES
License
​GNU Lesser General Public License (LGPL), v2.1
Programming language
C++
Development status
Activity: Active · Maturity level: 3 · Stable version: 3.2 · Stable release: 3.2.1
Categories
Optimization deterministic nonlinear

Third-party software

PackageRequired/Optional
BLASOptional
LAPACKOptional

Builds and passes unit tests on

Operating systemCompiler
Linuxg++
Microsoft WindowsCYGWIN/g++
RBFOpt A global derivative-free solver. Active

Library for black-box (also known as derivative-free) optimization written in Python. Currently, the software supports box-constrained problems with continuous and discrete variables.

Project manager
Giacomo Nannicini, giacomo dot n at gmail dot com
Home page
https://github.com/coin-or/RBFOpt/wiki
License
Revised BSD license (3-clause BSD license)
Programming language
Python
Development status
Activity: Active · Maturity level: 4 · Stable version: 1.1.0 · Stable release: 1.1.0
Linked COIN-OR projects
Pyomo
Categories
Optimization convex non-differentiable, Optimization deterministic nonlinear discrete, Optimization utility

Builds and passes unit tests on

Operating systemCompiler
Linux
Mac OS X
Microsoft Windows
Rehearse An algebraic modeling library in C++. Active

An algebraic modeling library in C++.

Project manager
Onur Çelebi
Home page
https://github.com/coin-or/Rehearse
License
MIT
Programming language
C++
Development status
Activity: Active · Maturity level: 4
Categories
Modeling systems
ROSE Software for performing symbolic reformulations to Mathematical Programs (MP). Inactive

Optimization problems are usually defined in terms of their mathematical programming formulation. This consists of a set of objective functions to be optimized subject to a set of constraints, all expressed in terms of a set of decision variables which may be discrete or continuous. Formulations may be symbolically transformed so that some of their numerical properties (e.g. optimal solutions, feasible region,…) are invariant. Yet sometimes the reformulated problem is easier to solve or is useful within a given solution algorithm. The main aims of this project are a systematic study of reformulation theory, the production of software tools for automating mathematical programming reformulation, and the formalization and implementation of solution algorithms based on reformulation techniques.

Project manager
David Savourey
Home page
https://github.com/coin-or/ROSE
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 2
Categories
Modeling systems

Builds and passes unit tests on

Operating systemCompiler
Linuxgcc
The Supporting Hyperplane Optimization Toolkit (SHOT) A deterministic convex MINLP solver. Active

SHOT is a deterministic convex MINLP solver based on polyhedral outer approximation and primal heuristics.

Project manager
Andreas Lundell, andreas dot lundell at abo dot fi
Home page
https://www.github.com/COIN-OR/SHOT
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 2
Linked COIN-OR projects
Optimization Services, Ipopt, CBC
Categories
Optimization deterministic nonlinear, Optimization deterministic nonlinear discrete

Third-party software

PackageRequired/Optional
BoostRequired
IBM ILOG CPLEXOptional
GurobiOptional

Builds and passes unit tests on

Operating systemCompiler
Linux
SMI A stochastic modelling interface for optimization under uncertainty. Active

SMI is an open-source interface for modeling stochastic linear programming problems. Currently it supports: a scenario tree structure for multiperiod stochastic data, an implementation of a Stochastic MPS (SMPS) reader, direct interfaces for generating scenario trees from paths and from discrete random variables, generating the deterministic equivalent problem for OSI compatible solvers, and parsing the solutions by stage and scenario.

Project manager
Alan King, kingaj at us dot ibm dot com
Home page
https://github.com/coin-or/Smi
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 4 · Stable version: 0.96 · Stable release: 0.96.1
Linked COIN-OR projects
CoinUtils, CLP, OSI
Categories
Optimization stochastic

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsVisual C++
Linuxgcc
SONNET Microsoft .NET wrapper for COIN-OR Open Solver Interface Active

A wrapper for COIN-OR mixed integer linear programming via OSI to Microsoft .NET

Project manager
Jan-Willem Goossens
Home page
https://github.com/coin-or/SONNET
License
Eclipse Public License 2.0
Programming language
C#
Development status
Activity: Active · Maturity level: 2 · Stable version: 1.2 · Stable release: 1.1.2
Linked COIN-OR projects
OSI
Categories
Interfaces, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVS/.NET
SYMPHONY A callable library for solving mixed-integer linear programs. Active

SYMPHONY is an open-source generic MILP solver, callable library, and extensible framework for implementing customized solvers for mixed-integer linear programs (MILPs). SYMPHONY can be built in various sequential and parallel configurations for either distributed or shared memory architectures and can be used “out of the box” as a solver for generic mixed-integer linear programs or customized through a wide variety of user callback functions and control parameters. SYMPHONY has a number of advanced capabilities stemming from the research projects discussed above, including the ability to solve multi-objective MILPs, the ability to warm start its solution procedure, and the ability to perform basic sensitivity analyses. SYMPHONY has has been deployed in a variety of application areas, including computational biology, wireless telecommunications, supply chain management, transportation services, and air transportation.

Project manager
Ted Ralphs, ted at lehigh dot edu
Home page
https://github.com/coin-or/SYMPHONY
License
Eclipse Public License 2.0
Programming language
C
Development status
Activity: Active · Maturity level: 5 · Stable version: 5.6 · Stable release: 5.6.17
Linked COIN-OR projects
BuildTools, CoinUtils, Cgl, OSI, CLP
Categories
Optimization deterministic linear discrete

Third-party software

PackageRequired/Optional
GlpkOptional
GNU ReadlineOptional
GNU HistoryOptional
BLASRequired (any implementation)
LapackOptional (any implementation)

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Microsoft WindowsCYGWIN/cl
Microsoft WindowsCYGWIN/gcc
Microsoft WindowsMSys/gcc
Linuxgcc
OSXgcc
Solarix X86gcc
Solarix X86sunpro
Test Tools Python scripts to automatically download, configure, build, test, and install COIN-OR projects. Inactive

The Test Tools project provides Python scripts to automatically download, configure, build, test, install, and build binaries of COIN-OR projects. If a failure is recognized, the scripts can send an e-mail to the corresponding project manager.

Project manager
JP Fasano
Home page
https://github.com/coin-or-tools/TestTools
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Inactive · Maturity level: 2
Categories
Development tools

Builds and passes unit tests on

Operating systemCompiler
Linux 32 and 64 bitPython 2.5
Sun OS SolarisPython 2.4.4
AIX UnixPython 2.5
Mac OS XPython 2.5
Windows XPPython 2.5
Windows XP (Cygwin)Python 2.5
Windows XPPython 2.5
Windows Server 2003 (Cygwin)Python 2.5
Windows Server 2003 64 Bit (MinGW)Python 2.5
Vol A subgradient algorithm that also computes approximate primal solutions. Active

Vol (Volume Algorithm) is an open-source implementation of a subgradient method that produces primal as well as dual solutions. The primal solution comes from estimating the volumes below the faces of the dual problem. This is an approximate method so the primal vector might have small infeasiblities that are negligible in many practical settings. The original subgradient algorithm produces only dual solutions.

Project manager
Francisco Barahona, barahon at us dot ibm dot com
Home page
https://github.com/coin-or/Vol
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Active · Maturity level: 3 · Stable version: 1.5 · Stable release: 1.5.4
Linked COIN-OR projects
CoinUtils
Categories
Optimization deterministic linear continuous

Builds and passes unit tests on

Operating systemCompiler
Microsoft WindowsMSVC++/cl
Linuxgcc
VRPH A library of heuristics for generating solutions to variants of the vehicle routing problem. Inactive

VRPH is an open source library of heuristics for the capacitated Vehicle Routing Problem (VRP). It includes several example applications that can be used to quickly generate good solutions to VRP instances containing thousands of customer locations. A large set of well-studied benchmark instances is available from the project homepage.

Project manager
Chris Groer, cgroer at gmail dot com
Home page
https://github.com/coin-or/VRPH
License
Eclipse Public License 2.0
Programming language
C++
Development status
Activity: Inactive · Maturity level: 3 · Stable version: 1.0 · Stable release: 1.0.0
Linked COIN-OR projects
OSI, SYMPHONY
Categories
Optimization deterministic linear discrete

Third-party software

PackageRequired/Optional
GLPKOptional
PLplotOptional

Builds and passes unit tests on

Operating systemCompiler
Linuxg++
Microsoft WindowsCYGWIN/g++
Microsoft WindowsMSVC++/cl
yaposib a Python interface to linear solvers that use the OSI Abandoned

Yaposib is a python binding to OSI, the Open Solver Interface from COIN-OR. It intends to give access to various solvers through python. Yaposib was created in order to be integrated in COIN-OR/PuLP.

Project manager
n/a
Home page
https://github.com/coin-or/yaposib
License
Eclipse Public License 2.0
Programming language
Python
Development status
Activity: Abandoned · Maturity level: 5
Linked COIN-OR projects
OSI
Categories
Interfaces, Modeling systems, Optimization deterministic linear continuous, Optimization deterministic linear discrete, Python tools

Third-party software

PackageRequired/Optional
boost::pythonRequired