Cplex



  1. Cplex Solver
  2. Cplex Mixed Integer Programming
CPLEX
Developer(s)IBM
Stable release
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. In 2004, the work on CPLEX earned the first INFORMS Impact Prize.

  1. Using a configuration with 439 qubits, the system performed 3,600 times as fast as CPLEX, the best algorithm on the conventional machine, solving problems with 100 or more variables in half a second compared with half an hour. The results are presented at the Computing Frontiers 2013 conference.
  2. CreatingtheEnvironment: IloEnv 5/32 The class IloEnvconstructs a CPLEX environment. The environment is the first object created in an application. To create an environment named env, you do this: IloEnv env; The environment object needs to be available to the constructor of all other Concert Technology classes IloEnvis a handle class: variable envis a pointer to an implementation.

MATLAB ® OPTIMIZATION - TOMLAB The TOMLAB ® Optimization Environment with its powerful optimization toolboxes is a optimization, optimal control and modeling platform for solving applied optimization problems in MATLAB. CPLEX comes in various forms to meet a wide range of users' needs: v The CPLEX Interactive Optimizer is an executable program that can read a problem interactively or from files in certain standard formats, solve the problem, and deliver the solution interactively or into text files.

History[edit]

The CPLEX Optimizer was named for the simplex method as 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. 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, 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.

Cplex Solver

Release History[edit]

Prior to IBM acquiring ILOG, the CPLEX team published a release history of CPLEX. [5] This has been updated and replicated here for posterity.

VersionRelease DateKey Features
20.1December, 2020MIP performance improvements, new 'emphasis mip 5' mode, etc. [6]
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[edit]

Cplex

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.CS1 maint: discouraged parameter (link)
  6. ^'CPLEX 20.1 Release Notes'. Retrieved 4 March 2021.CS1 maint: discouraged parameter (link)

External links[edit]

Retrieved from 'https://en.wikipedia.org/w/index.php?title=CPLEX&oldid=1010202948'

OMPR (Optimization Modeling Package) is a DSL to model and solve Mixed Integer Linear Programs. It is inspired by the excellent Jump project in Julia.

Qube laptops & desktops driver download for windows. Here are some problems you could solve with this package:

  • What is the cost minimal way to visit a set of clients and return home afterwards?
  • What is the optimal conference time table subject to certain constraints (e.g. availability of a projector)?

The Wikipedia article gives a good starting point if you would like to learn more about the topic.

I am always happy to get bug reports or feedback.

Install

CRAN

Development version

To install the current development version use devtools:

Available solver bindings

PackageDescriptionBuild LinuxBuild WindowsTest coverage
ompr.roiBindings to ROI (GLPK, Symphony, CPLEX etc.)

A simple example:

API

These functions currently form the public API. More detailed docs can be found in the package function docs or on the website

DSL

  • MIPModel() create an empty mixed integer linear model (the old way)
  • MILPModel() create an empty mixed integer linear model (an alternative way; experimental, especially suitable for large models)
  • add_variable() adds variables to a model
  • set_objective() sets the objective function of a model
  • set_bounds() sets bounds of variables
  • add_constraint() add constraints
  • solve_model() solves a model with a given solver
  • get_solution() returns the column solution (primal or dual) of a solved model for a given variable or group of variables
  • get_row_duals() returns the row duals of a solution (only if it is an LP)
  • get_column_duals() returns the column duals of a solution (only if it is an LP)

Backends

There are currently two backends. A backend is the function that initializes an empty model.

  • MIPModel() is the standard MILP Model
  • MILPModel() is another backend specifically optimized for linear models and is about 1000 times faster than MIPModel(). It has slightly different semantics, as it is vectorized. Currently experimental.

Solver

Cplex

Solvers are in different packages. ompr.ROI uses the ROI package which offers support for all kinds of solvers.

  • with_ROI(solver = 'glpk') solve the model with GLPK. Install ROI.plugin.glpk
  • with_ROI(solver = 'symphony') solve the model with Symphony. Install ROI.plugin.symphony
  • with_ROI(solver = 'cplex') solve the model with CPLEX. Install ROI.plugin.cplex
  • … See the ROI package for more plugins.

Further Examples

Please take a look at the docs for bigger examples.

Knapsack

Bin Packing

An example of a more difficult model solved by symphony.

License

Currently GPL.

Cplex Mixed Integer Programming

Contributing

Please post an issue first before sending a PR.

Cplex download

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Related Projects

Cplex
  • CVXR - an excellent package for “object-oriented modeling language for convex optimization”. LP/MIP is a special case.
  • ROML follows a similiar approach, but it seems the package is still under initial development.