hlefebvr / AE-using-column-generation-in-column-and-constraint-generation

Using Column Generation in Column-and-Constraint Generation for Adjustable Robust Optimization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using Column Generation in Column-and-Constraint Generation for Adjustable Robust Optimization

GitHub GitHub issues Repo status

This repository contains the code and data used for the paper Lefebvre, H., Schmidt, M., and Thürauf, J. (2023) "Using Column Generation in Column-and-Constraint Generation for Adjustable Robust Optimization".

How to cite

If you are using this repository for your research, please cite our preprint.

@misc{Lefebvre2023,
  title={Using Column Generation in Column-and-Constraint Generation for Adjustable Robust Optimization},
  author={Henri Lefebvre and Martin Schmidt and Johannes Thürauf},
  year={2023},
  url = {https://optimization-online.org/?p=24462}
}

How to use

Dependencies

Compiling requires the following dependencies*:

  • CMake version 3.22.1.
  • GCC version 11.4.0 (for __has_include preprocessor).
  • Gurobi version 10.0.1.
  • idol version 0.3.5-alpha. Idol will be downloaded automatically, you do not need to install it.

Running requires the following dependencies*:

  • Gurobi version 10.0.1.
  • idol version 0.3.5-alpha. Idol will be downloaded automatically, you do not need to install it.

* reported versions are not minimal required versions but are ones which have been tested.

Compiling

Finding Gurobi

(Recommended) First, be sure to have your GUROBI_HOME environment variable configured according to the official Gurobi guidelines.

(Alternatively) You may use the GUROBI_DIR CMake variable, please refer to the idol documentation page.

Create Makefile with CMake

By running the following command, CMake will generate an appropriate Makefile. Additionally, it will download the idol library. Thus, an internet connection is required for this step.

mkdir build
cd build
cmake ..

Compile with make

From the build directory, run the following.

make

Running

Running our code is done as follows:

./build/FLP/FLP_solve <PATH_TO_INSTANCE> <STD_PHASE_TIME_LIMIT> <GAMMA> <USE_HEURISTIC>
./build/JSP/JSP_solve <PATH_TO_INSTANCE> <STD_PHASE_TIME_LIMIT> <GAMMA> <USE_HEURISTIC>

Arguments are as follows:

  • PATH_TO_INSTANCE: the absolute path to an instance file.
  • STD_PHASE_TIME_LIMIT: the time limit for the first phase of the algorithm (i.e., the time limit after which we switch to the column generation approach).
  • GAMMA: the uncertainty budget $\Gamma$.
  • USE_HEURISRIC: true if the "integer master" heuristic should be used, false otherwise.

About

Using Column Generation in Column-and-Constraint Generation for Adjustable Robust Optimization

License:GNU General Public License v3.0


Languages

Language:C++ 91.5%Language:Shell 5.8%Language:CMake 2.7%