Skip to content

INFORMSJoC/2023.0286

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INFORMS Journal on Computing Logo

An Exact Algorithm for Multicommodity Network Design under Stochastic Interdictions

This archive is distributed in association with the INFORMS Journal on Computing under the MIT License.

The software and data in this repository are a snapshot of the software and data that were used in the research reported on in the paper An Exact Algorithm for Multicommodity Network Design under Stochastic Interdictions by Shabnam Mahmoudzadeh Vaziri, Onur Kuzgunkaya, and Navneet Vidyarthi.

Cite

To cite the contents of this repository, please cite both the paper and this repo, using their respective DOIs.

http://doi.org/10.1287/ijoc.2023.0286

http://doi.org/10.1287/ijoc.2023.0286.cd

Below is the BibTex for citing this snapshot of the repository.

@misc{Vaziri2024,
  author =        {Vaziri, Shabnam Mahmoudzadeh and Kuzgunkaya, Onur and Vidyarthi, Navneet},
  publisher =     {INFORMS Journal on Computing},
  title =         {{An Exact Algorithm for Multicommodity Network Design under Stochastic Interdictions}},
  year =          {2024},
  doi =           {10.1287/ijoc.2023.0286.cd},
  url =           {https://github.com/INFORMSJoC/2023.0286},
  note =          {Available for download at https://github.com/INFORMSJoC/2023.0286},
}

Description

This repository contains 5 folders, each for one variant of the branch-and-Benders-cut algorithm presented in the paper as follows.

  • BBC1: Multicut reformulation
  • BBC2: Multicut reformulation with penalty reformulation
  • BBC3: Multicut reformulation with Pareto-optimal cuts
  • BBC4: Multicut reformulation with supervalid and valid inequalities
  • BBC5: Multicut reformulation with all the acceleration techniques

Please note that for using the codes in Visual Studio, you should change the time function to clock(). The current time fucntion gettimeofday(&stop, NULL) is for Linux.

Building

To use the code, you need CPLEX 22.1.0. To use other versions of CPLEX, modify the Makefile and def.h with your CPLEX version.

To run e.g. BBC2 in Linux:

make

./BBCPenaltymulti Input.txt

Results

All detailed results are available in the Results folder.