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.
翻译:凸集图是一种图结构,其中顶点关联凸规划问题,边通过附加的凸成本与约束耦合成对的规划问题。任何基于普通加权图的优化问题(例如最短路径问题、旅行商问题和最小生成树问题)均可自然推广至凸集图,从而在组合优化与凸优化的交叉领域产生具有广泛应用的新问题类别。本文提出一种解决此类问题的统一方法。该方法从建模加权图优化问题的整数线性规划出发,自动生成对应凸集图问题的高效混合整数凸规划形式。该形式基于齐次化(透视)变换,并可通过现成的分支定界求解器实现全局最优求解。我们将此框架实现为GCSOPT——一个专为快速原型设计开发的开源易用Python库。通过多个数值算例与对比分析,我们展示了该方法的多功能性与可扩展性。