Table of Contents
Fetching ...

Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems

David L. Cole, Filippo Pecci, Omar J. Guerra, Harsha Gangammanavar, Jesse D. Jenkins, Victor M. Zavala

TL;DR

Using a graph-centered $OptiGraph$ representation implemented in Plasmo.jl, the paper presents a general framework to model hierarchical optimization and to solve it via a graph-based Benders Decomposition ($gBD$); it formalizes the underlying mathematics, provides the open-source PlasmoBenders.jl, and demonstrates through three power-system case studies that graph partitioning and root-subgraph selection enable scalable, structure-exploiting solutions with substantial runtime gains and flexible decomposition options.

Abstract

We present a graph-theoretic modeling approach for hierarchical optimization that leverages the OptiGraph abstraction implemented in the Julia package Plasmo.jl. We show that the abstraction is flexible and can effectively capture complex hierarchical connectivity that arises from decision-making over multiple spatial and temporal scales (e.g., integration of planning, scheduling, and operations in manufacturing and infrastructures). We also show that the graph abstraction facilitates the conceptualization and implementation of decomposition and approximation schemes. Specifically, we propose a graph-based Benders decomposition (gBD) framework that enables the exploitation of hierarchical (nested) structures and that uses graph aggregation/partitioning procedures to discover such structures. In addition, we provide a Julia implementation of gBD, which we call PlasmoBenders.jl. We illustrate the capabilities using examples arising in the context of energy and power systems.

Graph-Based Modeling and Decomposition of Hierarchical Optimization Problems

TL;DR

Using a graph-centered representation implemented in Plasmo.jl, the paper presents a general framework to model hierarchical optimization and to solve it via a graph-based Benders Decomposition (); it formalizes the underlying mathematics, provides the open-source PlasmoBenders.jl, and demonstrates through three power-system case studies that graph partitioning and root-subgraph selection enable scalable, structure-exploiting solutions with substantial runtime gains and flexible decomposition options.

Abstract

We present a graph-theoretic modeling approach for hierarchical optimization that leverages the OptiGraph abstraction implemented in the Julia package Plasmo.jl. We show that the abstraction is flexible and can effectively capture complex hierarchical connectivity that arises from decision-making over multiple spatial and temporal scales (e.g., integration of planning, scheduling, and operations in manufacturing and infrastructures). We also show that the graph abstraction facilitates the conceptualization and implementation of decomposition and approximation schemes. Specifically, we propose a graph-based Benders decomposition (gBD) framework that enables the exploitation of hierarchical (nested) structures and that uses graph aggregation/partitioning procedures to discover such structures. In addition, we provide a Julia implementation of gBD, which we call PlasmoBenders.jl. We illustrate the capabilities using examples arising in the context of energy and power systems.
Paper Structure (15 sections, 19 equations, 21 figures, 1 table, 2 algorithms)

This paper contains 15 sections, 19 equations, 21 figures, 1 table, 2 algorithms.

Figures (21)

  • Figure 1: Visualization of an OptiGraph where an optimization problem (left) is partitioned into the nodes and edges of a graph (right). Nodes contain their own objective, variables, constraints, and data, while edges contain constraints that link variables across nodes.
  • Figure 2: Example of how OptiGraphs can capture hierarchical connectivity. Here, the red graphs $\mathcal{G}_1$ and $\mathcal{G}_2$ are subgraphs of the black $\mathcal{G}$, highlighted by the dashed borders. Both $\mathcal{G}_1$ and $\mathcal{G}_2$ contain a set of lower-level (blue) subgraphs.
  • Figure 3: Example of the hierarchical graph $\mathcal{G}(\{\mathcal{G}_1, \mathcal{G}_2\}, \{n_1 \}, \emptyset)$, showing how a node can belong to multiple subgraphs, creating overlapping regions in the subgraphs.
  • Figure 4: Hierarchical graph structure that can be used to represent the storage problem \ref{['eq:storage_problem']} implemented in Code Snippet \ref{['code:plasmo_example']}. Planning variables are placed on the top/root node $pn_1$, while operations variables at each time point in $T=20$ are embedded within the children nodes $on_t$. The variables of the operation nodes are linked together because storage dynamics are coupled in time.
  • Figure 5: Examples of how one can generate a subgraph from a graph $\mathcal{G}$ using the node set $\mathcal{N}_{sub}$, partitioning a graph $\mathcal{G}$ with three partitions using the node sets $\mathcal{N}_1$, $\mathcal{N}_2$, and $\mathcal{N}_3$, and aggregating nodes in $\mathcal{N}_{agg}$ of a graph $\mathcal{G}$ into a single new node. Each of these are manipulations of the graph or of its hierarchical structure.
  • ...and 16 more figures