This repository implements piecewise affine decision rules using the concept of liftings. It provides all relevant code to reproduce the numerical results presented in the paper.
Simon Thomä, Maximilian Schiffer, Wolfram Wiesemann. (2024). A Note on Piecewise Affine Decision Rules for Robust, Stochastic, and Data-Driven Optimization. arXiv. https://doi.org/10.48550/arXiv.2409.10295
Most of the solvers only implement the special cases needed for the numerical experiments yet. We are happy to collaborate on making this a more general-purpose library.
- C++20 or newer is required for compiling the project.
- The project has been tested on Gurobi 11. It may be compatible with other versions, with minor modifications to
CMakeLists.txt
. - Ensure the environment variable
GUROBI_HOME
is set to point to your Gurobi installation directory.
-
Clone the Repository
Clone the repository to your local machine using the following command:
git clone [Your Repository URL] cd [Your Repository Name]
-
Set Up Gurobi Environment Variable
Set the
GUROBI_HOME
environment variable to point to your Gurobi installation directory. Replace/path/to/gurobi
with the actual path to your Gurobi installation:export GUROBI_HOME=/path/to/gurobi
-
Create a Build Directory It's a good practice to create a separate build directory:
mkdir build cd build
-
Configure the Project with CMake
Run CMake from the build directory to configure the project:
cmake ..
-
Compile the Project
Compile the project using the makefile generated by CMake:
make
The repository is structured in three parts:
models
contains a relatively general framework to model robust optimization and second-order cone problems.solver
implements all solvers compared in the numerical experiments of the paper.tests
implements the numeric test instances presented in the paper.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
For more information on the MIT License, please visit Open Source Initiative.
If you use this code in your work, please cite the accompanying paper:
Simon Thomä, Maximilian Schiffer, Wolfram Wiesemann. (2024). A Note on Piecewise Affine Decision Rules for Robust, Stochastic, and Data-Driven Optimization. arXiv. https://doi.org/10.48550/arXiv.2409.10295
For any issues, questions, or collaboration offers, please reach out to the corresponding author of the accompanying paper.