Is CPLEX the right solution for my business?

Watch video on Youtube (opens a new tab)

IBM CPLEX Optimization Studio

Cplex Optimization Studio allows you to model business problems mathematically and solve them with powerful algorithms, which can produce a large range of approximate or optimal solutions.


The CPLEX engine provides flexible, high-performance mathematical programming solvers for linear, mixed integer and quadratic programming.

CP Optimizer

The CP Optimizer engine to solve scheduling problems and other hard and non-linear combinatorial problems using constraint programming.


Both engines can be programmed using the algebraic modelling OPL language, or programmatic APIs in C/C++, C# and Java.

For Operations Research and Mathematical Modelling specialists

OPL language

The OPL language is an algebraic modelling language that allows modelling optimization problems and solve them with CPLEX or CP Optimizer.

It includes an Eclipse based IDE for Windows, MacOS and Linux, a model explorer, a debugger, and Gantt charts to view scheduling solutions. A large and comprehensive library of models is provided to jumpstart users.

OPL also allows including OPLScript (JavaScript) code for programming tasks that aren’t related to optimization like IO, file management, but also external routines (e.g. an all pairs shortest path). Resolution with multiple models and the exchange of data between them is also managed in OPLScript.

Models in OPL can be deployed in any language (C, C++, C#, Java) via a programmatic API that loads the OPL model, solves and gives access to the results from the main program.

Because it is simple and compact, OPL increases the modeller’s productivity, allowing him / her to explore a large variety of models for the same problem and find the one that provides the best performance over the dataset.

For Linear and Quadratic Problems


CPLEX is the optimization engine dedicated to solve linear and quadratic problems in fractional or integer variables.

Cplex not only provides excellent performance but improves on a regular basis.

Examples of new features added to Cplex recently include automated Benders decomposition, which allows users to tell the engine which variables are primary and which variables are secondary. The engine will then run the optimization problem on the primary variables, extend the assignment to the secondary variables and identify infeasibilities if needed (no-good cuts).

For Scheduling Problems

CP Optimizer

CP Optimizer is the optimization engine dedicated to solve scheduling and routing, and combinatorial problems.

For scheduling problems, CP Optimizer provides dedicated modeling concepts that allow describing a large variety of scheduling and routing problems, while allowing the engine to solve them efficiently with dedicated scheduling algorithms.

For combinatorial problems, CP Optimizer provides traditional CP modeling concepts, mixed with advanced resolution techniques like automated search.

Programmatic APIs give access to low-level features of engines like CPLEX callbacks for researchers

For access to low-level features of the engines

Programmatic APIs

Cplex and CP Optimizer models can also created via C, C++, C# and Java APIs. While this leads to significantly more verbose models, it allows a tighter integration between the code and the engine.

Writing models in C/C++, C# or Java also gives access to low-level features of the engines like CPLEX callbacks. These features are interesting for researchers that want to add branching strategies and custom cuts. Custom callbacks however disable features that are important for CPLEX’s performance. They are therefore not recommended for models in production.

Latest News