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.
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.
-
First, you must obtain a copy of the CPLEX software and a license; trial versions and academic licenses are available here.
-
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)). -
At the Julia prompt, run
julia> Pkg.add("CPLEX")
(or manually clone this module to your .julia
directory).
- Check that your version is included in
deps/build.jl
in the aliases for the library dependency; if not, open an issue.
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.
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.