Jump to content

CPLEX

From Wikipedia, the free encyclopedia
CPLEX
Developer(s)IBM
Stable release
20.1.0[1]
TypeTechnical computing
LicenseProprietary
Websitewww.ibm.com/products/ilog-cplex-optimization-studio

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

History[edit]

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[edit]

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[edit]

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

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

See also[edit]

References[edit]

  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.

External links[edit]