COIN-OR
   HOME

TheInfoList



OR:

Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
what the open literature is for mathematical
theory A theory is a systematic and rational form of abstract thinking about a phenomenon, or the conclusions derived from such thinking. It involves contemplative and logical reasoning, often supported by processes such as observation, experimentation, ...
." The open literature (e.g., a research journal) provides the
operations research Operations research () (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a branch of applied mathematics that deals with the development and application of analytical methods to improve management and ...
(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 ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Apache The Apache ( ) are several Southern Athabaskan language-speaking peoples of the Southwestern United States, Southwest, the Southern Plains and Northern Mexico. They are linguistically related to the Navajo. They migrated from the Athabascan ho ...
, 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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
of software development and distribution. A group at
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
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 Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
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 and objective are represented by linear function#As a polynomia ...
(e.g.,
COIN-OR CLP Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical software what the open literature is for mathematical theory." The open literature (e.g., a research journal) provides the operati ...
),
nonlinear programming In mathematics, nonlinear programming (NLP) is the process of solving an optimization problem where some of the constraints are not linear equalities or the objective function is not a linear function. An optimization problem is one of calculation ...
(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 C++ (after migrating from Fortran and C) and is released under the EPL ( ...
),
integer programming An integer programming problem is a mathematical optimization or feasibility program in which some or all of the variables are restricted to be integers. In many settings the term refers to integer linear programming (ILP), in which the objective ...
(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) 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 Operations research () (U.S. Air Force Specialty Code: Operations Analysis), often s ...
, 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 and objective are represented by linear function#As a polynomia ...
solver A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a Library (computing), software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic ...
written in C++. It is published under the Common Public License so it can be used in
proprietary software Proprietary software is computer software, software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing t ...
with none of the restrictions of the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
. 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 ...
. 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 c ...
, Branch Cut and Price (BCP), COIN-OR Branch and Cut (
CBC CBC may refer to: Media * Cadena Baja California or Grupo Cadena, a radio and television broadcaster in Mexico * Canadian Broadcasting Corporation, Canada's radio and television public broadcaster ** CBC Television ** CBC Radio One ** CBC Music ** ...
), 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 and objective are represented by linear relationships. Linear ...
solver written in C++. 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 (e.g. 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, and Singapore. It has two main product offerings that provide modeling and optim ...
hrough the ''AIMMSlinks'' project
PuLP Pulp may refer to: * Pulp (fruit), the inner flesh of fruit * Pulp (band), an English rock band Engineering * Pulp (paper), the fibrous material used to make paper * Dissolving pulp, highly purified cellulose used in fibre and film manufacture ...
, CMPL, OpenSolver for Excel, JuMP, o
MiniZinc
. Although it has been a popular choice of open source MIP solver for many years, its performance is now significantly inferior to 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 criteria, from some set of available alternatives. It is generally divided into two subfiel ...
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. History The CPLEX Optimizer was named after the simplex method implemented in the C programming language. However, today ...
, 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 and objective are represented by linear function#As a polynomia ...
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 a method for solving optimization problems by breaking them down into smaller sub-problems and using a bounding function to eliminate sub-problems that cannot contain the optimal solution. It is an algorithm ...
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 message passing protocol. The same source code can also be compiled for shared-memory architectures using any
OpenMP OpenMP 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 systems, including Solaris, ...
compliant compiler. SYMPHONY reads MPS (through the COIN-OR MPS reader) and
GNU MathProg GNU MathProg is a high-level mathematical modelling language designed for creating and solving linear programming (LP), mixed integer programming (MIP), and other related optimisation problems. It is a subset of the AMPL (A Mathematical Programming ...
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 In the theory of computational complexity, the travelling salesman problem (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 city exac ...
,
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 (prog ...
. 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 for ...
, CLP/
CBC CBC may refer to: Media * Cadena Baja California or Grupo Cadena, a radio and television broadcaster in Mexico * Canadian Broadcasting Corporation, Canada's radio and television public broadcaster ** CBC Television ** CBC Radio One ** CBC Music ** ...
, and
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. History The CPLEX Optimizer was named after the simplex method implemented in the C programming language. However, today ...
, to solve linear problems. PuLP is the default optimization tool in
SolverStudio SolverStudio is a free Excel plug-in developed at the University of Auckland that supports optimization and simulation modelling in a spreadsheet using an algebraic modeling language. It is popular in education, the public sector and industr ...
for Excel.


SMI

SMI is a
stochastic programming In the field of mathematical optimization, stochastic programming is a framework for modeling optimization problems that involve uncertainty. A stochastic program is an optimization problem in which some or all problem parameters are uncertain, ...
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.


RBFOpt

RBFOpt is an open-source MINLP solver written in Python and distributed under the Revised BSD license. RBFOpt employs a radial-basis-function surrogate-model strategy to minimise expensive black-box objective functions. It solves MINLP problems with a mix of continuous, integer and categorical variables subject to box constraints. Linear or general nonlinear constraints are not supported. The solver has a long development history and remains actively developed on GitHub. When solving problems with integer variables, it needs an external smooth MINLP solver. Open-source Bonmin and Ipopt can be used.


See also

* COIN-OR solvers are available in the JuMP,
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, and Singapore. It has two main product offerings that provide modeling and optim ...
,
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems). It was developed ...
, GAMS, and FortSP modeling systems. They can also be used from within Excel via the OpenSolver and
SolverStudio SolverStudio is a free Excel plug-in developed at the University of Auckland that supports optimization and simulation modelling in a spreadsheet using an algebraic modeling language. It is popular in education, the public sector and industr ...
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