摘要 Abstract
考虑在网络中具有容量限制的边上的任意两点多商品网络流问题。传统方法在每条边上为每个源-目的对跟踪独立的流量;我们采用了一种更高效的公式,将具有相同目的地的流量聚合起来,从而将变量数量减少一个等于网络规模的因子。对于包含数百个节点、总变量数达到百万量级的问题,可以使用标准的通用内点法在CPU上进行求解;我们专注于兼容GPU的算法,这些算法可以显著加快求解速度,并且能够扩展到更大的问题,最多可达十亿变量。我们的方法依赖于原始-对偶混合梯度算法,并利用了该问题的若干特定特征以实现高效的GPU计算。数值实验表明,我们的原始-对偶多商品网络流方法比最先进的通用商业求解器加速了$100\times$至$1000\times$,并且能够处理更大规模的问题。我们提供了该方法的开源实现。
We consider the all-pairs multicommodity network flow problem on a network with capacitated edges. The usual treatment keeps track of a separate flow for each source-destination pair on each edge; we rely on a more efficient formulation in which flows with the same destination are aggregated, reducing the number of variables by a factor equal to the size of the network. Problems with hundreds of nodes, with a total number of variables on the order of a million, can be solved using standard generic interior-point methods on CPUs; we focus on GPU-compatible algorithms that can solve such problems much faster, and in addition scale to much larger problems, with up to a billion variables. Our method relies on the primal-dual hybrid gradient algorithm, and exploits several specific features of the problem for efficient GPU computation. Numerical experiments show that our primal-dual multicommodity network flow method accelerates state of the art generic commercial solvers by $100\times$ to $1000\times$, and scales to problems that are much larger. We provide an open source implementation of our method.