<commit_before># Exact Combinatorial Optimization with Graph Convolutional Neural Networks

<NAME>, <NAME>, <NAME>, <NAME>, <NAME>

https://arxiv.org/abs/1906.01629

## Installing the dependencies

Recommended: conda + python 3

https://docs.conda.io/en/latest/miniconda.html

### Tensorflow
```
conda install tensorflow-gpu=1.12.0
```

### SCIP

SoPlex 4.0.1 (free for academic uses)

https://soplex.zib.de/download.php?fname=soplex-4.0.1.tgz

```
tar -xzf soplex-4.0.1.tgz
cd soplex-4.0.1/
mkdir build
cmake -S . -B build -DCMAKE_INSTALL_PREFIX="YOUR_INSTALL_DIR"
make -C ./build -j 4
make -C ./build install
cd ..
```

SCIP 6.0.1 (free for academic uses)

https://scip.zib.de/download.php?fname=scip-6.0.1.tgz

```
tar -xzf scip-6.0.1.tgz
cd scip-6.0.1/
```

Apply patches in `learn2branch/scip_patch/`

```
patch -p1 < ../learn2branch/scip_patch/0001-vanillafullstrong-branching-rule-initial-version.patch
patch -p1 < ../learn2branch/scip_patch/0002-Vanillafullstrong-bugfixes.patch
patch -p1 < ../learn2branch/scip_patch/0003-vanillafulltrong-implemented-indempotent-functionali.patch
patch -p1 < ../learn2branch/scip_patch/0004-Compilation-fix.patch
```

```
mkdir build
cmake -S . -B build -DSOPLEX_DIR="YOUR_INSTALL_DIR" -DCMAKE_INSTALL_PREFIX="YOUR_INSTALL_DIR"
make -C ./build -j 4
make -C ./build install
cd ..
```

Original installation instructions here:

http://scip.zib.de/doc/html/CMAKE.php

### Cython

Required for PySCIPOpt and PySVMRank
```
conda install cython
```

### PySCIPOpt

SCIP's python interface (modified version)

```
SCIPOPTDIR="YOUR_INSTALL_DIR" pip install git+https://github.com/ds4dm/PySCIPOpt.git@ml-branching
```

### ExtraTrees<commit_msg>Updated installation instructions (SCIPOPTDIR)<commit_after># Exact Combinatorial Optimization with Graph Convolutional Neural Networks

<NAME>, <NAME>, <NAME>, <NAME>, <NAME>

https://arxiv.org/abs/1906.01629

## Installing the dependencies

Recommended: conda + python 3

https://docs.conda.io/en/latest/miniconda.html

### Tensorflow
```
conda install tensorflow-gpu=1.12.0
```

### SCIP

Set-up a desired installation path for SCIP / SoPlex (e.g., `/opt/scip`):
```
export SCIPOPTDIR='/opt/scip'
```

SoPlex 4.0.1 (free for academic uses)

https://soplex.zib.de/download.php?fname=soplex-4.0.1.tgz

```
tar -xzf soplex-4.0.1.tgz
cd soplex-4.0.1/
mkdir build
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$SCIPOPTDIR
make -C ./build -j 4
make -C ./build install
cd ..
```

SCIP 6.0.1 (free for academic uses)

https://scip.zib.de/download.php?fname=scip-6.0.1.tgz

```
tar -xzf scip-6.0.1.tgz
cd scip-6.0.1/
```

Apply patches in `learn2branch/scip_patch/`

```
patch -p1 < ../learn2branch/scip_patch/0001-vanillafullstrong-branching-rule-initial-version.patch
patch -p1 < ../learn2branch/scip_patch/0002-Vanillafullstrong-bugfixes.patch
patch -p1 < ../learn2branch/scip_patch/0003-vanillafulltrong-implemented-indempotent-functionali.patch
patch -p1 < ../learn2branch/scip_patch/0004-Compilation-fix.patch
```

```
mkdir build
cmake -S . -B build -DSOPLEX_DIR=$SCIPOPTDIR -DCMAKE_INSTALL_PREFIX=$SCIPOPTDIR
make -C ./build -j 4
make -C ./build install
cd ..
```

Original installation instructions here:

http://scip.zib.de/doc/html/CMAKE.php

### Cython

Required for PySCIPOpt and PySVMRank
```
conda install cython
```

### PySCIPOpt

SCIP's python interface (modified version)

```
pip install git+https://github.com/ds4dm/PySCIPOpt.git@ml-branching
```

### ExtraTrees
{'fraction_non_alphanumeric': 0.157254561251086, 'fraction_numerical': 0.038227628149435276, 'mean_word_length': 4.117037037037037, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 13, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2287805', 'n_tokens_mistral': 1479, 'n_tokens_neox': 1342, 'n_words': 269}