Skip to content

Commit 6c9e489

Browse files
authored
Merge pull request #8 from dlcole3/dc/add_citation
Added paper citation
2 parents 652993d + 6ea0434 commit 6c9e489

2 files changed

Lines changed: 29 additions & 3 deletions

File tree

docs/src/PlasmoBenders/introduction.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# PlasmoBenders.jl
22

3-
PlasmoBenders.jl is a custom decomposition-based solver that exploits the graph structure defined for a Plasmo.jl OptiGraph and applies [Benders](https://en.wikipedia.org/wiki/Benders_decomposition) or Nested Benders Decomposition based on the user-defined structure (i.e., it detects the copmlicating variables based on the graph structure). In this way, PlamsoBenders implements these decomposition approaches automatically for the user.
3+
PlasmoBenders.jl is a custom decomposition-based solver that exploits the graph structure defined for a Plasmo.jl OptiGraph and applies [Benders](https://en.wikipedia.org/wiki/Benders_decomposition) or Nested Benders Decomposition based on the user-defined structure (i.e., it detects the copmlicating variables based on the graph structure). The algorithm used by PlasmoBenders.jl is outlined in the manuscript [Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems](https://arxiv.org/pdf/2501.02098). In this way, PlamsoBenders implements these decomposition approaches automatically for the user.
44

55
## Installation
66
```julia
@@ -11,6 +11,18 @@ or alternatively from the Julia package manager by performing the following:
1111
```
1212
pkg> add PlasmoBenders
1313
```
14+
15+
## Citing PlasmoBenders.jl
16+
If you find PlasmoBenders.jl useful for your work, you may cite the [preprint](https://arxiv.org/pdf/2501.02098) as:
17+
```
18+
@article{cole2025,
19+
title={Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems},
20+
author={David L. Cole and Filippo Pecci and Omar J. Guerra and Harsha Gangammanavar and Jesse D. Jenkins and Victor M. Zavala},
21+
journal={arXiv preprint arXiv:2501.02098},
22+
year={2025}
23+
}
24+
```
25+
1426
## Contents
1527

1628
```@contents

lib/PlasmoBenders/README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
# PlasmoBenders.jl
22

3-
PlasmoBenders.jl implements Benders and Nested Benders decomposition to graph-based problems constructed in [Plasmo.jl](https://github.com/plasmo-dev/Plasmo.jl). After a user defines a graph in Plasmo.jl, they can pass the graph to PlasmoBenders.jl, set the root subgraph, and have PlasmoBenders apply Benders or Nested Benders decomposition to find a solution. These algorithms are applied *based on the user's model*, so algorithm performance is dependent in part on how the user constructed the problem in Plasmo.jl. Further, Benders and Nested Benders requires a specific structure (outlined below) which the user must supply.
3+
[![](https://img.shields.io/badge/docs-dev-blue.svg)](https://plasmo-dev.github.io/PlasmoAlgorithms.jl/dev/PlasmoBenders/introduction/)
4+
5+
6+
PlasmoBenders.jl implements Benders and Nested Benders decomposition to graph-based problems constructed in [Plasmo.jl](https://github.com/plasmo-dev/Plasmo.jl). The algorithm used by this package is outlined by the manuscript [Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems](https://arxiv.org/pdf/2501.02098). After a user defines a graph in Plasmo.jl, they can pass the graph to PlasmoBenders.jl, set the root subgraph, and have PlasmoBenders apply Benders or Nested Benders decomposition to find a solution. These algorithms are applied *based on the user's model*, so algorithm performance is dependent in part on how the user constructed the problem in Plasmo.jl. Further, Benders and Nested Benders requires a specific structure (outlined below) which the user must supply.
47

58
### Installation
69

710
PlasmoBenders.jl can be installed using the following Julia Pkg command:
811

912
```julia
1013
using Pkg
11-
Pkg.add(PackageSpec(url="https://github.com/plasmo-dev/PlasmoAlgorithms.jl/lib/PlasmoBenders"))
14+
Pkg.add("PlasmoBenders")
1215
```
1316

1417
### Overview
@@ -79,3 +82,14 @@ PlasmoBenders includes additional functionality. The following keyword arguments
7982
* `regularize` - whether to use a regularization scheme for choosing next solutions; currently only works for BD
8083
* `parallelize_benders` - whether to parallelize solutions of the subproblems in BD
8184

85+
### Citing PlasmoBenders.jl
86+
87+
If you find PlasmoBenders.jl useful for your work, you may cite the [preprint](https://arxiv.org/pdf/2501.02098) as:
88+
```
89+
@article{cole2025,
90+
title={Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems},
91+
author={David L. Cole and Filippo Pecci and Omar J. Guerra and Harsha Gangammanavar and Jesse D. Jenkins and Victor M. Zavala},
92+
journal={arXiv preprint arXiv:2501.02098},
93+
year={2025}
94+
}
95+
```

0 commit comments

Comments
 (0)