Skip to content

rdeits/CPLEX.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPLEX.jl

The CPLEX.jl package provides an unofficial 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 directory containing the CPLEX library by adding, for example, export LD_LIBRARY_PATH="/path/to/cplex/bin/x86-64_linux":$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)). On linux, make sure this directory contains libcplexXXX.so where XXX is stands for the version number; on OS-X the file should be named libcplexXXX.dylib. Alternatively, you can also use the CPLEX_STUDIO_BINARIES environment variable as follows:

$ CPLEX_STUDIO_BINARIES=/path/to/cplex/bin/x86-64_linux julia -e 'Pkg.add("CPLEX"); Pkg.build("CPLEX")'
  1. 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 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.

Parameters

Solver parameters can be passed through the CplexSolver() object, e.g., CplexSolver(CPX_PARAM_EPINT=1e-8). Parameters match those of the CPLEX documentation. Additionally, the mipstart_effortlevel parameter can be used to tell CPLEX how much effort to put into turning warmstarts into feasible solutions, with possible values CPLEX.CPX_MIPSTART_AUTO, CPLEX.CPX_MIPSTART_CHECKFEAS, CPLEX.CPX_MIPSTART_SOLVEFIXED, CPLEX.CPX_MIPSTART_SOLVEMIP, CPLEX.CPX_MIPSTART_REPAIR, and CPLEX.CPX_MIPSTART_NOCHECK.

About

Julia interface for the CPLEX optimization software

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%