CPLEX, published by IBM ILOG, is available on CBS Research Grid. CPLEX is a tool for solving linear optimization problems, commonly referred to as Linear Programming (LP) problems. It also can solve several extensions to LP:
- Network Flow problems, a special case of LP that CPLEX can solve much faster by exploiting the problem structure.
- Quadratic Programming (QP) problems, where the LP objective function is expanded to include quadratic terms.
- Quadratically Constrained Programming (QCP) problems that include quadratic terms among the constraints.
- Mixed Integer Programming (MIP) problems, where any or all of the LP or QP variables are further restricted to take integer values in the optimal solution and where MIP itself is extended to include constructs like Special Ordered Sets (SOS) and semi-continuous variables.
Running CPLEX Interactive Optimizer
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.
Name & Version | Command | Mode |
---|---|---|
CPLEX 12 |
cplex |
Interactive mode, Type quit to exit |
Using CPLEX Callable Library
The CPLEX Callable Library is a C library that allows the programmer to embed ILOG CPLEX optimizers in applications written in C, Visual Basic, FORTRAN, or any other language that can call C functions. The following is an example to compile and link CPLEX callable library:
- gcc -m64 -fPIC -I/apps/cplex110/include lpex1.c -o lpex1 -L/apps/cplex110/lib/x86-64_rhel4.0_3.4/static_pic -lcplex -lm -lpthread
- Alternatively, you can use cplexgcc wrapper to shorten the command: cplexgcc lpex
- To run lpex1, type: ./lpex1 -r
- For detailed explanation of this command, please see CPLEX manual under /apps/cplex110/doc.
Directory Structure
The following subdirectories (and this file), are contained in the directory /apps/cplex.
bin/<machine>: CPLEX Interactive Optimizer (cplex) and other executable files such as the shared library (libcplex110.so or .sl depending on the platform). doc: HTML and PDF versions of the CPLEX manuals. examples/src: Source files for the examples (lpex1.c, et cetera). examples/<machine>/<libformat>: Makefile for examples to support your particular platform. include/ilcplex: Files, such as cplex.h and ilocplex.h, that are needed to compile applications that use the Callable Library or the C++ version of Concert Technology. lib: The cplex.jar file containing the Java classes needed to use the Java version of Concert Technology. lib/<machine>/<libformat>: Library files that contain CPLEX (libcplex.a) and CPLEX extensions to Concert Technology (libilocplex.a).