CPLEX

Last updated
CPLEX
Developer(s) IBM
Stable release
20.1.0 [1]
Type Technical computing
License Proprietary
Website www.ibm.com/products/ilog-cplex-optimization-studio

IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package.

Contents

History

The CPLEX Optimizer was named for the simplex method implemented in the C programming language, although today it also supports other types of mathematical optimization and offers interfaces other than C. It was originally developed by Robert E. Bixby and sold commercially from 1988 by CPLEX Optimization Inc. This was acquired by ILOG in 1997 and ILOG was subsequently acquired by IBM in January 2009. [2] CPLEX continues to be actively developed by IBM.

Features

The IBM ILOG CPLEX Optimizer solves integer programming problems, very large [3] 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. 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, OptimJ and TOMLAB. In addition to that AMPL provides an interface to the CPLEX CP Optimizer.

The full IBM ILOG CPLEX Optimization Studio consists of the CPLEX Optimizer for mathematical programming, the CP Optimizer for constraint programming, [4] the Optimization Programming Language (OPL), and a tightly integrated IDE.

Release history

Prior to IBM acquiring ILOG, the CPLEX team published a release history of CPLEX. [5]

VersionRelease DateKey Features
22.1.1December, 2022Python 3.7 support dropped, new solver parameter added. [6]
22.1.0March, 2022Python 3.9 and 3.10 support added, new solver parameters added. [7]
20.1December, 2020MIP performance improvements, new 'emphasis MIP 5' mode, etc. [8]
12.10December, 2019MIP performance improvements and the addition of a generic branching callback to the other generic callbacks introduced in version 12.8.
12.9March, 2019Direct support for multiobjective optimization, callback functionality improvement.
12.8December, 2017Generic callback, API recorder to facilitate debugging, subMIP control parameters, Download and Go offering.
12.7November, 2016Automated Benders decomposition, modeling assistance tool, runseeds command to better assess performance variability.
12.6.2June, 2015Performance improvements (mainly for SOCP, MISOCP, non-convex QP), support for cloud based optimization.
12.6December, 2013Support for nonconvex QPs and MIQPs, distributed parallel MIP and more parallelism at the root node for MIPs..
12.5October, 2012MIP performance improvements, random seed parameter to address performance variability, remote object, duals for QCPs, deterministic tuning tool.
12.4November, 2011Deterministic time limit support, duals for SOCPs, quadratic expression API in Concert, performance improvements across all algorithms, but especially MIP.
12.3June, 2011Support for large nonzero counts that require 64 bit indexing, local optima for non-convex QP, and globalization.
12.2June, 2010More parallelism at the root node, deterministic parallel concurrent LP optimization, along with some additional barrier performance improvements and additional tools for diagnosing ill conditioned basis matrices in MIPs.
12.0April, 2009The first version after IBM acquired ILOG. Includes connectors for Python, MATLAB and Excel. Deterministic parallel barrier is also included.
11.0October, 2007Breakthrough performance gains for mixed integer programming (MIP) models and enhanced parallel MIP optimization. The MIP solution pool feature and the performance tuning utility are introduced.
10.0January, 2006Performance improvements in the primal simplex and barrier methods, as well as the MIP optimizer. Indicator constraints and solution polishing heuristics are introduced and improvements to infeasibility analysis are made.
9.0December, 2003Performance improvements in primal and dual simplex methods and the MIP optimizer. It includes ILOG Concert Technology for .NET users and support for quadratically constrained programs.
8.0July, 2002MIP performance improvements and support for mixed integer quadratic programs.
7.5December, 2001ILOG Concert Technology for Java users.
7.0October, 2000ILOG Concert Technology for C++ users.
6.5March, 1999Significant performance improvements in primal and dual simplex methods, and ILOG CPLEX Mixed Integer Optimizer.
6.0April, 1998Significant performance improvements in primal and dual simplex methods, and CPLEX Barrier Optimizer.
5.0September, 1997New memory model for easy C++ integration.
4.0.5March, 1996Parallel CPLEX Mixed Integer Solver is introduced.
4.0December, 1995Redesigned advanced programming interface (API) to allow thread-safe applications.
3.0.8March, 1995Parallel CPLEX Barrier Solver is introduced.
3.0April, 1994CPLEX Barrier Solver is introduced.
2.1March, 1993Introduction of CPLEX Presolve algorithms.
2.0April, 1992Performance improvements.
1.21991Support for the dual simplex method and CPLEX Mixed Integer Optimizer.
1.01988Primal Simplex Method

See also

Related Research Articles

<span class="mw-page-title-main">AMPL</span>

AMPL is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing . It was developed by Robert Fourer, David Gay, and Brian Kernighan at Bell Laboratories. AMPL supports dozens of solvers, both open source and commercial software, including CBC, CPLEX, FortMP, MOSEK, MINOS, IPOPT, SNOPT, KNITRO, and LGO. Problems are passed to solvers as nl files. AMPL is used by more than 100 corporate clients, and by government agencies and academic institutions.

ECLiPSe is a software system for the development and deployment of constraint logic programming applications, e.g., in the areas of optimization, planning, scheduling, resource allocation, timetabling, transport, etc. It is also suited for teaching most aspects of combinatorial problem solving, e.g., problem modeling, constraint programming, mathematical programming, and search techniques. It contains constraint solver libraries, a high-level modeling and control language, interfaces to third-party solvers, an integrated development environment and interfaces for embedding into host environments.

The Galahad library is a thread-safe library of packages for the solution of mathematical optimization problems. The areas covered by the library are unconstrained and bound-constrained optimization, quadratic programming, nonlinear programming, systems of nonlinear equations and inequalities, and non-linear least squares problems. The library is mostly written in the Fortran 90 programming language.

<span class="mw-page-title-main">COIN-OR</span>

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 provides the operations research (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 TOMLAB Optimization Environment is a modeling platform for solving applied optimization problems in MATLAB.

Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation. One particular advantage of some algebraic modeling languages like AIMMS, AMPL, GAMS, Gekko, MathProg, Mosel, and OPL is the similarity of their syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.

<span class="mw-page-title-main">ILOG</span> Software company that makes products including JRules

ILOG S.A. was an international software company purchased and incorporated into IBM announced in January, 2009. It created enterprise software products for supply chain, business rule management, visualization and optimization. The main product line for Business Rules Management Systems (BRMS) has been rebranded as IBM Operational Decision Management. Many of the related components retain the ILOG brand as a part of their name.

FortMP is a software package for solving large-scale optimization problems. It solves linear programming problems, quadratic programming problems and mixed integer programming problems. Its robustness has been explored and published in the Mathematical Programming journal. FortMP is available as a standalone executable that accepts input in MPS format and as a library with interfaces in C and Fortran. It is also supported in the AMPL modeling system.

<span class="mw-page-title-main">Zuse Institute Berlin</span> Research institute for applied mathematics and computer science in Berlin, Germany

The Zuse Institute Berlin is a research institute for applied mathematics and computer science on the campus of Freie Universität Berlin in Dahlem, Berlin, Germany.

MOSEK is a software package for the solution of linear, mixed-integer linear, quadratic, mixed-integer quadratic, quadratically constraint, conic and convex nonlinear mathematical optimization problems. The applicability of the solver varies widely and is commonly used for solving problems in areas such as engineering, finance and computer science.

<span class="mw-page-title-main">WORHP</span> Mathematical software library

WORHP, also referred to as eNLP by ESA, is a mathematical software library for numerically solving large scale continuous nonlinear optimization problems.

The FICO Xpress optimizer is a commercial optimization solver for linear programming (LP), mixed integer linear programming (MILP), convex quadratic programming (QP), convex quadratically constrained quadratic programming (QCQP), second-order cone programming (SOCP) and their mixed integer counterparts. Xpress includes a general purpose non-linear solver, Xpress NonLinear, including a successive linear programming algorithm, and Artelys Knitro.

MINOS is a Fortran software package for solving linear and nonlinear mathematical optimization problems. MINOS may be used for linear programming, quadratic programming, and more general objective functions and constraints, and for finding a feasible point for a set of linear or nonlinear equalities and inequalities.

<span class="mw-page-title-main">Pyomo</span>

Pyomo is a collection of Python software packages for formulating optimization models.

Convex Over and Under ENvelopes for Nonlinear Estimation (Couenne) is an open-source library for solving global optimization problems, also termed mixed integer nonlinear optimization problems. A global optimization problem requires to minimize a function, called objective function, subject to a set of constraints. Both the objective function and the constraints might be nonlinear and nonconvex. For solving these problems, Couenne uses a reformulation procedure and provides a linear programming approximation of any nonconvex optimization problem.

Optimization Programming Language (OPL) is an algebraic modeling language for mathematical optimization models, which makes the coding easier and shorter than with a general-purpose programming language. It is part of the CPLEX software package and therefore tailored for the IBM ILOG CPLEX and IBM ILOG CPLEX CP Optimizers. The original author of OPL is Pascal Van Hentenryck.

Artelys Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems.

<span class="mw-page-title-main">OR-Tools</span> Open source software suite by Google

Google OR-Tools is a free and open-source software suite developed by Google for solving linear programming (LP), mixed integer programming (MIP), constraint programming (CP), vehicle routing (VRP), and related optimization problems.

<span class="mw-page-title-main">HiGHS optimization solver</span> Numerical software

HiGHS is open-source software to solve linear programming (LP), mixed-integer programming (MIP), and convex quadratic programming (QP) models.

References

  1. "CPLEX Optimization Studio 20.1 is available".
  2. IBM Completes Acquisition of ILOG, 6 Jan 2009, retrieved 24 June 2020
  3. Mittelmann, H. D. (10 July 2007), "Recent Benchmarks of Optimization Software", 22nd European Conference on Operational Research, EURO XXII Prague, Czech Republic: Dept of Math and Stats Arizona State University
  4. Laborie P, Rogerie J, Shaw P, Vilim P (2018). "IBM ILOG CP optimizer for scheduling". Constraints. 23 (2): 210–250. doi:10.1007/s10601-018-9281-x.
  5. "CPLEX History". CPLEX History as published by ILOG. Archived from the original on 13 April 2009. Retrieved 24 June 2020.
  6. "Release notes for CPLEX 22.1.1" . Retrieved 11 January 2023.
  7. "Release notes for CPLEX 22.1.0" . Retrieved 11 January 2023.
  8. "CPLEX 20.1 Release Notes" . Retrieved 4 March 2021.