DualDecomposition.jl icon indicating copy to clipboard operation
DualDecomposition.jl copied to clipboard

An algorithmic framework for parallel dual decomposition methods in Julia

DualDecomposition.jl

Run tests codecov DOI

This package implements an algorithmic framework for parallel dual decomposition methods in Julia. While not aiming to outperforming the decomposition solvers written in a low-level language (e.g., DSP), this package provides the following features that DSP does not provide:

  • This is designed to solve structured MINLP (and thus NLP) too, as long as the objective function is linear or quadratic.
  • One can use any optimization solvers through MathOptInterface.jl.
  • Of course, user does not need to compile any code for parallel solutions with MPI.jl.

Installation

This package can be installed by cloning this repository:

] add DualDecomposition

Examples

Please see examples in ./examples.

Citing this package

@misc{DualDecomposition.jl.0.3.0,
  author       = {Kim, Kibaek and Nakao, Hideaki and Kim, Youngdae and Schanen, Michel and Zhang, Weiqi and Li, Can},
  title        = {{DualDecomposition.jl: Parallel Dual Decomposition in Julia}},
  month        = July,
  year         = 2021,
  doi          = {10.5281/zenodo.5079761},
  version      = {0.3.0},
  publisher    = {Zenodo},
  url          = {https://doi.org/10.5281/zenodo.5079761}
}

Acknowledgements

This material is based upon work supported by the U.S. Department of Energy, Office of Science, under contract number DE-AC02-06CH11357.