Skip to content

Commit

Permalink
reset README
Browse files Browse the repository at this point in the history
  • Loading branch information
rschwarz committed Dec 15, 2018
1 parent 92d3685 commit baa31dd
Showing 1 changed file with 9 additions and 57 deletions.
66 changes: 9 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,60 +5,12 @@ Julia interface to [SCIP](http:https://scip.zib.de) solver.
[![Coverage Status](https://coveralls.io/repos/github/SCIP-Interfaces/SCIP.jl/badge.svg?branch=master)](https://coveralls.io/github/SCIP-Interfaces/SCIP.jl?branch=master)
[![codecov](https://codecov.io/gh/SCIP-Interfaces/SCIP.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/SCIP-Interfaces/SCIP.jl)

## Related Projects

- [SCIP](http:https://scip.zib.de): actual solver (implemented in C) that is wrapped
for Julia.
- [CSIP](https://github.com/SCIP-Interfaces/CSIP): restricted and simplified C
interface to SCIP which our wrapper is based on.
- [SCIP.jl](https://github.com/ryanjoneil/SCIP.jl): previous attempt to
interface SCIP from Julia, using autogenerated wrapper code for all public
functions.
- [MathProgBase](https://github.com/JuliaOpt/MathProgBase.jl): We aim to
implement MPB's abstract solver interfaces, so that one can use SCIP.jl
through [JuMP](https://github.com/JuliaOpt/JuMP.jl). For now, the
`LinearQuadraticModel` interface is implemented, supporting lazy constraint
and heuristic callbacks.

## Installation

**Note**: These instructions are meant for and only tested with GNU/Linux. OS X used to work,
but there is an issue (#46) since the update to SCIP 4.0.0.

Follow the steps below to get SCIP.jl working. Unfortunately, these steps can not be automated as part of `Pkg.build("SCIP")`, because the academic license of SCIP does not allow distribution of the source code without tracking the download metadata. See the [license](http:https://scip.zib.de/academic.txt) for details.

1.The SCIP.jl package requires [SCIP](http:https://scip.zib.de/) to be installed in a recent version (e.g. 6.0.0).
[Download](http:https://scip.zib.de) the SCIP Optimization Suite.
```
tar xzf scipoptsuite-6.0.0.tgz
```

2.Choose an installation path and set the **environment variable `SCIPOPTDIR`** to point there.
```
export SCIPOPTDIR=`my/install/dir`
```

3.Build and install the shared library with
```
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$SCIPOPTDIR ..
make
make install
```

4.This package is registered in `METADATA.jl` and can be installed in Julia with
```
Pkg.add("SCIP")
```

## Setting Parameters

SCIP has a [long list of parameters](http:https://scip.zib.de/doc/html/PARAMETERS.php)
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)
```
This is a complete rewrite. We use
[Clang.jl](https://github.com/ihnorton/Clang.jl) to generate wrappers based on
the headers of the SCIP library. We aim to support
[JuMP](https://github.com/JuliaOpt/JuMP.jl) through
[MathOptInterface](https://github.com/JuliaOpt/MathOptInterface.jl). In this
first pass, only the
[LinQuadOptInterface](https://github.com/JuliaOpt/LinQuadOptInterface.jl) will
be implemented. This means that we will have a feature loss in the areas of
general nonlinear constraints as well as supported callbacks.

0 comments on commit baa31dd

Please sign in to comment.