Skip to content

tumBAIS/lifting-based-piecewise-affine-policies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Note on Piecewise Affine Decision Rules for Robust, Stochastic and Data-Driven Optimization

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.

Prerequisites

  • 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.

Installation

  1. Clone the Repository

    Clone the repository to your local machine using the following command:

    git clone [Your Repository URL]
    cd [Your Repository Name]
  2. 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
  3. Create a Build Directory It's a good practice to create a separate build directory:

    mkdir build
    cd build
  4. Configure the Project with CMake

    Run CMake from the build directory to configure the project:

    cmake ..
  5. Compile the Project

    Compile the project using the makefile generated by CMake:

    make

Usage

The repository is structured in three parts:

  1. models contains a relatively general framework to model robust optimization and second-order cone problems.
  2. solver implements all solvers compared in the numerical experiments of the paper.
  3. tests implements the numeric test instances presented in the paper.

Contribution Guidelines

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Licensing

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.

Citing This Work

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

Contact Information

For any issues, questions, or collaboration offers, please reach out to the corresponding author of the accompanying paper.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published