Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 2.77 KB

README.md

File metadata and controls

35 lines (22 loc) · 2.77 KB

CPLEX.jl

The CPLEX.jl package provides an interface for using IBM's CPLEX Optimizer™ from the Julia language. You cannot use CPLEX.jl without having purchased and installed a copy of CPLEX Optimizer™ from IBM. This package is available free of charge and in no way replaces or alters any functionality of IBM's CPLEX Optimizer product.

CPLEX.jl is a Julia interface for the CPLEX optimization software. CPLEX functionality is extensive, so coverage is incomplete, but the basic functionality for solving linear and mixed-integer programs is provided.

CPLEX.jl is intended for use with the MathProgBase solver interface; an internal API, while present, is not documented.

Setting up CPLEX on OS X and Linux

NOTE: CPLEX does not officially support linking to their dynamic C library, which is necessary for use from Julia. However, the steps outlined below have worked for OS-X, Windows, and Linux machines.

  1. First, you must obtain a copy of the CPLEX software and a license; trial versions and academic licenses are available here.

  2. Once CPLEX is installed on your machine, point the LD_LIBRARY_PATH variable to the CPLEX library by adding export LD_LIBRARY_PATH="/path/to/CPLEX/library":$LD_LIBRARY_PATH to your start-up file (e.g. .bash_profile, [adding library path on Ubuntu](http://stackoverflow.com/questions/13428910/how-to-set-the-environmental-variable-ld-library-path-in-linux for a)).

  3. At the Julia prompt, run

julia> Pkg.add("CPLEX")

(or manually clone this module to your .julia directory).

  1. Check that your version is included in deps/build.jl in the aliases for the library dependency; if not, open an issue.

Note on parameters

CPLEX has a large range of parameters that can be tuned to change the solvers behavior in many stages of the optimization process. CPLEX.jl includes an automatically generated list of parameters that are accessible for use. However, this list has last been generated with CPLEX version 12.6.2, and there are some differences with previous versions. For this reason, take care when setting solver parameters on earlier versions of CPLEX.

Note for windows

Currently, CPLEX.jl is compatible only with 64-bit CPLEX and 64-bit Julia on Windows. CPLEX.jl attemps to automatically find the CPLEX library based on the CPLEX_STUDIO_BINARIES environmental variable set by the CPLEX installer.