🤖 AI Summary
This paper introduces the Graph-based Convex Set (GCS) optimization framework, which generalizes classical combinatorial problems—including shortest path, traveling salesman (TSP), and minimum spanning tree (MST)—into a unified graph optimization model where vertices are convex sets and edges encode coupling constraints and costs. The core methodological innovation is the first systematic use of perspective (homogenization) transformations to automatically reformulate GCS problems as mixed-integer convex programs (MICPs), enabling globally optimal solutions via off-the-shelf MICP solvers. The approach integrates integer linear modeling, perspective lifting, and generic branch-and-bound algorithms, implemented in the open-source Python library GCSOPT. Numerical experiments demonstrate that the framework achieves both strong expressiveness and scalability: it unifies and exactly solves diverse nonconvex and combinatorial–convex hybrid problems while preserving theoretical rigor—thereby significantly expanding the interface between convex and combinatorial optimization.
📝 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.