Cole, David; Shin, Sungho; Zavala, Victor
Graph theory provides a convenient framework for modeling and solving structured optimization problems. Under this framework, the modeler can arrange/assemble the components of an optimization model (variables, constraints, objective functions, and data) within nodes and edges of a graph, and this representation can be used to visualize, manipulate, and solve the problem. In this work, we present a Julia framework for modeling and solving graph-structured nonlinear optimization problems. Our framework integrates the modeling package Plasmo.jl (which facilitates the construction and manipulation of graph models) and the nonlinear optimization solver MadNLP.jl (which provides capabilities for exploiting graph structures to accelerate solution). We illustrate with a simple example how model construction and manipulation can be performed in an intuitive manner using Plasmo.jl and how the model structure can be exploited by MadNLP.jl. We also demonstrate the scalability of the framework by targeting a large-scale, stochastic gas network problem that contains over 1.7 million variables.