Julia interface to SCIP solver.
- SCIP: actual solver (implemented in C) that is wrapped for Julia.
- CSIP: restricted and simplified C interface to SCIP which our wrapper is based on.
- SCIP.jl: previous attempt to interface SCIP from Julia, using autogenerated wrapper code for all public functions.
- MathProgBase: We aim to
implement MPB's abstract solver interfaces, so that one can use SCIP.jl
through JuMP. For now, the
LinearQuadraticModel
interface is implemented, supporting lazy constraint and heuristic callbacks.
The SCIP.jl package requires SCIP to be installed.
Download the SCIP Optimization Suite, copy the patched file and build the shared library with
make SHARED=true GMP=false READLINE=false ZLIB=false OPT=opt scipoptlib
Next set the environment variable SCIPOPTDIR
to point to the directory that
contains the scipoptsuite
sources. CSIP needs the library in
${SCIPOPTDIR}/lib/scipoptlib.so
and the C header files in
${SCIPOPTDIR}/scip-*/src/
.
Now you should be able to build SCIP.jl in Julia with
Pkg.build("SCIP")
SCIP has a long list of parameters
that can all be set through SCIP.jl, by passing them to the constructor of
SCIPSolver
. To set a value val
to a parameter name
, pass the two
parameters (name, val)
. For example, let's set two parameters, to disable
output and increase the gap limit to 0.05:
solver = SCIPSolver("display/verblevel", 0, "limits/gap", 0.05)