Skip to content

tumBAIS/piecewise-affine-ARO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Designing Tractable Piecewise Affine Policies for Multi-Stage Adjustable Robust Optimization

This repository implements multiple piecewise affine policies in the context of adjustable robust optimization. It provides all relevant code to reproduce the numerical results presented in the paper.

Simon Thomä, Grit Walther, Maximilian Schiffer. (2024). Designing Tractable Piecewise Affine Policies for Multi-Stage Adjustable Robust Optimization. Mathematical Programming. https://doi.org/10.1007/s10107-023-02053-0

While most of the code is aimed to be applicable to general robust optimization problems, some 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 9.5. 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 https://github.com/tumBAIS/piecewise-affine-ARO.git
    cd piecewise-affine-ARO
  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ä, Grit Walther, Maximilian Schiffer. (2024). Designing Tractable Piecewise Affine Policies for Multi-Stage Adjustable Robust Optimization. Mathematical Programming. https://doi.org/10.1007/s10107-023-02053-0

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