COIN-OR
   HOME

TheInfoList



OR:

Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
what the open literature is for mathematical
theory A theory is a rational type of abstract thinking about a phenomenon, or the results of such thinking. The process of contemplative and rational thinking is often associated with such processes as observational study or research. Theories may be s ...
." The open literature (e.g., a research journal) provides the
operations research Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve deci ...
(OR) community with a peer-review process and an archive. Papers in operations research journals on mathematical theory often contain supporting numerical results from computational studies. The software implementations, models, and data used to produce the numerical results are typically not published. The status quo impeded researchers needing to reproduce computational results, make fair comparisons, and extend the state of the art. The success of
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
Apache The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
, and other projects popularized the
open-source model Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
of software development and distribution. A group at IBM Research proposed open source as an analogous yet viable means to ''publish'' software, models, and data. COIN-OR was conceived as an initiative to promote open source in the computational operations research community and to provide the on-line resources and hosting services required to enable others to run their own
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
projects. The COIN-OR website was launched as an experiment in 2000, in conjunction with 17th International Symposium on Math Programming in Atlanta, Georgia. In 2007, COIN-OR had 25 application projects, including tools for
linear programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear function#As a polynomial function, li ...
(e.g., COIN-OR CLP),
nonlinear programming In mathematics, nonlinear programming (NLP) is the process of solving an optimization problem where some of the constraints or the objective function are nonlinear. An optimization problem is one of calculation of the extrema (maxima, minima or s ...
(e.g.,
IPOPT IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a software library for large scale nonlinear optimization of continuous systems. It is written in Fortran and C and is released under the EPL (formerly CPL). IPOPT implemen ...
),
integer programming An integer programming problem is a mathematical optimization or Constraint satisfaction problem, feasibility program in which some or all of the variables are restricted to be integers. In many settings the term refers to integer linear programmin ...
(e.g., CBC, Bcp and COIN-OR SYMPHONY),
algebraic modeling language Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems). One particular advantage of ...
s (e.g.,
Coopr Pyomo is a collection of Python software packages for formulating optimization models. Pyomo was developed by William Hart and Jean-Paul Watson at Sandia National Laboratories and David Woodruff at University of California, Davis. Significant ...
) and more. By 2011, this had grown to 48 projects. COIN-OR is hosted by the Institute for Operations Research and the Management Sciences,
INFORMS The Institute for Operations Research and the Management Sciences (INFORMS) is an international society for practitioners in the fields of operations research (O.R.), management science, and analytics. It was established in 1995 with the merger of ...
, and run by the educational, non-profit COIN-OR Foundation.


Projects


CLP

COIN-OR LP (CLP or Clp) is an open-source
linear programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear function#As a polynomial function, li ...
solver A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculates t ...
written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. It is published under the
Common Public License In computing, the Common Public License (CPL) is a free software / open-source software license published by IBM. The Free Software Foundation and Open Source Initiative have approved the license terms of the CPL. Definition The CPL has the stat ...
so it can be used in
proprietary software Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and int ...
with none of the restrictions of the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
. CLP is primarily meant to be used as a callable library, although a stand-alone executable version can be built. It is designed to be as reliable as any commercial solver, although several times slower, and to be able to tackle very large problems. CLP is designed to solve linear programming problems such as : :: minimize c_1 x_1 + c_2 x_2\, * subject to problem constraints of the following form :: a_ x_1 + a_ x_2 \le b_1 :: a_ x_1 + a_ x_2 \le b_2 :: a_ x_1 + a_ x_2 \le b_3 * and non-negative variables :: x_1 \ge 0 :: x_2 \ge 0 with up to millions of variables and/or constraints. Its main algorithm is the
simplex algorithm In mathematical optimization, Dantzig's simplex algorithm (or simplex method) is a popular algorithm for linear programming. The name of the algorithm is derived from the concept of a simplex and was suggested by T. S. Motzkin. Simplices are n ...
. CLP is used in other COIN-OR projects such as
SYMPHONY A symphony is an extended musical composition in Western classical music, most often for orchestra. Although the term has had many meanings from its origins in the ancient Greek era, by the late 18th century the word had taken on the meaning com ...
, Branch Cut and Price (BCP), COIN-OR Branch and Cut ( CBC), and others.


CBC

COIN-OR
branch and cut Branch and cut is a method of combinatorial optimization for solving integer linear programs (ILPs), that is, linear programming (LP) problems where some or all the unknowns are restricted to integer values. Branch and cut involves running a branc ...
(CBC or Cbc) is an open-source
mixed integer programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming is ...
solver written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. It can be used as both a stand-alone executable and as a callable library (through ''A Mathematical Programming Language'' (
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems). It was developed ...
) atively '' General Algebraic Modeling System'' (GAMS) sing the links provided by the ''COIN-OR Optimization Services'' (OS) and ''GAMSlinks'' projects MPL hrough the ''CoinMP'' project
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, China and Singapore. It has two main product offerings that provide modeling and ...
hrough the ''AIMMSlinks'' project
PuLP Pulp may refer to: * Pulp (fruit), the inner flesh of fruit Engineering * Dissolving pulp, highly purified cellulose used in fibre and film manufacture * Pulp (paper), the fibrous material used to make paper * Molded pulp, a packaging material ...

CMPLOpenSolver for ExcelJuMP
o
MiniZinc
. Although it has been a popular choice of open source MIP solver for many years, its performance is now significantly inferior t
HiGHS


SYMPHONY

Single- or multi-process
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
over
networks Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
(SYMPHONY) is an open source
branch and cut Branch and cut is a method of combinatorial optimization for solving integer linear programs (ILPs), that is, linear programming (LP) problems where some or all the unknowns are restricted to integer values. Branch and cut involves running a branc ...
framework for solving mixed integer programs (MIPs) over heterogeneous networks. It can use CLP,
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
, XPRESS or other
linear programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear function#As a polynomial function, li ...
solvers to solve the underlying linear programs. SYMPHONY is a callable library which implements both sequential and parallel versions of branch, cut and price to solve MILPs. A branch, cut and price algorithm is similar to a
branch and bound Branch and bound (BB, B&B, or BnB) is an algorithm design paradigm for discrete and combinatorial optimization problems, as well as mathematical optimization. A branch-and-bound algorithm consists of a systematic enumeration of candidate soluti ...
algorithm but additionally includes
cutting-plane method In mathematical optimization, the cutting-plane method is any of a variety of optimization methods that iteratively refine a feasible set or objective function by means of linear inequalities, termed ''cuts''. Such procedures are commonly used ...
s and pricing algorithms. The user of the library can customize the algorithm in any number of ways by supplying application-specific subroutines for reading in custom data files, generating application-specific cutting planes, or applying custom branching rules, resulting in a customized branch and cut algorithm. Most components of the algorithm, e.g., search tree management, management of linear programming solution, cut pool management, and communication management, are internal to the library and need not be touched by the user. The executables can be built in any number of configurations ranging from completely sequential to fully parallel with independently functioning cut generators, cut pools, and LP solvers. The distributed version currently runs in any environment supported by the
PVM Parallel Virtual Machine (PVM) is a software tool for parallel networking of computers. It is designed to allow a network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor. Thus large computatio ...
message passing protocol. The same source code can also be compiled for shared-memory architectures using any
OpenMP OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating syste ...
compliant compiler. SYMPHONY reads MPS (through the COIN-OR MPS reader) and GNU MathProg files. SYMPHONY does not have an LP-Solver of its own, but can be used with solvers like Clp, Cplex, Xpress through the Osi-interface. Cuts are generated using COIN's cut generation library: CGL. SYMPHONY also has structure specific implementations for problems like the
traveling salesman problem The travelling salesman problem (also called the travelling salesperson problem or TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each cit ...
,
vehicle routing problem The vehicle routing problem (VRP) is a combinatorial optimization and integer programming problem which asks "What is the optimal set of routes for a fleet of vehicles to traverse in order to deliver to a given set of customers?" It generalises ...
, set partitioning problem, mixed postman problem, etc. SYMPHONY also has an interactive shell where the user can enter commands to execute and control the program.


PuLP

PuLP is an LP/IP modeler written in
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
. It can generate MPS or LP files and call
GLPK The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the fo ...
, CLP/ CBC, and
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
, to solve linear problems. PuLP is the default optimization tool in SolverStudio for
Excel ExCeL London (an abbreviation for Exhibition Centre London) is an exhibition centre, international convention centre and former hospital in the Custom House area of Newham, East London. It is situated on a site on the northern quay of the ...
.


SMI

SMI is a stochastic programming modeler and solver written in C++. It can read Stochastic MPS and offers direct interfaces for constructing stochastic programs. It generates the deterministic equivalent linear program, solves it, and provides interfaces to access the scenario solutions.


See also

* COIN-OR solvers are available in the
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, China and Singapore. It has two main product offerings that provide modeling and ...
,
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems). It was developed ...
and
GAMS Gams is a municipality in the ''Wahlkreis'' (constituency) of Werdenberg in the canton of St. Gallen in Switzerland. History Gams is first mentioned in 835 as ''Campesias''. In 1210 it was mentioned as ''Chames'', in 1236 as ''Gamps''. Unt ...
modeling systems, and in the
FortSP FortSP is a software package for solving stochastic programming (SP) problems. It solves scenario-based SP problems with recourse as well as problems with chance constraints and integrated chance constraints. FortSP is available as a standalone ...
solver. They can also be used from within
Excel ExCeL London (an abbreviation for Exhibition Centre London) is an exhibition centre, international convention centre and former hospital in the Custom House area of Newham, East London. It is situated on a site on the northern quay of the ...
via the OpenSolver and SolverStudio add-ins.


References


Further reading

* J.T. Linderoth and T.K. Ralphs:
Noncommercial Software for Mixed-Integer Linear Programming
'. In: ''Integer Programming: Theory and Practice'', John Karlof (ed.), CRC Press Operations Research Series, 2005, 253-303. (Working paper version) * T. Ralphs:
An Introduction to the COIN-OR Optimization Suite: Open Source Tools for Building and Solving Optimization Models
'. Optimization Days, Montreal, May 7, 2013. (Presentation slides)


External links

* COIN-OR, Computational Infrastructure for Operations Research {{Mathematical optimization software Mathematical optimization software