A Graph-Based Modeling Abstraction for Optimization: Concepts and Implementation in Plasmo.jl
arXiv:2006.05378 · doi:10.1007/s12532-022-00223-3
Abstract
We present a general graph-based modeling abstraction for optimization that we call an OptiGraph. Under this abstraction, any optimization problem is treated as a hierarchical hypergraph in which nodes represent optimization subproblems and edges represent connectivity between such subproblems. The abstraction enables the modular construction of highly complex models in an intuitive manner, facilitates the use of graph analysis tools (to perform partitioning, aggregation, and visualization tasks), and facilitates communication of structures to decomposition algorithms. We provide an open-source implementation of the abstraction in the Julia-based package Plasmo.jl. We provide tutorial examples and large application case studies to illustrate the capabilities.
References in corpus (11)
- Modularity and community structure in networks
- JuMP: A Modeling Language for Mathematical Optimization
- Distributed Constraint Optimization Problems and Applications: A Survey
- PETSc/TS: A Modern Scalable ODE/DAE Solver Library
- DISROPT: a Python Framework for Distributed Optimization
- Graph-Based Modeling and Decomposition of Energy Infrastructures
- Decentralized Schemes with Overlap for Solving Graph-Structured Optimization Problems
- A Parallel Decomposition Scheme for Solving Long-Horizon Optimal Control Problems
- Efficient Stochastic Programming in Julia
- Multi-Grid Schemes for Multi-Scale Coordination of Energy Systems
- Overlapping Schwarz Decomposition for Constrained Quadratic Programs