A Unified and Scalable Method for Optimization over Graphs of Convex Sets
Tobia Marcucci
TL;DR
This work generalizes optimization on graphs to Graph of Convex Sets (GCS), enabling simultaneous discrete subgraph selection and continuous convex optimization. It introduces a unified method that converts an ILP for the underlying graph problem into a global Mixed-Integer Convex Program (MICP) using homogenization/perspective transformations, solvable to global optimality with standard branch-and-bound solvers. The authors implement the approach in the open-source GCSOPT library and demonstrate applications across SPP, TSP, MSTP, MSAP, and FLP variants, highlighting scalability and strong convex relaxations. They extend the framework to unbounded sets and nonlinear objectives via epigraph lifting and provide practical guidelines to improve solver performance. The work positions GCS within broader theory (Lovász–Schrijver/Lasserre hierarchies) and paves the way for extensions to extended formulations, semidefinite representations, and hypergraph generalizations.
Abstract
A Graph of Convex Sets (GCS) is a graph in which vertices are associated with convex programs and edges couple pairs of programs through additional convex costs and constraints. Any optimization problem over an ordinary weighted graph (e.g., the shortest-path, the traveling-salesman, and the minimum-spanning-tree problems) can be naturally generalized to a GCS, yielding a new class of problems at the interface of combinatorial and convex optimization with numerous applications. In this paper, we introduce a unified method for solving any such problem. Starting from an integer linear program that models an optimization problem over a weighted graph, our method automatically produces an efficient mixed-integer convex formulation of the corresponding GCS problem. This formulation is based on homogenization (perspective) transformations, and the resulting program is solved to global optimality using off-the-shelf branch-and-bound solvers. We implement this framework in GCSOPT, an open-source and easy-to-use Python library designed for fast prototyping. We illustrate the versatility and scalability of our approach through multiple numerical examples and comparisons.
