CPLEX
Encyclopedia
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.
The CPLEX Optimizer was named for the simplex method as implemented in the C programming language, although today it provides additional methods for mathematical programming
and offers interfaces other than just C. It was originally developed by Robert E. Bixby and was offered commercially starting in 1988 by CPLEX Optimization Inc., which was acquired by ILOG
in 1997; ILOG was subsequently acquired by IBM in January 2009. CPLEX continues to be actively developed under IBM.
The IBM ILOG CPLEX Optimizer solves integer programming
problems, very large linear programming
problems using either primal or dual variants of the simplex method or the barrier interior point method
, convex and non-convex quadratic programming
problems, and convex quadratically constrained problems (solved via Second-order cone programming, or SOCP).
The CPLEX Optimizer has a modeling layer called Concert that provides interfaces to the C++
, C#, and Java languages. There is a Python language interface based on the C interface. Additionally, connectors to Microsoft Excel
and MATLAB
are provided. Finally, a stand-alone Interactive Optimizer executable is provided for debugging and other purposes.
The CPLEX Optimizer is accessible through independent modeling systems such as AIMMS
, AMPL
, GAMS
, MPL, OpenOpt
, OptimJ
and TOMLAB
.
The full IBM ILOG CPLEX Optimization Studio consists of the CPLEX Optimizer for mathematical programming, the IBM ILOG CPLEX CP Optimizer for constraint programming, the Optimization Programming Language (OPL), and a tightly integrated IDE.
Optimization (mathematics)
In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....
software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize.
The CPLEX Optimizer was named for the simplex method as implemented in the C programming language, although today it provides additional methods for mathematical programming
Mathematical Programming
Mathematical Programming, established in 1971, and published by Springer Science+Business Media, is the official scientific journal of the Mathematical Optimization Society. It currently consists of two series: A and B. The "A" series contains general publications. The "B" series focuses on topical...
and offers interfaces other than just C. It was originally developed by Robert E. Bixby and was offered commercially starting in 1988 by CPLEX Optimization Inc., which was acquired by ILOG
ILOG
ILOG is an international software company owned by IBM. It creates enterprise software products for supply chain, business rule management, visualization and optimization....
in 1997; ILOG was subsequently acquired by IBM in January 2009. CPLEX continues to be actively developed under IBM.
The IBM ILOG CPLEX Optimizer solves integer programming
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, which is also known as mixed integer programming.Integer programming is NP-hard...
problems, very large linear programming
Linear programming
Linear programming is a mathematical method for determining a way to achieve the best outcome in a given mathematical model for some list of requirements represented as linear relationships...
problems using either primal or dual variants of the simplex method or the barrier interior point method
Interior point method
Interior point methods are a certain class of algorithms to solve linear and nonlinear convex optimization problems.The interior point method was invented by John von Neumann...
, convex and non-convex quadratic programming
Quadratic programming
Quadratic programming is a special type of mathematical optimization problem. It is the problem of optimizing a quadratic function of several variables subject to linear constraints on these variables....
problems, and convex quadratically constrained problems (solved via Second-order cone programming, or SOCP).
The CPLEX Optimizer has a modeling layer called Concert that provides interfaces to the C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, C#, and Java languages. There is a Python language interface based on the C interface. Additionally, connectors to Microsoft Excel
Microsoft Excel
Microsoft Excel is a proprietary commercial spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables, and a macro programming language called Visual Basic for Applications...
and MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
are provided. Finally, a stand-alone Interactive Optimizer executable is provided for debugging and other purposes.
The CPLEX Optimizer is accessible through independent modeling systems such as AIMMS
AIMMS
AIMMS is a software system designed for modeling and solving large-scale optimization and scheduling-type problems....
, AMPL
AMPL
AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and solving high-complexity problems for large-scale mathematical computation AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and...
, GAMS
General Algebraic Modeling System
The General Algebraic Modeling System is a high-level modeling system for mathematical optimization. GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems. The system is tailored for complex, large-scale modeling applications and allows the user to...
, MPL, OpenOpt
OpenOpt
OpenOpt is an open-source framework for numerical optimization, nonlinear equations and systems of them. It is licensed under the BSD license, making it available to be used in both open- and closed-code software. The package already has some essential ....
, OptimJ
OptimJ
OptimJ is an extension of the Java with language support for writing optimization models and abstractions for bulk data processing. OptimJ aims at providing a clear and concise algebraic notation for optimization modeling, removing compatibility barriers between optimization modeling and...
and TOMLAB
TOMLAB
The TOMLAB Optimization Environment is a modeling platform for solving applied optimization problems in MATLAB.-Description:TOMLAB is a general purpose development and modeling environment in MATLAB for research, teaching and practical solution of optimization problems...
.
The full IBM ILOG CPLEX Optimization Studio consists of the CPLEX Optimizer for mathematical programming, the IBM ILOG CPLEX CP Optimizer for constraint programming, the Optimization Programming Language (OPL), and a tightly integrated IDE.